目录
《黑神话:悟空》作为一款国产3A游戏,自其发布以来便在网络上引发了巨大的狂潮和舆情风暴。利用Python进行数据可视化,我们可以深入剖析这一事件背后的舆情动态和公众关注度。为了直观看出该游戏的热度话题与舆情走向,可以基于Python对B站预告片内的参与情况进行深度挖掘,以下为舆情分析框架:
1. 数据收集
首先,需要收集与《黑神话:悟空》相关的舆情数据。这些数据可以来源于社交媒体(如微博、Twitter)、新闻网站、论坛、游戏评论平台等。本期选取内容:B站BV1oH4y1c7Kk—— 《黑神话:悟空》最终预告 | 8月20日,重走西游。
1.1爬取弹幕
一般来说,b站弹幕爬取一共有两种模式:简易模式、数据抓包。简易模式直接通过网页API获取,可能无法获取到全部弹幕数据,尤其是历史弹幕;而数据抓包则是通过浏览器的开发者工具找到弹幕相关的数据包进行数据爬取。(注:在爬取B站弹幕时,务必遵守相关法律法规和B站的用户协议,不得用于商业用途或侵犯他人隐私。)
1.1.1 使用Python库爬取数据
#导入数据请求模块
import requests
#请求网址
url= '网址'
#请求头
headers={'复制地址'}
#发送请求
response = requests.get(url)
html_data=response.text
#乱码解决方法
response.encoding = response.apparent_encoding
#获取网页源代码
html_data= response.text
print(html_data)
1.1.2 使用数据抓包取数据
使用浏览器开发者工具进行抓包分析,并保存为txt文本。
#导入数据请求模块
import requests
import re
url='网址'
#发送请求
headers={
'user-agent':'',
"Cookie":""
}
response =requests.get(url,headers=headers)
html_data =response.text
content_list=re.findall(':(.*?)@',html_data)
for index in content_list:
with open('弹幕.txt',mode='a', encoding='utf-8') as f:
f.write(index[1:])
f.write('\n')
print(index[1:])
爬取的部分结果如下:
2. 数据预处理
收集到的数据需要进行清洗和预处理,包括去除重复项、处理缺失值、文本分词、去除停用词等。对于中文文本,可以使用jieba
库进行分词处理。
2.1弹幕数据预处理
本案例爬取了该视频的5419条弹幕,将爬取到的txt数据导入pandas:
使用 eq()
方法检测空字符串,结合 any()
来查看是否存在至少一个空字符串。
3. 数据分析
3.1 情感分析
利用情感分析技术,对收集到的文本数据进行情感倾向判断,判断公众对《黑神话:悟空》的态度是正面、负面还是中性。Python的SnowNLP
或TextBlob
库可以辅助进行情感分析。SnowNLP 是一个用于中文文本处理的 Python 库,它提供了一系列功能,包括情感分析、分词、词性标注、文本分类、关键词提取等。其中,情感分析是 SnowNLP 的一个重要功能,它可以帮助我们判断一段中文文本的情感倾向,通常是积极(正面)或消极(负面)。
实现如下:
结果展示:
从数据结果来看,大多弹幕的情感分数均大于0.5,可见《黑神话:悟空》确实赢得了广大网友的喜爱。
3.2 话题聚类
通过话题聚类技术,将相似的舆情内容归为一类,识别出公众关注的主要话题点。可以使用K-means
聚类算法或LDA
(潜在狄利克雷分配)模型进行话题聚类。
3.2.1 K-means
聚类
3.2.2 LDA模型
LDA模型的训练通常使用吉布斯采样(Gibbs Sampling)或变分推理(Variational Inference)等算法。这些算法通过迭代更新模型参数来最大化文档的生成概率,从而学习到主题分布和词分布。
4. 数据可视化
4.1 情感分布图
使用饼图或柱状图展示正面、负面和中性情感的比例,直观展示公众对《黑神话:悟空》的整体态度。本文使用使用seaborn模块,并将直方图数据与黑密度两种图合画在一起:
【注】:直方图须由频数改为频率
4.2 话题热度图
通过词云图或热力图展示不同话题的热度,识别出公众最关注的话题点。
首先通过jieba模块对文本进行分词操作,再通过停用词表过滤掉无意义的词语,最终以每个词出现的频率作为标准对分析进行排序:
保存为字典,结果如下:
导入中文字体库(否则乱码),准备词云的一系列设置:
这样看起来不够美观,让我们来修改一下样式:
4.3 趋势变化图
筛选出不同时间的数据,绘制舆情数据随时间变化的折线图或面积图,来展示公众关注度的变化趋势。(操作同上)
5. 评论数据及可视化
5.1评论数据爬取
单页爬虫这里就不赘述了,此处难点在于自动翻页操作,这个要去寻找每页数据包中存在的规律。
接下来让我们看看评论区的舆情热度,首先设置发送请求与查询参数:
接下来,进行JS逆向参数加密,对于疑似加密位置,进行断点调试分析:
w_rid加密参数摄取:
找到对应的数据并解析:
将爬取到的数据保存为csv格式,导入到Jupyter NoteBook中:
一共爬取了9883条评论(注:未全部摘取,这里只分享方法),并对数据异常值进行清洗与处理:
调用describe()模块
,该模块用于生成描述性统计信息,如计数、平均值、标准差、最小值、四分位数(25%、50%、75%)和最大值等。我们可以看到,该数据中评论用户等级的均值为5.27级、平均获赞数为70.1765,并且评论最高获赞量为29640,这个数值可以很好的反应改评论更好的引起大众情感共鸣和社区氛围,也可能成为舆论导向的一部分,影响更多人的看法和态度,进而对事件的发展产生影响。
5.2数据可视化
对清洗后数据进行动态呈现:
①点赞top20
利用sorted模块进行排序,并绘制柱状图:
前20条高赞评论点赞量均上1万,这一数据指标不仅表明了这些评论内容深受用户喜爱,也进一步印证了数据量足够大且活跃度高。在如此庞大的数据基础上进行分析,我们可以得出更加稳健和可靠的结论。
-
用户参与度分析:高点赞量意味着用户对这些评论内容的强烈认同和积极参与。通过分析这些高赞评论的主题、情感倾向以及关联的话题,我们可以深入了解用户的兴趣点和关注点,为内容创作者提供有价值的反馈和建议。
-
意见领袖识别:如果某些用户的评论频繁出现在高赞列表中,他们可能在该领域内具有较高的影响力和话语权。识别并关注这些意见领袖,可以帮助我们更好地理解用户群体的意见动态和趋势变化。
-
内容质量与传播力关系:高点赞量通常与高质量的内容紧密相关。通过对比不同内容类型、风格和长度的评论在点赞量上的差异,我们可以探究内容质量与传播力之间的内在联系,为提升内容质量和扩大传播效果提供策略支持。
-
用户行为模式挖掘:基于大数据分析技术,我们还可以深入挖掘用户点赞行为背后的模式和规律。例如,分析用户在不同时间段、不同场景下的点赞偏好和习惯,以及点赞行为与其他用户行为(如评论、分享、关注等)之间的关联性,从而构建更加精准的用户画像和行为模型。
②用户等级分布图
以用户等级为索引,通过饼图展示数据情况:
从图中可知,6级粉丝占比最多,高达47.44%,这一数据确实揭示了该款游戏在吸引并保留高质量受众群体方面的显著成效。6级粉丝通常意味着这些用户不仅长时间使用B站,还可能在游戏中投入了大量的精力和资源,或者对游戏内容、社区氛围等方面有着高度的认同感和归属感。同时,这里其实不是很美观,我们用极坐标图修改一下:
③用户性别分布图
除此之外,我还想看看不同性别的用户数量已经对应的等级分布。这里继续对性别和用户等级使用分组条形图展示:
对于保密的用户,由于我们目前尚未可知其性别,这在进行性别相关的分析时会带来一定的限制。不过,即便如此,我们仍然可以围绕已知性别用户的数据进行分析,并尝试从中推断出一些总体趋势或规律,同时保持对保密用户数据的尊重和谨慎处理。
- 已知性别用户的详细分析:
- 既然男性比例远大于女性比例,我们可以先深入分析这一性别差异是否对用户等级分布产生了显著影响。通过比较男性和女性在各个等级上的分布比例,可以观察是否存在明显的性别偏好或差异。
- 如果男女生在等级分布上的规律一致,即他们各自在等级上的分布比例相似(例如,都是随着等级升高而数量减少),那么这可能意味着性别不是影响用户等级分布的主要因素。
- 对保密用户的处理策略:
- 数据脱敏:在处理包含保密用户的数据集时,应确保这些用户的个人信息(包括性别)得到妥善保护,不被泄露给未经授权的人员。
- 假设分析:虽然我们不能直接知道保密用户的性别,但可以根据已知性别用户的分布来做出一些假设性分析。例如,假设保密用户的性别比例与已知性别用户的比例相近,或者假设他们在等级分布上也遵循相似的规律。然而,这些假设需要明确标注为“假设”,并在分析报告中谨慎使用。
- 敏感性分析:进行敏感性分析,以评估保密用户数据的不确定性对分析结果的影响。通过模拟不同性别比例和等级分布情况的保密用户数据,我们可以观察这些变化如何影响总体分析结果,并据此评估分析的稳健性。
6. 舆情报告撰写
基于数据分析和可视化的结果,撰写详细的舆情报告,包括舆情概述、情感分析、话题聚类、趋势分析等内容,为相关方提供决策支持。
结论
通过Python数据可视化技术,我们可以深入剖析《黑神话:悟空》引发的舆情风暴,了解公众的关注点、情感倾向和趋势变化,为相关方提供有价值的决策支持。
【说明】:1.弹幕爬取内容并非全部,这里只展示操作方法;2.若有侵权,联系本人删除
【本文环境使用】:PyCharm、Jupyter Notebook