基于Python的电视剧视频弹幕分析
作者: 冯淼摘要:弹幕已经成为观众在视频平台上观看电视剧的一种新型参与互动形式,因其特有的及时性和交互性体验,受到了广大观众的欢迎,它是观众对于电视剧内容的及时情感反应。利用Python获取并分析爱奇艺电视剧视频弹幕数据,对弹幕进行分词处理,以词云图形式展示词频统计结果;通过SnowNLP对弹幕进行情感倾向分析,以直方图和密度曲线图进行展示,为电视剧的制作和营销提供参考。
关键词:弹幕;Python;爱奇艺;情感分析;SnowNLP
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2023)30-0034-03
开放科学(资源服务)标识码(OSID)
0 引言
弹幕最早源于日本视频分享网站NicoNico动画的即时留言字幕功能,因大量的评论和留言在视频中飘过时的效果看上去像是密集的炮弹,便被NICO网友称为“弹幕”。2008年,国内视频网站AcFun借鉴NicoNico动画,建立了及时评论系统,成为国内第一家弹幕视频网站。2009年,AcFun资深用户徐逸成立了视频网站Bilibili的前身MikuFans,保留了弹幕功能,从此弹幕在国内开始逐渐兴起。现如今,弹幕已经成为视频内容的重要组成部分,作为增强用户与视频间互动以及提升网站使用黏性的重要手段,普遍被国内在线视频网站使用。与传统形式的评论相比较,弹幕形式的评论增强了观众之间在观看视频时的互动,且由于弹幕操作简单、传播迅速、互动性强和受众广等优点,越来越多的用户在观看视频时乐于通过弹幕表达自己的观点[1],这些弹幕评论中蕴藏着用户对于视频剧情、场景、演员等的看法和态度,不仅可以反映出用户在观看视频时的情感,还能体现出视频的主旨大意,值得进行深入的挖掘和分析。
本文利用Python开发软件对爱奇艺上线的电视剧的弹幕进行收集和分析,从大量的电视剧弹幕数据中获取用户在观看电视剧时的及时性情感倾向和关注点,了解用户对电视剧的观看意向和评价情况,分析电视剧的播出效果,为电视剧的制作和营销提供参考。
1 平台设计思路
本文构建平台设计思路:第一步,分析获取爱奇艺上线的电视剧弹幕地址及电视剧相关信息,利用Python编写代码进行电视剧弹幕文本数据采集、数据清洗和数据存储。第二步,使用Python第三方库Jieba对弹幕内容数据进行中文分词、去掉停用词、统计高频词,得到电视剧弹幕高频关键词及权重。第三步,调用Python第三方库WordCloud对经过Jieba分词处理的弹幕数据进行词云图绘制。第四步,运用SnowNLP对弹幕数据进行情感分析,计算出弹幕语义积极的概率,绘制出弹幕情感分析直方图和密度曲线图,同时,再次通过弹幕数据,利用Python编写代码分析出电视剧每集的弹幕数量和主要演员及饰演角色被提及次数,并绘制生成相关统计图形进行可视化展示。最后,通过Python编写代码生成2020年爱奇艺上线电视剧的集中展示页面,并调用String模块中的Template方法实时生成每一部电视剧弹幕数据分析详细结果页面,实现弹幕数据的可视化展示,最后使用Nginx WEB服务器将页面发布出去。平台设计思路如图1所示。
2 数据采集和数据清洗
2.1 电视剧剧目信息及弹幕地址获取
利用Chrome浏览器访问爱奇艺的电视剧库页面,并使用浏览器自带的开发者工具分析网站响应包,获取页面数据来源请求地址,进行网页元素分析。目前,爱奇艺电视剧剧目信息数据使用JSON数据格式进行前后端交互,电视剧弹幕数据以.z格式的二进制数据包存储,均可直接通过访问特定的URL地址获取。
2.2 数据采集存储
首先,通过Python的Requests第三方库,配置Headers等相关参数,模拟浏览器访问爱奇艺2020年上线电视剧信息URL地址,解析获取电视剧的ID值以及集数等相关数据。其次,同样通过使用Requests第三方库,结合电视剧的ID值,模拟浏览器访问单个电视剧每集信息查询URL地址,解析获取电视剧每集的ID值和每集时长。再次,通过模拟访问弹幕获取地址URL获取存有弹幕数据的.z格式的二进制数据包,这里,由于爱奇艺弹幕为每5分钟加载,需要将每集时长转化为秒进行计量,再除以300向上取整并结合利用每集的ID值组成具体的URL。最后对获取的.z文件进行解压,获取.xml格式的弹幕数据文件,并对文件内容进行解析,获取弹幕内容数据。为方便可视化展示时对数据的灵活调用,本过程获取的所有数据均存储在MySQL数据库中。
2.3 弹幕数据清洗
弹幕数据中包含了一些无意义的标点符号、表情符号、空白值以及数字等无效信息,通过数据清洗,将这些无效信息剔除,仅提取弹幕中的中文内容,从而提高数据质量。
3 数据采集和数据清洗
3.1 进行分词和词频统计
由于中文文本之间每个汉字都是连续书写的,需要通过特定的手段来获得其中的每个词组,这种手段叫作分词。Jieba是优秀的中文分词第三方库,它基于前缀的词典可以实现高效的词图扫描,并生成句子中汉字的所有可能成词情况而构成的有向无环图,其采用动态规划法查找最大概率路径,并找出基于词频的最大切分组合,对于未登录词,采用汉字成词的隐马尔可夫模型(Hidden Markov Model, HMM) 进行组词,并使用维特比算法。Jieba库的主要功能包括分词、添加自定义词典、关键词提取和词性标注,支持三种分词模式:精准模式、全模式和搜索引擎模式[2]。其中,精确模式可以将句子以最精确的方式切分,常被用于情感分析。全模式则是将句子中的词全部分解,尽可能分出全部的词。搜索引擎模式则是将部分还能再分的词切分,得到比精确模式更多的词[3]。本文选择使用Jieba精确模式是对电视剧弹幕数据进行分词。
首先,使用Pymysql库连接MySQL数据库读取弹幕内容。然后,通过Jieba库的lcut()方法对弹幕内容进行分词。由于弹幕内容中会存在一些停用词,分词后的结果还不能直接用于弹幕词云图的绘制,需要把这些停用词去掉,防止在词云图中出现,本文使用的是百度停用词表。最终使用Collections模块counter()方法进行词频统计。
3.2 词云图绘制
词云图是对文本中出现频率较高的“关键词”予以视觉化的展现,目前词云图已成为文本数据可视化的一种常用方式。在词云图中,通常是不同的词采用不同的颜色表示,不同词频或权重的词采用不同的字号表示[4]。本文利用第三方WordCloud库进行词云图绘制。由于电视剧弹幕数据较多,首先需要过滤掉其中的低频词,本文仅选取词频在前40%的词作为高频词用于绘制词云图,并对词云的背景颜色、字体最大值、字体最小值、词云图片尺寸进行了设置,方便在弹幕数据分析详细结果页面进行展示。
4 弹幕情感分析
情感分析是指对带有感情色彩的主观性文本进行分析挖掘、处理、归纳和推理的过程[5],这一过程可以分析出人们在评论事物、服务、组织、事件和话题时的看法、情感倾向、态度等。目前常见的情感极性分析方法主要是两种:基于情感词典的方法和基于机器学习的方法。本文通过使用基于中文文本分析和处理的Python第三方库SnowNLP对弹幕文本数据进行情感分析研究,它提供了一系列的自然语言处理功能,包括分词、词性标注、情感分析、文本分类等。它采用了机器学习和统计学习算法,并且支持自定义训练模型,以便更好地适应特定领域的文本处理任务。
电视剧弹幕情感分析过程如下:首先,读取电视剧弹幕文本数据,再对这些数据进行去重、特殊字符过滤、提取中文内容。然后,调用SnowNLP模块的sentiment方法,对文本进行情感评分,得到的情感分值在0到1之间,越接近0情感表现越消极,越接近1情感表现越积极。最后,使用Matplotlib绘制弹幕情感分值分布的直方图和密度曲线图。
5 可视化展示
本文选取2020年在爱奇艺上线的181部电视剧,获取了这些电视剧的基础信息数据和35 252 554条弹幕数据,生成了电视剧弹幕词云图、情感分值分布的直方图和密度曲线图、电视剧每集的弹幕数量和主要演员及饰演角色被提及次数统计图形,并利用上述图形和数据构建了一个可视化的电视剧弹幕分析平台。平台部署在8核CPU,32GB内存,500GB SSD磁盘,100Mbps带宽的服务器上,操作系统使用64位的CentOS7.6,配置了Python3.8.5和MySQL5.7.29的基础环境,并安装了requests2.27.1、beautifulsoup4.9.1、pandas1.4.2、matplotlib3.3.4、wordcloud1.8.2.2、pymysql0.10.1、snownlp0.12.3、jieba0.42.1及其他相关第三库,选用Nginx1.21作为Web服务器发布电视剧弹幕分析平台。
平台首页直接展示出2020年爱奇艺播出的所有电视剧的剧目名称和海报,如图2所示。
如果想要查看电视剧弹幕的详细分析结果,直接点击电视剧的剧目名称或海报,进入详情页。详情页展示了电视剧的剧名、播出时间、集数、主要演员、弹幕词云、主要角色弹幕提及次数、弹幕整体情感倾向等数据和图片,通过点击集数还会展示出各集弹幕数量图,如图3、图4所示。
6 结论
弹幕已经成为观众在视频平台上观看电视剧一种新的参与互动形式,它简单直接地反映出观众对于电视剧剧情、人物角色和场景的第一感受,本文通过对电视剧弹幕数据的文本挖掘和情感分析获得观众对于电视剧的整体感受、评价情况、关注点以及电视剧的播出效果。通过弹幕数据采集、数据清洗、弹幕高频词统计、词云图绘制和SnowNLP情感分析等步骤后,获得电视剧的弹幕词云图、弹幕整体情感倾向图、主要角色弹幕提及次数图、各集弹幕数量图等结果,并统一通过电视剧弹幕分析平台进行可视化展示,更为直观地呈现出观众通过弹幕表达的对于观看电视剧时的情感,对电视剧的制作和营销具有重要的参考价值。
在后续的研究中,需要进一步加强弹幕出现时间与电视剧剧情内容,弹幕内容与电视剧主要角色演员之间的关联关系研究。
参考文献:
[1] 马梦曦.基于弹幕文本挖掘的情感极性分析研究[D].武汉:武汉理工大学,2019.
[2] 曹丹阳,赵俊生,李尽辉,等.基于Jieba分词的青城旅游景点本体构建研究与应用[J].内蒙古工业大学学报(自然科学版),2021,40(3):218-225.
[3] 陈平平,耿笑冉,邹敏,等.基于机器学习的文本情感倾向性分析[J].计算机与现代化,2020(3):77-81,92.
[4] 严明,郑昌兴.Python环境下的文本分词与词云制作[J].现代计算机(专业版),2018(34):86-89.
[5] 刘建波,杨峰.面向舆情分析的短文本频繁模式聚类算法[J].北京电子科技学院学报,2010,18(4):6-11.
【通联编辑:梁书】