一、 项目名称:
广州长隆旅游度假区携程评论爬虫可视化分析
二、项目背景或目的介绍
随着在线旅游预订平台的快速发展,携程网站作为中国最大的旅游服务平台之一,拥有大量的用户和内容资源。旅游景区评论作为其中重要的一部分,包含了丰富的旅游信息和用户的游览经验分享。因此,对携程网站的广州长隆旅游度假区评论进行爬虫可视化分析,能够为旅游行业提供有价值的洞察和决策支持。
项目目的:本项目旨在通过爬取携程网站的广州长隆旅游度假区评论的数据,进行可视化分析,以达到以下目的:
- 了解用户对广州长隆旅游度假区的评论和评价:通过分析携程网站的评论内容,可以了解用户对广州长隆旅游度假区的体验和意见,帮助旅游从业者了解用户需求,改进景区服务。
- 发现热门景点和旅游趋势:通过统计携程网站评论中的转发量和点赞数等数据,可以识别广州长隆旅游度假区内的热门景点和受欢迎的旅游趋势,为旅游行业的推广和规划提供参考。
- 分析用户行为和旅游偏好:通过对携程网站评论的分析,可以了解用户的旅游行为和偏好,包括目的地选择、旅行方式、消费水平等。
通过以上的可视化分析,本项目将为旅游行业提供数据驱动的决策支持,帮助景区管理者、旅行社和旅游规划者更好地了解用户需求和市场动态,提升旅游体验和行业竞争力。
三、 实验环境
python3.8+Windows、xpath、sklearn等依赖包、Chrom 浏览器、Pycharm编译器
四、项目开发设计框图
项目目标:
开发一个项目,通过爬取携程上与指定景区相关的博文内容,将其进行分词、去除停用词后,进行词云可视化、LDA主题建模分析、文本情感分析、共现语义网络分析,为旅游行业提供数据驱动的决策支持,帮助景区管理者、旅行社和旅游规划者更好地了解用户需求和市场动态,提升旅游体验和行业竞争力。
设计概述:
数据抓取:分析发现携程网站使用的是ajax动态加载技术,因此我选用了selenium自动化框架进行网页爬虫,使用Xpath进行网页内容过滤。
数据处理:爬取到的微博博文将被分词并去除停用词。我们将使用哈工大等机构提供的停用词表进行分词和清洗。这个过程可以使用jieba分词工具实现。
词云可视化:对清洗后的数据进行词云图制作,以直观展示微博博文中的主要词汇。词云的生成会使用到wordcloud库。
情感分析:使用自己训练的SnowNLP进行积极情感消极情感分类,并将分类后的结果保存到表格中。
主题建模分析:将清洗后的数据进行LDA主题建模分析,以识别出微博博文中的主要主题。我们将使用sklearn库来进行LDA建模。
可视化分析:利用matplotlib或者pyLDAvis等可视化工具,将LDA主题建模的结果进行可视化展示。
异常处理:考虑到可能出现的自动化程序被识别和其他网络问题,我们将在爬虫程序中添加异常处理逻辑,确保程序能够稳定运行。
整个项目将被分为数据获取、数据预处理、数据可视化和主题建模四个主要部分。这些部分将相互配合,形成一个完整的数据爬取和分析流程。
五、项目的具体实现及方法:
5.1爬虫具体实现:
分析发现携程网站使用的是ajax动态加载技术,使用bs4以及传统的requests技术爬虫单独较高,因此我选择的是selenium自动化框架来模拟真实的网页交互,进行评论数据爬取。
- 初始化WebDriver:首先,这段代码使用Chrome WebDriver(Selenium的一部分)来启动Chrome浏览器,并创建一个.csv文件以储存爬取的数据。
2.获取目标网页:然后,这段代码将Chrome浏览器导航到携程网站上广州长隆旅游度假区的页面。
3.滚动页面:在导航到页面后,代码会调用scrolldown()函数以滚动页面,目的是加载更多的评论。这个函数接收一个driver对象,一个开始滚动的位置,一个滚动的步长,以及滚动的次数作为参数。
- 选择排序方式:然后,代码会选择评论的排序方式。考虑到网站的智能排序会倾向于展示好评,为了可以客观的分析这里选择的是按时间排序。
5.2数据清洗:
- 首先使用jieba库进行中文分词,使用哈工大、四川大学、百度等停用词表进行去除停用词
5.3统计词频制作词云图
统计前100的词频,输出结果,调整停用词表直到得到较为满意的词频前100词汇:
前100词频结果:
取词频前十进行直方图可视化:
通过对广州长隆旅游度假区的携程评论爬虫数据进行词频分析,我们发现了十个出现频率最高的词语:长隆、动物、值得、动物园、好玩、孩子、酒店、开心、乐园。
- "长隆"和"动物园"出现频率高,这可能是由于长隆旅游度假区以其动物园广受游客欢迎,且很多游客在评论时都会提到。
- "值得"和"好玩"的频繁出现表明了游客对长隆旅游度假区的高度评价,他们普遍认为这个度假区非常有趣并且值得一游。
- "孩子"的出现也反映出长隆旅游度假区是一个适合带孩子游玩的地方,这对于家庭游客来说是一个重要的吸引点。
- "酒店"的出现则表明游客在评论中经常提及度假区内的酒店设施,这可能意味着游客往往会在度假区内住宿,或者度假区的酒店给游客留下了深刻印象。
- "开心"的出现表明游客在游玩过程中感到了快乐,这对于提升度假区的口碑和吸引更多游客来访有着重要的作用。
- "乐园"的出现则可能与长隆旅游度假区内有多个不同的乐园有关,如长隆水上乐园、长隆野生动物世界等。
通过以上分析,我们可以看出广州长隆旅游度假区在游客中的口碑良好,特别受到家庭游客的欢迎。对于运营者来说,应保持和提高现有的服务质量,同时也可以进一步提升酒店和乐园的设施,为游客提供更多元化的游玩体验。
词云图实现结果:
5.4 使用SnowNLP进行情感分析
SnowNLP是一个常用的Python文本分析库,是受到TextBlob启发而发明的。由于当前自然语言处理库基本都是针对英文的,而中文没有空格分割特征词,Python做中文文本挖掘较难,后续开发了一些针对中文处理的库,例如SnowNLP、Jieba、BosonNLP等。
- Snownlp主要功能包括:
- 中文分词(算法是Character-Based Generative Model)
- 词性标注(原理是TnT、3-gram 隐马)
- 情感分析
- 文本分类(原理是朴素贝叶斯)
- 转换拼音、繁体转简体
- 提取文本关键词(原理是TextRank)
- 提取摘要(原理是TextRank)、分割句子
- 文本相似(原理是BM25)
SnowNLP情感分析是基于情感词典实现的,其简单的将文本分为两类,积极和消极,返回值为情绪的概率,也就是情感评分在[0,1]之间,越接近1,情感表现越积极,越接近0,情感表现越消极。这里我将情感区间从[0, 1.0]转换为[-0.5, 0.5],使曲线更加直观。
当判断正负向情感的阈值设置为0的时候,发现部分带有消极情感倾向的评论文本会被分类为积极情感:
对应的评论文本的sentiments数值为:
经过多次尝试和观察,将阈值设置在0.1可以达到做好的情感倾向分类效果:
采样2000条评论,可视化情感分析结果:
5.5 LDA主题模型建模分析:
- 使用自定义的词典以及停用词表对文本进行分词、去停用词:
- 模型构建
- 模型主题建模结果可视化
- 根据困惑度曲线变化,选择最佳主题数目为4,符合爬虫景点数据情况。
- LDA主题建模结果展示
5.6共现语义网络分析
- 定义stopwordslist函数,从四个停用词文件中读取所有的停用词。这些停用词在分词时会被过滤掉。
2.
读取包含评论的CSV文件,将所有的评论连接到一起成为一个大的文本块。
3.
使用jieba库进行分词,并且去除停用词。所有的分词结果被存储在数据框的新列cutword中。计算并保存每个词的词频。
4.选择词频最高的前50个词作为关键词。
5.生成一个关键词共现矩阵。共现矩阵中的每个元素表示对应行和列的两个关键词在同一评论中共同出现的次数。如果两个关键词在同一评论中的位置距离为0或1,那么它们被认为是共现的。
- 使用networkx库和matplotlib库,根据关键词共现矩阵生成并可视化一个词共现网络图。
- 可视化结果分析
Snownlp情感分析:
根据对广州长隆旅游度假区的携程网络评论数据进行情感分析,我们发现大部分用户的评论都充满了积极的情感。这表明了游客对长隆旅游度假区的积极评价和高度满意度。
这一结果进一步说明了长隆旅游度假区在游客心中享有良好的声誉和吸引力。游客的评论中,不仅对长隆的风景和乐园设施表示了称赞,对其服务质量和多样化的旅游体验也有高度的赞扬。
积极的用户评论对于长隆旅游度假区的宣传和推广具有极其重要的影响。这些充满积极情感的评论可以作为强大的营销资产,用于提升长隆旅游度假区的品牌形象,吸引更多的游客前来体验,从而提高其知名度和声誉。
然而,尽管大部分用户的评论都是积极的,但也应当关注那些可能存在的负面评论或改进建议。对于这些带有负面情感的评论,长隆旅游度假区的管理者可以予以重视并采取相应的措施进行优化和改进,以期提供更好的游客体验和满意度。
LDA建模后的可视化结果如下:
根据LDA主题模型的分析结果,广州长隆旅游度假区的主题和关键词如下:
主题0 (长隆主题乐园):关键词有"长隆","乐园","游玩","设施","孩子","项目","排队","时间","体验","好玩"等。这些关键词反映出游客对长隆主题乐园的主要关注点是设施,项目,排队时间,以及孩子们的游玩体验。
主题1 (长隆酒店):关键词有"酒店","住宿","服务","环境","设施","舒适","早餐","体验","满意"等。这些关键词显示了游客对长隆酒店的整体评价,包括酒店的环境,服务,设施,早餐等。
主题2 (长隆动物园):关键词有"动物园","动物","孩子","体验","喂食","表演","教育","互动","有趣"等。这些词语表明游客对于长隆动物园的积极评价,特别是对孩子的教育意义,动物的喂食和互动体验。
主题3 (长隆水上世界):主要关键词有"水上","设施","游玩","孩子","好玩","滑水","体验","安全","项目"等。这些关键词描绘了游客对长隆水上世界的整体评价,以及对各类滑水项目的体验感受。
根据上述分析,以下是针对广州长隆旅游度假区的提升建议:
长隆主题乐园:可以考虑优化游玩设施的排队时间,提高游客的游览体验。另外,可以增加更多适合孩子们的游玩项目,让他们在乐园里有更丰富的体验。
长隆酒店:应注重提高酒店的服务质量,比如提供更舒适的住宿环境,丰富早餐的选择,优化入住和退房流程等。
长隆动物园:可以进一步丰富动物的互动体验,如增设更多的动物喂食和表演项目,同时强化教育功能,让孩子们在游玩的同时,能够更好地了解到动物的生活习性和保护动物的重要性。
长隆水上世界:可以通过增加和优化滑水项目,提升游客的体验。比如,增设更多的儿童友好型滑水项目,让游客能更深入地体验水上活动的乐趣。同时,要注重游玩设施的安全性,确保游客在享受游玩的同时,能够有一个安全的环境。
总的来说,以上的提升建议都是基于游客的评价和需求出发,通过优化度假区的设施、服务和活动,来提高游客的满意度。同时,也要注重保护和传承度假区的自然风光和文化价值,使游客在游玩的同时,也能获得更深的文化体验。
共现语义网络分析:
根据生成的共现语义网络图,我们可以看到'长隆'、'动物'、'值得'、'动物园'、'好玩'、'孩子'、'世界'、'酒店'、'开心'、'乐园'等关键词在评论中频繁出现,并且有强烈的关联性。以下是根据这些关键词的共现关系,我们可以得出的一些分析:
- '长隆'、'动物园'、'动物'和'野生动物'的关联性很强,这显示出游客对长隆度假区中动物园部分的关注度很高,特别是对野生动物的观赏体验感到满意。同时,关键词'孩子'的出现,表明动物园是一个适合孩子参观的地方,可以让孩子们有机会近距离接触和了解各种动物。
- '值得'、'好玩'、'开心'、'乐园'和'欢乐'等词语的频繁出现和关联,显示了游客对长隆度假区的总体评价非常积极,认为度假区的各种娱乐设施和项目都非常有趣和有价值,给游客带来了快乐的游玩体验。
- '酒店'、'度假区'、'旅游'和'景区'等词语的共现,暗示了游客在长隆度假区除了参观动物园和游玩娱乐设施外,还会选择在度假区的酒店住宿,享受全方位的旅游体验。
- '项目'、'刺激'、'游玩'、'体验'等词语的共现,表明游客对于度假区的娱乐项目特别感兴趣,特别是一些刺激的游乐设施,如过山车等,给他们带来了独特的体验。
- '推荐'、'满意'、'好看'等词语的共现,表明大多数游客对于长隆度假区的整体体验都感到满意,并且愿意推荐给其他人。
总的来说,这个共现语义网络图为我们揭示了游客对于广州长隆旅游度假区的主要关注点和评价,帮助我们深入理解游客的需求和喜好,为提升度假区的服务和设施提供了有价值的参考。