2019独角兽企业重金招聘Python工程师标准>>>

国庆长假的最后一天,鹿晗在微博上公开宣布和关晓彤的恋情。消息来得太突然,不仅粉丝圈里炸了,顺带连微博服务器也给炸了。在此心疼新浪运维工程师一秒,放个假都不能省心。

这条微博让粉丝们心情复杂,却让各路媒体们集体高潮,从各种刁钻的角度进行了全方位的报道和评论,蹭热点的姿势令人眼花缭乱。(在这点上不得不承认,我们是个不称职的公众号,到今天才有了这么一篇分析。)

到目前,这条微博已经有了280多万条评论。有点赞祝福的,有质疑的,当然也少不了悲痛欲绝,甚至表示取关粉转路人的。那么究竟粉丝们对此事的态度如何,真的“原谅”鹿晗了吗?于是,我们编程教室的小伙伴用 python 对评论里的情绪做了个简单的统计分析。

先说我们的结论:原谅?不存在!

此微博的评论中负面情绪较多,说明还是被扎心的粉丝们占了多数,不是一时半会儿就能“原谅”的。这也是符合主观感受的。引用一个热评来说就是“3909万粉丝,一起失恋了”。

这是我们通过一些数据分析得出的结论,到底是不是可信,可以一起来看下我们的分析过程。

1. 抓取微博评论

抓取微博使用了爬虫框架 scrapy,并结合 mongodb 作为数据存储。通常来说,手机版网页会比 PC 版网页更容易抓取数据,所以我们通过 http://m.weibo.cn 找到了此条微博的评论数据接口:

https://m.weibo.cn/api/comments/show?id=4160547165300149&page=1

通过修改 page 参数,可以获取各页评论。

得到数据之后,通过正则或 bs4 对信息进行提取(我们的代码里用了正则),将评论内容文本存入数据库。

2. 情感分析

2.1 snownlp

首先我们使用了 python 的一个情感分析库 snownlp。在开发过程中,我们看到知乎上也有人做了同样的工作:

  • 用python对鹿晗、关晓彤微博进行情感分析 - 宅米RICE
  • 利用500W条微博语料对评论进行情感分析 - 布道

snownlp(https://github.com/isnowfy/snownlp)是一个可以方便处理中文文本的 python 库,提供了分词、词性标注、情感分析、文本分类、转拼音、繁转简、提取关键词、摘要等功能,功能十分强大。

分析结果:

图中情感值越接近 0 表示越消极,越接近 1 表示越积极。从结果来看,0、1 两端和中间 0.5 的数量最多,整体上较为平衡,稍稍偏积极一些。

可真的是这样吗?

我们来挑几热门评论尝试下:

  1. 大家觉得是假的点赞 0.99
  2. 大家觉的鹿晗与关晓彤不配的请点赞。 0.48
  3. 一定是电视剧的宣传。一定是。 0.39
  4. 不喜欢关晓彤的赞我 0.80
  5. 哥哥 我们心脏不好 0.98
  6. 同意恋爱,关晓彤就算了吧。 0.55
  7. 如果不是关晓彤。。我觉得我还没那么心痛!人生的悲哀就是最喜欢的和最讨厌的在一起了 0.81

这好像不大对吧。

后来进一步了解发现,snownlp 的默认训练语料库是针对网上商品的购买评价,将其得出的模型用在此微博评论的分析上并不是很准确。于是我们又从网上找了一份针对腾讯微博上新闻事件评价的语料库,来修正训练数据。但可惜因为样本量较少,并且也不是很符合此场景,因此结果和上述差别不大。

我们上面提到的两篇文章,结论也与此类似。如果要进一步提升 snownlp 准确性,则需要一定数量的手动标记样本。

2.2 腾讯文智

那如果一时没有那么多的标记样本,有没有其他方法?我们找到了“腾讯文智” — 腾讯出品的中文语义平台,支持 NLP、转码、抽取、全网数据抓取等中文语义分析需求。这个平台是收费的,不过有一些免费配额,足够我们做一些小的实验分析。

在使用之前,我们也将前文的几条热评测试了一下:

我们来挑几热门评论尝试下:

  1. 大家觉得是假的点赞 0.52
  2. 大家觉的鹿晗与关晓彤不配的请点赞。 0.53
  3. 一定是电视剧的宣传。一定是。 0.50
  4. 不喜欢关晓彤的赞我 0.62
  5. 哥哥 我们心脏不好 0.02
  6. 同意恋爱,关晓彤就算了吧。 0.48
  7. 如果不是关晓彤。。我觉得我还没那么心痛!人生的悲哀就是最喜欢的和最讨厌的在一起了 0.35

从这几个例子来看,文智相对要准确一点,虽然有些评论依然没有被划归到负面,但至少没有给到很夸张的积极情感值。

由于文智的数量限制,我们对数据中进行了随机抽样,用一小部分数据进行分析,并且过滤掉了情感值为 0.5 的部分(其中有不少是纯表情回复),得到如下结果:

尽管在手动测试时发现文智的预测会略偏积极,但即便如此,最终的结果依然偏向消极。由此推断,实际的情感可能比这个分布更加负面。这也就是我们文章开始时给出的结论。

这个结论其实并没有多大意义(反正我也不粉鹿晗),但通过程序来做情感分析,也许你会用得到。

获取源码和详细文档,请在公众号(Crossin的编程教室)中回复 鹿晗

════

其他文章及回答:

用 Python 解读十九工作报告
Python有嘻哈:Crossin教你用代码写出押韵的verse
听说你好不容易写了个爬虫,结果没抓几个就被封了?
喏,你们要的 PyCharm 快速上手指南
编程新手:看懂很多示例,却依然写不好一个程序
给伸手党的福利:Python 新手入门引导
如何用100行Python代码做出魔性声控游戏“八分音符酱”
学习编程的过程中可能会走哪些弯路,有哪些经验可以参考?
你是如何自学 Python 的?

Crossin的编程教室

微信公众号ID:crossincode
网站: crossincode.com
QQ群:657099683
微信加群:crossin123(新手/进阶/爬虫)

转载于:https://my.oschina.net/crossin/blog/1845208

Python情感分析:鹿晗的粉丝们究竟原谅他了吗?相关推荐

  1. 【情感打分+情感判定+词云图】python情感分析李子柒频道视频热门英文评论

    目录 一.事件背景 二.python代码讲解 三.同步讲解视频 四.获取python源码文件 一.事件背景 今天是2021.12.2日,距离李子柒断更已经4个多月了,这是我在YouTube李子柒油管频 ...

  2. 基于python的情感分析案例-基于情感词典的python情感分析

    Python Python开发 Python语言 基于情感词典的python情感分析 近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了 ...

  3. python情感分析预测模型_python snownlp情感分析简易demo

    SnowNLP是国人开发的python类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和T ...

  4. python情感分析中文_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  5. 基于情感词典的python情感分析!它居然比我还懂我女友!

    近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...

  6. python情感分析步骤_使用python+机器学习方法进行情感分析(详细步骤)

    不是有词典匹配的方法了吗?怎么还搞多个机器学习方法. 因为词典方法和机器学习方法各有千秋. 机器学习的方法精确度更高,因为词典匹配会由于语义表达的丰富性而出现很大误差,而机器学习方法不会.而且它可使用 ...

  7. python情感分析:基于jieba的分词及snownlp的情感分析!

    情感分析(sentiment analysis)是2018年公布的计算机科学技术名词. 它可以根据文本内容判断出所代表的含义是积极的还是负面的,也可以用来分析文本中的意思是褒义还是贬义. 一般应用场景 ...

  8. python情感分析中文_【python机器学习】中文情感分析

    3月31日,3月最后的一天接到了腾讯HR终面,看着招聘官网变成已完成还有点小自豪呢python 而后百度搜了搜显示"已完成"是否是稳了,原来不是,好多最后被通知没被录取....we ...

  9. python 情感分析实例_情感分析实例

    以下的样本代码用Pyhton写成,主要使用了scrapy, sklearn两个库. 所以,什么是情感分析(Sentiment Analysis)? 情感分析又叫意见挖掘(Opinion Mining) ...

最新文章

  1. webservice服务器端获取request对象的三种方式
  2. 克服大数据技能差距的策略
  3. 闪退没由报错_秉承工匠精神,3步定位飞桨报错原因,你也来试试?
  4. 谈谈这些年前端的变化
  5. java实现数据库内容修改_数据库更改到Java环境中实现可持续和平
  6. Python-JS (JS介绍~JS的基础数据类型)
  7. java windowbuilder下载_Java WindowBuilder 安装及基本使用的教程
  8. html+js实现注册页面及信息验证
  9. 消息队列原理和应用场景总结
  10. ubuntu14上nvidia 1080和 titan xp 驱动安装踩的坑
  11. Spring Security系列(三)——WebFlux配置方式以及多登陆入口实现
  12. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别
  13. 前端自适应图片留白解决
  14. Wordpress网站地图插件
  15. 数据库管理员用户角色组权限设计
  16. 腾讯1+X云计算 初级考试培训 C
  17. csgo社区服务器文件位置,csgo社区服务器在哪
  18. Vivado中ILA(集成逻辑分析仪)的使用
  19. 数据库与MPP数仓(十三):数据仓库的模型构建
  20. [附源码]计算机毕业设计JAVA高铁售票管理系统

热门文章

  1. scanner nextstring 空格_毫不起眼的小技巧,居然一分钟删除了数据中所有空格
  2. Android之从Camera捕获图像讲解
  3. MapReduce-Shuffle机制运行解析
  4. Android SystemProperties系统属性分析
  5. LeetCode 4 两个排序数组的中位数
  6. UIView及其分类的属性方法定义
  7. fastdfs上传文件_SpringBoot+FastDFS搭建分布式文件系统
  8. uniapp动态设置style和class样式
  9. springmvc和struts的区别
  10. POJ - 2492 种类并查集