《庆余年2》弹幕爬取,并进行情感分析

目录

引言

爬虫实现

1、数据来源分析

2、请求数据

3、解析数据

4、保存数据

情感分析 

1、读取表格数据

2、情感分析 

3、可视化

总结


引言

《在大庆度过余年》是一部备受瞩目的电视剧,自上映以来吸引了大量观众,并在各大视频平台上获得了极高的播放量。随着第二部的上线,观众们的热情依旧高涨,弹幕作为观众表达情感、交流观点的重要途径,成为了研究观众反馈的重要数据来源。本文将介绍如何爬取弹幕,并进行情感分析,以了解观众对这部电视剧的真实反馈。

爬虫实现

首先,我们需要从企鹅视频平台爬取弹幕数据。企鹅视频的弹幕数据通常是通过特定的接口获取的,返回的内容通常是 JSON 格式的数据。为了实现弹幕数据的爬取,我们使用了 Python 的 requests 库。

1、数据来源分析

老规矩,我们F12打开开发者工具,通过查询找到数据来源

2、请求数据

import requests
url = 'https://dm.video.qq.com/barrage/segment/q4100dpkd26/t/v1/30000/60000'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'
}
response = requests.get(url=url, headers=headers).json()
print(response )

 请求成功,可以得到我们上述看到的弹幕内容

3、解析数据

barrage_list = response['barrage_list']
for barrage in barrage_list:
    content = barrage['content']
    print(content)

4、保存数据

from DataRecorder import Recorder
recorder = Recorder('弹幕.csv')
# 设置编码
recorder.set.encoding('utf-8-sig')
recorder.set.head(['content'])
recorder.add_data((content))
recorder.record()

将以上弹幕数据保存为csv表格数据,已进行下一步的情感分析。(不过,五年闺蜜结婚俩次...有点抽象 

情感分析 

1、读取表格数据

使用pandas库。Pandas 是 Python 编程语言中一个强大的数据分析和数据操作库,提供了快速、灵活和富有表现力的数据结构,使得数据清洗、数据处理、数据分析等工作变得简单、高效。

df = pd.read_csv('弹幕.csv')
df

2、情感分析 

SnowNLP 是一个用于处理中文文本的 Python 库,专注于中文自然语言处理任务,如情感分析、文本分类、关键词提取等。它提供了一系列用于处理中文文本的工具和模型,使得中文文本处理变得更加方便和高效。

from snownlp import SnowNLP
def analyze_sentiment(text):
    s = SnowNLP(text)
    return s.sentiments

3、可视化

Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,旨在提供一种简单直观的方法,使得数据可视化过程更加快捷、美观。它提供了一系列高级数据可视化功能,能够轻松创建各种统计图表,包括散点图、折线图、箱线图、直方图、核密度估计图等,同时支持对分类数据的可视化。

import seaborn as sns
df['sentiment'] = df['content'].apply(analyze_sentiment)
plt.figure(figsize=(10, 6))
sns.histplot(df['sentiment'], bins=20, kde=True)
plt.title('Sentiment Analysis of Danmaku for Qing Yu Nian 2')
plt.xlabel('Sentiment Score')
plt.ylabel('Frequency')
plt.show()

通过情感分析的结果,我们可以发现观众情感表达多种多样。大部分观众对剧情的发展和人物性格给予了积极的评价,认为剧情跌宕起伏、人物形象丰满,引人入胜。

总结

综合来看,弹幕爬取与情感分析不仅展现了观众对于该剧的多样化评价和情感表达,也反映了网络文化下观众与作品之间的互动与共鸣。通过这种方式,我们能够更深入地理解观众的观剧体验和情感需求,为制作方和创作者提供更有针对性的改进建议和参考,促进了影视作品与观众之间的良性互动与共赢。

觉得文章对您有用的话麻烦帮忙三连,谢谢~

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个用Python生成《余年》词云并去掉停用词的例子: ``` python import jieba from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt from PIL import Image import numpy as np # 读取文本 with open('qingyunian.txt', 'r', encoding='utf-8') as f: text = f.read() # 分词 words = jieba.cut(text) # 加载停用词 stopwords = set(STOPWORDS) with open('stopwords.txt', 'r', encoding='utf-8') as f: for line in f: stopwords.add(line.strip()) # 统计词频 freq_dict = {} for word in words: if word not in stopwords and len(word) >= 2: freq_dict[word] = freq_dict.get(word, 0) + 1 # 加载背景图 mask = np.array(Image.open('paima.jpg')) # 生成词云 wc = WordCloud(background_color='white', mask=mask, font_path='msyh.ttc', max_words=2000, max_font_size=200, random_state=42) wc.generate_from_frequencies(freq_dict) # 显示词云 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() # 保存词云 wc.to_file('qingyunian.png') ``` 解释一下以上代码的主要步骤: 1. 读取《余年》文本; 2. 使用jieba分词对文本进行分词,得到一个词汇列表; 3. 加载停用词,并从词汇列表中去掉停用词和单个字的词汇; 4. 遍历词汇列表,统计每个词汇出现的次数,得到一个词频字典; 5. 加载一张背景图,这里使用了《余年》电视剧海报的图片; 6. 使用WordCloud来生成词云,设置一些参数,如背景颜色、背景图、最多显示的词汇数、最大字号等; 7. 显示词云,并保存生成的词云。 这里顺便说一下,如果想要自己生成这个词云,需要做一些前期准备工作: 1. 下载《余年》的原著文本,这里我使用了一篇在网上找到的《余年》的txt文本; 2. 下载《余年》电视剧的宣传海报,这里我使用了一张在网上找到的海报; 3. 准备一个停用词表,用来去掉无意义的词汇,如“的”、“了”、“和”等,这里我使用了一个在网上找到的中文停用词表。 最后,运行代码即可生成一个绚丽多彩的《余年》词云啦!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

到点就困告

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值