Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 11804

基于社交网络的情绪化分析II

$
0
0

基于社交网络的情绪化分析II

By 白熊花田( http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢。

上一篇进行了微博数据的抓取,这一篇进行数据的处理介绍。


无意义微博的定义

观察发现微博中有很多的微博是用户参与某些活动而转发的微博,比如:“SmashHit,作者:MediocreAB。推荐!“ http://t.cn/8Fkgg9k”;“刚刚下载了豆丁文档:项目公司运营简报模板“ http://t.cn/RPjFZKf”;“#张亮的红包#红包最暖心~[心]我在张亮Sean的红包中抽到了@快的打车提供的“快的打车6元红包”,快来试试手气,你与幸福之间只有一个红包的距离!“ http://t.cn/RZg7iXL”。

将这些微博定义为无意义微博。并通过一个简单的处理,判断其是否为无意义微博,并计算该类微博在整个微博里的比重。

简单的判断

通过上面给的例子,我们可以看出这类微博多半具有两个特征:

  • 带有链接,如:“ http://t.cn/RPjFZKf
  • 带有特定关键字,如:“推荐”,“红包”,“专享”,“交友”等

借助这些特征,我设计了一个简单的判断。思路大致为:首先对微博进行分词,获取该微博中TF-IDF权重最大的几个关键词,如果这几个关键词中含有上述的几个特征,那么就将这个微博定义为无意义微博。(当然也判断分词后的所有词中是否包含这些特征)

注:这里分词使用的是 结巴分词

伪码如下:

# 定义了一组无意义的关键词组
malWords =[u'红包', u'领取', u'点击', u'专享', u'加号', u'交友', u’http']
# 分词得到8个权值最大的词组
tags = jieba.analyse.extract_tags(content, 8, False)
# 集合判断两个集合是否重复,若有即包含无意义词组,该微博定义为无意义微博
myset = set(malWords) & set(tags)
is_meaningful = 1 if myset.__len__() == 0 else 0

结果

这里使用了matplotlib模块进行了饼状图显示,如图:
这里写图片描述

上图表示的是大工的微博情况。

然后所有学校的数据处理结果如下表格所示:

学校名称有意义的微博无意义的微博
大连理工大学80.0%20.0%
清华大学79.0%21.0%
北京大学78.0%22.0%
南京大学79.0%21.0%
华东政法大学83.0%17.0%

从上表可以看出,这五个学校所发微博中,有意义的微博所占的比例大致相当,约占80.0%左右,其中华东政法大学的比例最高,达到了83.0%,北京大学所占据的比例最低,占了78.0%。

相关代码链接:

总结

这里使用的判定方式过于简单,存在漏判和错误的情况,但是能够判断出大多数的无意义微博。

下一篇,微博的相似度分析。

作者:whiterbear 发表于2015/6/26 22:21:41 原文链接
阅读:0 评论:0 查看评论

Viewing all articles
Browse latest Browse all 11804

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>