「这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战」。
前言
利用Python实现大江大河评论数据可视化。废话不多说。
让我们愉快地开始吧~
开发工具
Python版本: 3.6.4
相关模块:
requests模块
proxy2808
pandas模块
pyecharts模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
因为豆瓣反爬还是比较严重的
2808PROXY提供的代理服务
没有用代理的话基本就没戏了
分析网页
虽然评论有两万多条,但是豆瓣在登陆的情况下,也只是放出500条数据。
本次只获取全部评论以及差评评论标签页下的数据,合计约为900多条。
然后便是获取用户的注册时间。
900多个用户,900多个请求。
我相信不用代理,绝对Game Over。
获取数据
评论及用户信息获取的部分代码
1 | python复制代码import time |
获取全部评论标签页下的数据(500条)。
红框部分为用户的注册时间。
假设我能爬取所有评论,那么水军估计要被我逮到了。
个人理解,水军就是过多的新注册用户…
然而豆瓣并没有给我们这个机会。
获取差评标签页的数据(482条)。
看看给差评的用户注册时间。
相较好评的用户注册时间,有那么点意思了。
注册时间相对都比较晚。
分析情感
评论的情感分析使用百度的自然语言处理。
下面利用网站做个示例。
具体的可以去官网看文档,这里只是简述一番。
通过你的百度账号登陆百度的AI开发平台,新建自然语言处理项目。
获取「API Key」及「Secret Key」后。
调用情感倾向分析接口,得到情感结果。
部分代码
1 | python复制代码import urllib.request |
情感分析结果如下。
总的来说5星评分的结果多为正向(2)的。
当然也出现了一些负向(0)的结果。
不过还是在可接受范围内。
1星评分的评论情感倾向多为负向。
这里把正向的用红框圈出来了,大家可以自行体会。
毕竟机器的识别水平有限,想达到100%识别,可能性几乎为0。
数据可视化
评论日期分布情况
热评随着电视剧的开播,便慢慢没有什么变化。
而差评却在后头有一些波动。
评论时间分布情况
大部分评论都是在晚上评论的,符合常态。
评论评分情况
全部短评的5星评分占大头。
全部差评的1星和2星占大头。
评论情感分析情况
其中「2」代表积极的,「1」代表中性的,「-2」代表消极的。
全部短评的正向结果占大头。
全部短评的排序是基于点赞数而来的。
所以对于整部剧,大家还是比较认可的。
评论用户注册时间
生成评论词云
好评词云
差评词云
本文转载自: 掘金