从 500 万条的微博语料对鹿晗、关晓彤微博的热门评论进行情感分析

2017 年 10 月 14 日 CSDN 布道

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!


最近身边的人都在谈论一件事:10月8日中午的一条微博,引发了一场微博的轩然大波。导致微博瘫痪的原因是全球超人气偶像明星鹿晗发了一条“大家好,给大家介绍一下,这是我女朋友@关晓彤”。这条微博并@关晓彤。数据分析,可以在这里(https://wfx.51wyq.cn/share/view/j3qLuwlKZ1mDoQBJa)自取!


截止目前,鹿晗的这条微博已经被转发1024887,回复2649409,点赞5173532。



关晓彤的这条微博转发67652,回复873532,点赞:2260400。



这么庞大的数据量相当上亿的“肉鸡”(粉们和吃瓜群众)对微博的一次“攻击”。 



难怪微博工程师要一边结婚一边工作,都是鹿晗这条微博惹的祸。最后加了1000台服务器暂时顶住了。 



这条微博评论非常的多了,大家对这件事态度怎么样?我们利用数据来分析一下。


原料:


  1. 鹿晗微博3万条评论;


  2. 关晓彤微博3万条评论;


  3. 500万微博语料,下载地址(https://pan.baidu.com/share/init?surl=eSeXh5K),密码:tvdo


工具:


  1. Python3.6


  2. SnowNLP(https://github.com/isnowfy/snownlp可方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己(不是本人)实现的,并且自带了一些训练好的字典。)


  3. WordCloud,词云。


实施过程:


1. 对微博语料进行情感分类,可以基于原有SnowNLP进行积极和消极情感分类:积极情绪类:pos.txt和消极情绪类:neg.txt 然后进行训练:


from snownlp import sentiment

sentiment.train('neg.txt', 'pos.txt')

sentiment.save('sentiment.marshal')


在snownlp/sentiment/init.py中第11行改到你训练的文件。


2.爬取两人的微博数据,使用http://m.weibo.com,解决懒加载问题,具体方式不在赘述,google 一下吧。


  • a. 微博提供了接口地址,微博提供API 地址,通过接口返回标准的json数据


{

    "comments": [

        {

            "created_at": "Wed Jun 01 00:50:25 +0800 2011",

            "id": 12438492184,

            "text": "love your work.......",

            "source": "<a href="http://weibo.com" rel="nofollow">新浪微博</a>",

            "mid": "202110601896455629",

            "user": {

                "id": 1404376560,

                "screen_name": "zaku",

                "name": "zaku",

                "province": "11",

                "city": "5",

                "location": "北京 朝阳区",

                "description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",

                "url": "http://blog.sina.com.cn/zaku",

                "profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",

                "domain": "zaku",

                "gender": "m",

                "followers_count": 1204,

                "friends_count": 447,

                "statuses_count": 2908,

                "favourites_count": 0,

                "created_at": "Fri Aug 28 00:00:00 +0800 2009",

                "following": false,

                "allow_all_act_msg": false,

                "remark": "",

                "geo_enabled": true,

                "verified": false,

                "allow_all_comment": true,

                "avatar_large": "http://tp1.sinaimg.cn/1404376560/180/0/1",

                "verified_reason": "",

                "follow_me": false,

                "online_status": 0,

                "bi_followers_count": 215

            },

            "status": {

                "created_at": "Tue May 31 17:46:55 +0800 2011",

                "id": 11488058246,

                "text": "求关注。",

                "source": "<a href="http://weibo.com" rel="nofollow">新浪微博</a>",

                "favorited": false,

                "truncated": false,

                "in_reply_to_status_id": "",

                "in_reply_to_user_id": "",

                "in_reply_to_screen_name": "",

                "geo": null,

                "mid": "5612814510546515491",

                "reposts_count": 8,

                "comments_count": 9,

                "annotations": [],

                "user": {

                    "id": 1404376560,

                    "screen_name": "zaku",

                    "name": "zaku",

                    "province": "11",

                    "city": "5",

                    "location": "北京 朝阳区",

                    "description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",

                    "url": "http://blog.sina.com.cn/zaku",

                    "profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",

                    "domain": "zaku",

                    "gender": "m",

                    "followers_count": 1204,

                    "friends_count": 447,

                    "statuses_count": 2908,

                    "favourites_count": 0,

                    "created_at": "Fri Aug 28 00:00:00 +0800 2009",

                    "following": false,

                    "allow_all_act_msg": false,

                    "remark": "",

                    "geo_enabled": true,

                    "verified": false,

                    "allow_all_comment": true,

                    "avatar_large": "http://tp1.sinaimg.cn/1404376560/180/0/1",

                    "verified_reason": "",

                    "follow_me": false,

                    "online_status": 0,

                    "bi_followers_count": 215

                }

            }

        },

        ...

    ],

    "previous_cursor": 0,

    "next_cursor": 0,

    "total_number": 7

}


目前微博没有要求登录(可能是bug哦),建议sleep一下,否则很容易被微博大厂识别为爬虫行为二被封堵;b.数据存储,python很方便,可以存储在文本,mysql等数据库中。但是微博大厂在接口返回数据中会返回一些重复的和一些空数据,所以这部分需要处理一下。建议放在数据库中,去重和清理空的数据非常方便。可以使用sql进行处理:


去重复内容:


DELETE from 表名 where id not in (select minid from (select min(id) as minid from 表名 group by 字段) b);

去值为NULL:

delete from 表名 where 字段名=NULL

去值为""空值

delete from 表名 where 字段名=''


3. 情感分析:



读取每段评论并依次进行情感值分析,生成一个0-1之间的值,当值大于0.5时代表句子的情感极性偏向积极,当分值小于0.5时,情感极性偏向消极,当然越偏向俩头,情绪越偏激。


鹿晗微博评论情感分析


看出支持、祝福和反对、消极的的声音基本保持平衡。(由于语料样本的数量,分析存在一定误差,感兴趣的同学一起完善情感样本库。) 


(鹿晗评论词云,一键生成词云代码:https://zhuanlan.zhihu.com/p/30107203)


词云中出现祝福、喜欢、支持等关键词,也出现分手等一些词。


关晓彤微博微博评论情感分析


祝福、赞成的积极的情绪,分值大多高于0.5,而期盼分手或者表达消极情绪的分值,大多低于0.5。从图上来看已经是一边到的态势。 

关晓彤微博微博评论词云


从词云上来看,出现很多李易峰,不配,讨厌的声音。


本文获作者授权发布,关于本文有任何看法,欢迎在下方留言或点击这里(https://zhuanlan.zhihu.com/p/30061051)和作者联系。


-------- 热闻回顾 --------


5 个月策反,Kotlin 将取代 Java 成 Android 开发第一语言?


Python 崛起、JavaScript 制霸 —— GitHub 2017 年度开源报告里的语言之争

从抗美援朝到图形图像、算法,84 岁老爷爷的跨越性技术之路



登录查看更多
1

相关内容

微博是一种基于用户关系的信息分享、传播以及获取平台,用户可以通过 web、WAP以及各种客户端组建个人社区,以 140 字左右的文字更新信息,并实现即时分享。
【北航】面向自然语言处理的预训练技术研究综述
专知会员服务
112+阅读 · 2020年4月23日
注意力图神经网络的多标签文本分类
专知会员服务
111+阅读 · 2020年3月28日
 【中科院信工所】社交媒体情感分析,40页ppt
专知会员服务
101+阅读 · 2019年12月13日
六篇 EMNLP 2019【图神经网络(GNN)+NLP】相关论文
专知会员服务
71+阅读 · 2019年11月3日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
来,试试百度的深度学习情感分析工具
AINLP
5+阅读 · 2019年7月8日
优质中文NLP资源集合,做项目一定用得到!
数据派THU
18+阅读 · 2019年3月3日
中文NLP福利!大规模中文自然语言处理语料
新智元
37+阅读 · 2019年2月13日
《小美好》短评文本情感分析+生成词云
数据挖掘入门与实战
5+阅读 · 2018年1月7日
【推荐】中文处理(BiLSTM分词)工具包FoolNLTK
机器学习研究会
6+阅读 · 2017年12月27日
京东商品评论情感分析:数据采集与词向量构造方法
数据挖掘入门与实战
5+阅读 · 2017年12月19日
【python 自然语言处理】对胡歌【猎场】电视剧评论进行情感值分析
深度学习在情感分析中的应用
CSDN大数据
14+阅读 · 2017年8月22日
干货 | 情感分析语料库
机器学习算法与Python学习
69+阅读 · 2017年7月3日
Arxiv
3+阅读 · 2019年3月1日
Arxiv
10+阅读 · 2019年2月19日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
10+阅读 · 2018年4月19日
Arxiv
5+阅读 · 2018年1月23日
VIP会员
相关资讯
来,试试百度的深度学习情感分析工具
AINLP
5+阅读 · 2019年7月8日
优质中文NLP资源集合,做项目一定用得到!
数据派THU
18+阅读 · 2019年3月3日
中文NLP福利!大规模中文自然语言处理语料
新智元
37+阅读 · 2019年2月13日
《小美好》短评文本情感分析+生成词云
数据挖掘入门与实战
5+阅读 · 2018年1月7日
【推荐】中文处理(BiLSTM分词)工具包FoolNLTK
机器学习研究会
6+阅读 · 2017年12月27日
京东商品评论情感分析:数据采集与词向量构造方法
数据挖掘入门与实战
5+阅读 · 2017年12月19日
【python 自然语言处理】对胡歌【猎场】电视剧评论进行情感值分析
深度学习在情感分析中的应用
CSDN大数据
14+阅读 · 2017年8月22日
干货 | 情感分析语料库
机器学习算法与Python学习
69+阅读 · 2017年7月3日
相关论文
Top
微信扫码咨询专知VIP会员