微博情感分析 mysql_利用500万条微博语料对微博评论进行情感分析

本文利用500万微博语料对鹿晗公布恋情的3万条评论进行情感分析,借助Python的SnowNLP库进行情感分类。结果显示,支持与反对声音大致平衡,词云图显示了明显的积极和消极情绪关键词。此外,对关晓彤的评论显示更多积极情绪。
摘要由CSDN通过智能技术生成

原标题:利用500万条微博语料对微博评论进行情感分析

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

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

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

e4d4e8bb380be152e49dbdfdf160fa13.png

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

175fb2dd4b6dfb35bcab526a3f263c3b.png

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

458e2829783c34f3e9ce912ab93a8bc9.png

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

原料:

鹿晗微博3万条评论;

关晓彤微博3万条评论;

3.500万微博语料,下载地址,密码:tvdo

工具:

Python3.6

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

WordCloud,词云。实施过程:

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

fromsnownlp importsentiment sentiment.train( 'neg.txt', 'pos.txt') sentiment.save( 'sentiment.marshal')

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

爬取两人的微博数据,使用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": "新浪微博", "mid": "202110601896455629", "user": { "id": 1404376560, "screen_name": "zaku", "name": "zaku", "province": "11", "city": "5", "location": "北京 朝阳区", "deion": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。", "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": "新浪微博", "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": "北京 朝阳区", "deion": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。", "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进行处理:

去重复内容:

DELETEfrom表名 whereid notin(selectminid from(selectmin(id) asminid from表名 groupby字段) b);去值为NULL: deletefrom表名 where字段名=NULL去值为""空值   deletefrom表名 where字段名=''

情感分析:

ff657da05bd200f9ae2bb7e7a79f83d5.png

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

c72effc99e1712f6ac891d1e1cf268c5.png

鹿晗微博评论情感分析

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

ff493d8707a041ce33244e22b7bf4387.png

鹿晗评论词云

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

4a723a464e1e70ca371a16276dc57083.png

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

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

20732780cc2984531788fd983f88fd7f.png

关晓彤微博微博评论词云

从词云上来看,出现很李易峰,对不配,讨厌的声音。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值