视频网站评论数据处理及分析

2022-02-24 00:08刘渝妍洪孙焱曹嘉晨
计算机时代 2022年2期
关键词:网络爬虫大数据

刘渝妍 洪孙焱 曹嘉晨

摘  要: 视频网站的用户评论、弹幕逐渐成为视频内容之外的一个引起热议的话题。视频评论作为新的文化产品和文化形式,引起了社会的关注。文章以B站为例,通过网络爬虫收集数据,利用大数据相关技术,对评论数据进行处理分析,并以词云图及散点图的方式呈现用户的关注点及语言表达的差异性,直观地为相关研究提供参考。

关键词: 网络爬虫; 大数据; 评论数据; 词云图; 散点图

中图分类号:TP311          文献标识码:A     文章编号:1006-8228(2022)02-76-04

Processing and analysis of the video website comments data

——Taking Station B as an example

Liu Yuyan, Hong Sunyan, Cao Jiachen

(College of Information Engineering,Kunming University, Kunming, Yunnan 650214, China)

Abstract: User comments and bullet screens of video websites have gradually become a hot topic outside the video content. As a new cultural product and form, video commentary has attracted social attention. Taking the station B as an example, this paper collects data through Web crawlers, processes and analyzes the comments data by using big data related technologies, and presents the differences of users' concerns and language expression in the form of word cloud diagram and scatter diagram, so as to intuitively provide reference for relative researches.

Key words: Web crawler; big data; comments data; word cloud map; scatter diagram

0 引言

B站,即哔哩哔哩(bilibili)视频网站,诞生于2009年,是通过视频表现形式传播文化的网站,其发展至今已跻身于国内最大的实时弹幕视频网站之列。B站作为一个创作、分享、讨论交流的平台,激励用户自制原创视频成为UP主[1],吸引了越来越多的年轻人选择在B站上创作视频。据统计,B站平均每月产生约14亿次视频评论,其弹幕文化已作为青年亚文化的一种新的文化产品和文化形式,我们应当本着尊重和理解的态度尝试去了解它[2]。本文以B站视频评论数据为基础数据,利用大数据技术对其进行处理与分析。

1 相关概念及技术

⑴ 大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。

⑵ Python是一种跨平台的程序设计语言。其爬虫工具包使用方便,为数据抓取提供了可能[3]。调用jieba.cut实现视频评论分词;调用MLlib库计算TF-IDF权重值和余弦相似度;调用Matplotlib、WordCloud库绘制词云图和相似散点图。

⑶ Spark作为大数据领域受到广泛青睐的一代框架,通过调用Spark MLlib中的函数,构造评论数据特征向量。

⑷ 网络爬虫是一种自动收集网络页面信息的机器人程序,也被称之为网络蜘蛛[4]。

⑸ 正则表达式是一种字符串匹配模式,在处理自然语言文本数据之前常用于对查找结果毫无帮助的字或英文、数字、表情符号、特殊符号等进行过滤[5]。

⑹ TF-IDF(Term Frequency-Inverse Document Frequency)词频-逆向文件频率统计方法。

TF表示文档中词条出现的频率,其公式为:

IDF表示文档集中包含词条的文档总数,是一个词条重要性的度量,其公式为:

公式⑵中分母为包含词条的文档数+1,是为了避免分母为零。

TF-IDF公式为:

TF-IDF=TF*IDF  ⑶

⑺ 余弦相似度是通过计算两个向量之间余弦值大小来判断向量的相似度,余弦值接近1,夹角趋于0,表明两个文本越相似。余弦相似度计算公式为:

式中,A为B分别为对比的两个向量。

2 B站视频评论数据分析

B站视频评论数据分析框架如图1所示。

2.1 数据采集

2.1.1 接口获取

数据爬取接口可通过B站开放的API接口获取。打开B站总榜页面,选择任意板块进入开发者模式,即可直接抓取相应的数据(仅爬取评论本身内容,对发布评论的用户信息不进行爬取)。如,要抓取音乐板块数据,只需在下列网址中设置rid=3,即可獲得音乐板块下的所有JSON格式视频数据。

api.bilibili.com/x/web-interface/ranking/v2?rid=3&type=all

2.1.2 爬虫实现步骤

⑴ 设置代理IP

通过设置代理IP(Internet Protocol),可突破网站对访问者进行限制。如,定义代理IP为:

proxys={'http':'http://115.223.7.208:80',……}

将其作为参数传入requests请求即可实现数据爬取。

xml_data=str(requests.get(xml_url,headers=headers,

proxies=proxys).content,encoding="utf-8")

⑵ 爬取视频评论内容

l 定义视频板块字典

rid_dict={"全站":0,"动画":1,"音乐":3,"游戏":4,"娱乐":5,

"科技":36,……}

字典中键值对格式为{板块名称:板块编号},板块编号通过url请求从api中获取。

l 遍历板块字典对应网址

url="https://api.bilibili.com/x/web-interface/ranking/v2?rid=

{}&day={}".format(rid,day)

requests.get(url,headers=headers)

l 向网站发起请求获取数据

res=url_get(url=url,mode="json")

l 存储数据到csv文件中

with open("{}/{}.csv".format(save_path,k),……:

2.2 数据预处理

通过数据预处理提高后期数据处理的准确率和效率。

2.2.1 评论数据清洗

使用正则表达式将文本中的标点符号替换为空字符,获取没有干扰的纯文本数据。

pattern=re.compile(r'[\s+\\r\\u3000\\!\/_,;

’:‘“”$%^*(+\"\']+|,……)

data_re=rdd.map(lambda x:re.sub(pattern,'##',x))

.map(lambda x:list(set(x.split("##"))))

2.2.2 评论本文分词

jieba库是优秀的中文分词第三方库,实现评论分词如下:

words=jieba.cut(strings,cut_all=False)

2.3 数据处理

2.3.1 词条特征向量构建

SparkMLlib将词条特征通过hashing函数实现词频统计。但不同的词条特征可能会得到相同的哈希值而产生hash冲突,本文以增加哈希表的桶数来避免冲突。

l 调用HasdingTf的transform把词条哈希成特征向量,设哈希表的桶数为2000。

hashingTF=HashingTF(inputCol="words",

outputCol="rawFeatures",numFeatures=2000)

featurizeData=hashingTF.transform(wordsData)

l 调用IDF对词频特征向量进行修正,提高不同词汇对文本的区别能力。

idf=IDF(inputCol="rawFeatures",outputCol="features")

idfModel=idf.fit(featurizeData)

l 调用transform,得到每一个单词对应的TF-IDF度量值。

rescaledData=idfModel.transform(featurizeData)

2.3.2 评论相似度计算

对TF-IDF值进行归一化处理,构建评论相似度权重向量。

normalizer=Normalizer(inputCol="features",

outputCol="norm")

data=normalizer.transform(rescaledData)

2.4 数据可视化及分析

通过可视化方式,将人们看不懂的数据通过图形化的手段进行有效的表达,能准确高效、简洁全面地传递某种信息,帮助人们分析和推理數据,挖掘数据背后的价值,使复杂的数据更容易理解和使用。

2.4.1 热评词云图绘制

词云是数据可视化的一种形式,是对评论、弹幕中出现频率较高的关键词予以视觉上的突出,形成关键词云层。通过词云的方式展现出更多的话题,更直观的呈现当前时段用户的关注点。WordCloud是一个词云生成器,以词条为基本单位,通过图形可视化的方式展示。绘制词云图的主要步骤如下:

l 绘制矩形词云图

wordcloud=WordCloud(font_path="AaLiFangTi.ttf",

background_color="white",width=800,height=600)

l 根据TF-IDF权重生成词云

wordcloud.generate_from_frequencies(dict(tdidf

.extract_keywords(open(document,'r',encoding='utf-8',

errors='ignore').read(),None)))

l 显示词云

plt.imshow(wordcloud,interpolation="bilinear")

本文抓取四月初的数据,绘制视频热评词云图如图2所示(B站的评论具有实时性,对不同时间段爬取的数据,结果可能不一样)。

从图2看出,一方面,用户关注的内容多以大学、学院为主,左上角以及在词云四周分布的各类院校名称,说明用户对知名度较高的院校非常关注。数据来源于四月初临近高考,说明用户对高考的关注度较高。在词云图右上角的师范大学说明师范教育被大家所重视,教师职业被越来越多的人接受。另一方面B站用户中学生所占比例较大,他们所关注的舆论热点也是积极的。

2.4.2 评论散点图绘制

通过空间点的分布不但能展现评论整体的差异分布,还能直观呈现大众的语言方式、表达结果是否接近。为解决评论整体相似结果在空间难以表示的问题,本文借鉴散点图,利用x轴,将聚集数据展开至二维空间,每一个点代表随机两条评论的相似度,横轴x的位置随机分布解决堆积现象,不影响结果;纵轴y是余弦值,点越靠近1,说明相似度越大。绘制评论散点图的主要步骤如下。

l 定义评论数据板块

Ranklist=['全站','动画','音乐','游戏','娱乐','科技','鬼畜',……]

l 遍历评论数据板块生成相似度字典

for i in ranklist:

fn=glob.glob(r'./result/'+i+'/*.csv')

with open(str(fn[0]),"r",encoding="utf-8")as f:

reader=csv.reader(f)

rows=[row[2]for row in reader]

l 绘制评论相似散点图

for i in rows:

plt.scatter(random.random(),i)

plt.show()

以四月初的数据为例,绘制视频评论散点图如图3所示。

从图3可知,一方面,绝大多数评论相似度较低,尽管用户关注的内容类似,年轻人不盲目跟风评论,但并没有使用相似的语言作为评论,体现了B站用户语言表达的高度差异化。另一方面,年轻人容易接受新事物,B站是视频投稿的聚集地,任何人都可以在网上接触到他人的投稿视频进行二次加工,并通过语言输出观点表达自我,有着很强的个人主义色彩,这就让社会对他们充满了期待。

3 结束语

如今,95后、00后等新一代青年群体在互联网环境中形成自己的文化,呈现出个性化、多元化、反传统等特征[6]。面对互联网下青年群体的思想观念变化,需要全社会的关注,因此,对视频评论数据的分析具有十分重要的意义。

目前对视频网站的研究主要集中在如何提高有效播放量、市场渗透率等商业模式上,对视频评论这种新的文化产品和文化形式呈现的内容分析研究较少。本文充分利用大数据相关技术实现了视频评论数据的处理,并通过可视化的方式为社会了解年轻人所追求的社会价值观,做好年轻人的思想教育工作提供了参考。同时,此数据处理方法也为网络热搜数据分析、网络舆控制提供了方法借鉴。

参考文獻(References):

[1] 王涵.哔哩哔哩动画现状及未来展望[J].产业与科技论坛,2020(24):13-15

[2] 张峰.弹幕视频网站的青年亚文化分析—以哔哩哔哩网为例[J].艺术科技,2017(2):86

[3] 吴永聪.浅谈Python爬虫技术的网页数据抓取与分析[J].计算机时代,2019(8):94-96

[4] 李彦.基于Python的网络爬虫技术的研究[J].电子世界,2021(3):39-40

[5] 马梦曦.基于弹幕文本挖掘的情感极性分析研究[D].武汉理工大学硕士学位论文,2019

[6] 吴莹.共青团中央在哔哩哔哩网站上的传播经验分析[J].传播力研究,2019(17):259-260

猜你喜欢
网络爬虫大数据
炼铁厂铁量网页数据获取系统的设计与实现
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究
数据+舆情:南方报业创新转型提高服务能力的探索
基于社会网络分析的权威网页挖掘研究
主题搜索引擎中网络爬虫的实现研究
浅析如何应对网络爬虫流量
网络爬虫针对“反爬”网站的爬取策略研究