基于爬虫技术对云冈石窟景区评论的情感分析与可视化展示

作者: 刘燕楠

基于爬虫技术对云冈石窟景区评论的情感分析与可视化展示0

关键词:爬虫技术;情感分析;可视化

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)21-0074-03

0 引言

随着我国国民生活水平的逐步提高,大家对精神文明的追求日益增长,我国的旅游经济正在蓬勃发展。在信息时代的背景下,衍生了许多旅游网站,例如马蜂窝、携程等。同时,各大旅游网站的评论已成为游客们作为旅游地选择的必要参考,积极的评论增加了游客游玩兴致与热情,消极评论会降低游客的前往的动力和兴趣。此外,评论还可以帮助景区管理者找到整改盲点,为整改措施找到方向[1]。

本文使用Python语言,采用爬虫技术爬取游客评论,将评论信息以CSV格式保存为文本文件,再对爬取的文本做出情感分析,最终分析结果通过可视化技术进行展示[2]。

1 相关技术

1.1 网络爬虫

网络爬虫(Web Crawler) 是一种自动化程序,用于在互联网上浏览和抓取信息。它可以访问各种网站,并根据预先设定的规则、算法或策略,从网页中提取数据并进行处理[3]。

网络爬虫的应用非常广泛,包括搜索引擎的索引建立、数据挖掘、信息采集、舆情监测、价格比较等。网络爬虫是一种强大的工具,能够自动化地浏览和提取互联网上的信息。但是,在使用网络爬虫时需要谨慎并遵守相关规定,以确保合法、合规地进行数据获取和使用[4]。

1.2 情感分析

情感分析(Sentiment Analysis) ,又称为意见挖掘(Opinion Mining) ,是一种通过计算机技术分析和判断文本中的情感倾向性的过程。它主要通过自然语言处理、机器学习和数据挖掘等技术方法,识别和提取文本中的情感信息,以确定文本的情感极性(如正面、负面或中性),或者更详细地描述情感类别(如喜悦、愤怒、悲伤等)。情感分析是一种通过计算机技术自动分析和判断文本情感倾向性的方法。它在各个领域都有重要应用,为企业、政府和个人提供情感反馈和舆情监测的价值[5]。

2 总体设计与实现

2.1 数据采集

本文以Python语言为基础,选取selenium爬虫,模拟用户的点击操作,动态爬取携程旅游网站关于山西省大同市云冈石窟景点游客的评论(https://you.ctrip.com/sight/datong275/11311.html) 。具体步骤如下:

1) 使用webdriver.Chrome()方法调用谷歌浏览器驱动;

2) 通过driver. get(′https://you. ctrip. com/sight/da⁃tong275/11311.html′)打开网页,并获取网页内容;

3) 调用driver.find_elements(By.XPATH,′//*[@id="commentModule"]/div[5]/div/div[2]/div[2]′)找到每页评论的标签;

4) 继续调用find_element(By.XPATH,′.′).text遍历获取每一条评论;

5) 通过csvwriter.writerow()函数将获取的评论逐一写入CSV文件中。爬取评论内容如图1所示。

6) 使用for循环,连续爬取前30页游客评论。本文通过爬虫技术动态爬取最近1000条评论作为基础数据,将爬取的数据以CSV格式进行存储。内部代码如图2所示。

2.2 情感分析

本文使用snownlp情感分析模块对景点评论进行情感打分。调用read_csv()函数,读取利用爬虫技术爬取的景点评论文本。设置两个列表分别为values和myval,values用于存储情感分析模块运算出的情感分数,myval用于存储评论对应所属的情感类别。通过for循环依次遍历文中的每一条评论,并调用SnowNLP(i).sentiments函数对每条评论进行情感打分,i为函数运算出每条评论的情感分数依次添加入values列表中。文本的情感分数设置在0到1之间,情感类别分别设置为积极情绪、中性情绪和消极情绪。依次遍历情感分数值i,i大于等于0.6,判断为积极情感,小于0.6大于0.2,判断为中性情感,情感分数低于0.2的评论则被判断为消极情感,依次将判断的情绪类别添加到myval列表中。

通过情感分析函数运算后每条评论的分值列表values与情感类别列表myval被依次添加到data数据列表中。

2.3 可视化展示

为了直观地观测到分析结果,本文将经过情感分析运算后的数据使用mat⁃plotlib 模块进行可视化展示。

把游客每条评论的情感分值i通过matplotlib.pyplot.plot方法以线形图方式展示,将图的横坐标设置为评论数量,纵坐标设置为评论经过情感分析所得到的情感分数即评价分值,范围为0到1.0。红色空心圆作为每条评论的具体分值,最后用蓝色直线依次将分值连接,如图3所示。

从图3 可知,大部分评论的情感分数均分布在0.8~1,由此可说明,大部分游客对云冈石窟的评价都很高。

为了显示出景点的总体评价,本文将情感分析判断的情感类别运用matplotlib.pyplot.pie方法,以饼状图的形式展示出来。将myval列表中的三种情感类别使用myval.value_counts().values.tolist()统计整理,分别由不同的颜色填充的扇形分别表示,如图4所示。

从结果看出评论主要都是积极情绪评论占比90.3%,只有极少数的中性和消极评论,进一步说明云冈石窟总体评价很高,值得去旅游参观。

本文通过 re.findall()对文本进行预处理,去除一些无用的字符只提取出中文文字。调用jieba.cut()对文本进行分词,为了提高准确度,将“的”“我们”“云冈石窟”等对评论无影响的词汇添加为停用词汇(stop_word) ,不做统计。通过if语句判断,将停用词汇之外的词汇添加入最终文本列表中。通过词频统计,获取前100 个最高频的词。通过调用plt.show(),依次显示出前10 个积极情绪高频词与消极情绪高频词,横坐标为高频词,纵坐标为词汇出现的频次,如图5、图6所示。

由图5可知对于云冈石窟景区,大部分游客都非常满意,而且觉得“值得”与“震撼”,由图6可知,在导游与停车等方面游客不太满意,还有待改善,景点管理者可根据。

3 结束语

随着各行各业飞速发展,产生的数据信息也在爆炸式的增长,同时没有价值的冗余数据也在不断增多,所以如何从庞大数据体中筛选高质量信息是目前重要的研究方向。本文通过对旅游网站中云冈石窟景点游客评论进行爬取、处理、情感分析与可视化展示等一系列操作,获取对景点的积极情绪评价与消极情绪评价。其他游客可根据情绪评价占比判断该景点是否值得推荐与前往,景区管理者可以通过消极情绪评价中的高频词了解游客们不满意的地方,从而针对问题进一步改进,为提升服务提供数据支撑。

经典小说推荐

杂志订阅