码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-26 23:50:28      阅读:140      评论: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%。

相关代码链接:

总结

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:统计分析   爬虫   数据分析   

原文地址:http://blog.csdn.net/whiterbear/article/details/46654649

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!