A171-flask实现旅游住宿酒店评价可视化分析系统【完整源码论文】
导出时间:2025/11/26 14:26:56
【购买前必看】
1、关于我们
深度学习乐园是由python哥全职技术团队组建运营【团队成员为:复旦大学博士、华东理工爱丁堡博士、格拉斯哥博士、纽约大学硕士、浙江大学硕士】。
我们只做python业务,精通sklearn机器学习/torch深度学习/django/flask/vue全栈开发。
2、关于项目
我们从2018年开始,就专注于深度学习sci、ei、ccf、kaggle等,至今已有7年,共发表过10多篇顶刊顶会。
官网累积了数百个项目,已有3000多学员付费购买,圈子内有口皆碑:www.zzgcz.com (更多高级私密项目无法对外,联系微信定制:zzgcz_com)
3、售后承诺
包远程安装调试,所有项目均在本地运行通过,大部分都有截图和录屏。
支持二次修改,所有项目都是我们自己写的,改起来也非常容易。
加急定制1-2天可完成,这就是实力证明,远程验收满意后再付全款!
所有客户终身售后。兼职的人家都有主业,谁愿意持续服务你?
注:此html可能格式或图片显示不全,请购买后查看docx文档
基于Python的猫途鹰旅游住宿评价与分析系统的设计与实现
摘要:
随着生活品质的提升,旅游业迅速崛起,吸引了大量游客选择线上平台如猫途鹰、携程等预定旅游住宿。在这样的背景下,住宿评价显得尤为重要,因为它们为游客提供了决策依据,帮助他们选择更优质的住宿服务。为了满足用户和旅游业的实际需求,设计并实现一款旅游住宿评价与分析系统。该系统首先通过爬虫程序从猫途鹰等网站抓取用户的住宿评价数据,并将这些数据存储在MySQL数据库中。随后,利用Pandas进行数据清洗和处理,再通过情感分析算法对评价数据进行正负向分类。最后,借助Flask、ECharts和HTML技术构建可视化界面,直观地展示分析结果。经过测试,系统满足设计基本需求,能安全、稳定和可靠地运行。
关键词:Python爬虫技术;数据可视化;旅游住宿;评论数据;情感分析;
Design and implementation of Tripadvisor tourist accommodation evaluation and analysis system based on Python
Yinghong Yan
(New Engineering Industry College, Advisor: Minmin Jiang)
Abstract:
With the improvement of the quality of life, the rapid rise of tourism has attracted a large number of tourists to choose online platforms such as Tripadvisor and Ctrip to book travel accommodation. In this context, accommodation evaluation is particularly important, because they provide a basis for tourists to make decisions and help them choose better accommodation services. In order to meet the actual needs of users and tourism industry, a tourist accommodation evaluation and analysis system is designed and implemented. The system first crawls users' accommodation rating data from websites such as Tripadvisor via a crawler and stores the data in a MySQL database. Subsequently, Pandas was used for data cleaning and processing, and sentiment analysis algorithm was used to classify the evaluation data in positive and negative directions. Finally, a visual interface is built with Flask, ECharts and HTML technologies to visually display the analysis results. After testing, the system meets the basic design requirements and can run safely, stably and reliably.
Keywords:Python crawler technology; Data visualization; Tourist accommodation; Review data; Emotion analysis;
目 录
第1章 绪论1
1.1 背景和意义1
1.2 研究现状分析2
第2章 相关技术4
2.1 PyCharm4
2.2 Python语言4
2.3 Flask框架5
2.4 ECharts简介6
2.5 SVM原理7
第3章 系统分析与设计8
3.1系统需求分析8
3.1.1系统功能需求分析9
3.1.2系统性能需求分析10
3.2系统可行性分析11
3.2.1技术可行性12
3.2.2法律可行性13
3.2.3经济可行性14
3.3系统整体架构15
3.4数据采集与存储16
3.5数据处理17
3. 6数据分析设计18
第4章 系统功能实现20
4.1 注册登录功能21
4.2 首页22
4.3 用户管理功能23
4.4 评论搜索功能24
4.5 住宿排行榜 25
4.6 口碑分析 26
4.7 酒店预定及对比 27
第5章 系统测试28
5.1系统测试的目的29
5.2 系统测试的方法30
5.3 具体测试31
5.4 测试总结32
第6章 总结33
致谢34
参考文献35
绪论
1.1 背景和意义
1.1.1 研究背景
随着互联网的全面普及与电商的飞速发展,消费者足不出户就能在网上查看旅游住宿的相关评价信息,从而进行酒店预定等。据CNNIC发布的第49次《中国互联网发展情况统计报告》显示,截至2021年12月,我国在线旅行预定用户规模达3.97亿,较2020年12月增加5466万,占网民整体的38.5%[1]。利用这些旅游app进行网上预定已成为人们生活的重要组成部分,同时越来越多用户愿意在在线旅游服务平台分享自己对住宿的真实体验,这也使得在线旅游服务平台上积累了大量的评价数据,这些数据已成为用户消费决策及商家了解消费者偏好的重要参考依据。在这种信息爆炸背景下,旅游住宿评价与分析系统应运而生,全面分析旅游住宿评论数据,不仅为用户提供更好的选择,也提高商家市场竞争力。
用户在选择住宿时,面临着海量的评价信息,这使得快速筛选出关键信息成为一项艰巨的任务。由于不同用户对于住宿的需求和评价标准存在差异,系统在处理用户评价时面临着公平性的挑战,难以满足所有人的需求。此外,网络预订中的信息纷繁复杂,且存在虚假信息,这进一步增加了住宿选择的难度,如确定最佳预定时间、评估安全性、卫生状况等。特别是对于短期停留并希望就近游玩的旅客来说,住宿规划显得尤为关键[2]。
1.1.2 研究意义
在互联网时代,用户生成的内容(UGC)成为了影响消费者决策的重要因素之一。旅游住宿评价与分析系统正是基于这一趋势而发展起来的。通过系统化地收集和分析用户评价,可以更准确地体现出住宿服务的优劣势,为旅游者提供更具参考价值的信息,帮助其做出更明智的选择。同时,对于商家而言,通过分析系统反馈的数据,可以及时了解市场需求和用户偏好,针对性地改进服务质量,提升竞争力。
基于Python的猫途鹰旅游住宿评价分析与可视化系统,理论意义:不但可以提供给用户更加精准、有用的旅游住宿信息;还能帮助商家发现自身的优势和不足之处,从而进行改善和优化,为旅游业的发展提供数据支撑,促进旅游业的可持续发展,推动经济社会的进步。
实践意义:本系统利用了情感分析算法,以及在中文分词做了改进,提高了分词的准确性和稳定性,为之后的分析奠定了基础;在对数据进行分析及可视化展示中做了优化,用户不仅可以快速查看到旅游住宿的相关信息,还做了对比,增强数据可视化的实用性,提升用户的视觉体验。
1.2 研究现状分析
2018年以前,中国在线酒店市场保持着快速增长的趋势,在2018年的中国旅游住宿业发展报告中提出酒店市场的发展应该从重速度发展到重质量发展,所以对酒店数据进行分析从而获取有价值的知识是非常必要的[2]。现有的酒店可视化分析主要针对运营数据,帮助商家提高市场竞争力,例如在基于社会感知的酒店竞业市场分析可视化系统中[3],通过分析用户兴趣行为和关注行为所引发的偏好数据、评论行为产生的口碑数据以及用户搜索行为产生的数据等数据,自然语言处理技术以及信息抽取技术等被应用于用户情感偏向,酒店的服务质量以及酒店的价格变化趋势等做详细的可视化展示分析。
也有学者研究用户对酒店的评论文本数据,例如Lee等[4]对TripAdvisor、Agoda和Booking.com等网站的用户的体验和评论进行分析,通过文本挖掘和可视化展示方法研究了影响住客满意度的原因,通过提供的交互操作使得用户可以自由地探索隐藏在评论中的其他信息。王[5]等利用情感分析方法,对住宿评论进行情感极性分类,从而帮助用户更好地了解住宿环境和服务质量。国内外的研究者开始将智能推荐算法引入住宿预订平台,为用户提供个性化的住宿推荐服务。例如,Xu[6]提出了一种基于用户历史行为和偏好的住宿推荐算法,通过分析用户的浏览记录和评价历史,为用户推荐最符合其需求的住宿选项。这些算法不仅考虑了价格和地理位置因素,还结合了用户的评价历史和社交网络信息,提高了用户的预订体验。
国内一些地方政府借助信息化技术建设旅游住宿评价与分析系统,用于监管和管理住宿行业。这些系统能够实时监测住宿企业的服务质量和安全情况,为政府部门提供决策支持和监管手段。例如,某地旅游局利用大数据技术构建了住宿企业评价监测系统[7],实现了对住宿服务质量的实时监控和评估。本文将以消费者需求为导向,基于已有的研究成果,深入分析住宿评论,并通过可视化展示和情感分析等手段,为用户提供更加精准、直观的住宿选择参考。
相关技术
2.1 PyCharm
PyCharm是一款功能强大的Python集成开发环境(IDE),它配备了一系列高效工具,旨在提升Python开发者的工作效率。这些工具包括调试器、语法高亮显示、项目管理、代码跳转、智能提示、自动完成、单元测试以及版本控制等。此外,PyCharm还特别支持Django框架下的专业Web开发,其内置的HTML、CSS和JavaScript编辑器使得Django项目的开发更加迅速和便捷。不仅如此,PyCharm还支持CoffeeScript、Mako和Jinja2等语言,并提供了一个智能且可配置的编辑器,具备代码补全、代码片段、代码折叠和分割窗口等实用功能。这些特性使得编码过程更加高效、轻松。
2.2 Python语言介绍
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,初衷是作为ABC语言的替代品。它提供了高效的高级数据结构,并支持简单而有效的面向对象编程。Python的语法简洁明了,动态类型特性,以及作为解释型语言的本质,使其在多个平台上成为编写脚本和快速开发应用的理想选择。随着版本的持续更新和新功能的不断加入,Python逐渐被应用于独立的大型项目开发中。Python解释器易于扩展,可以利用C语言或C++(或其他可通过C调用的语言)来增添新的功能和数据类型。此外,Python也适用于作为可定制化软件中的扩展程序语言。其丰富的标准库为各种系统平台提供了源码或机器码,进一步增强了其实用性和便利性。值得一提的是,在2021年10月,编程语言流行指数编译器Tiobe将Python誉为最受欢迎的编程语言,这是20年来它首次超越C和Java,彰显了Python在全球编程社区中的广泛影响力和不断上升的重要性。主要优点包括:
- 高级:Python的内建列表(数组)和字典(哈希表)作为核心语言的重要构建单元,不仅鼓励开发者使用它们,还能显著减少开发时间和代码量,同时促进生成更具可读性的代码。
(2)面向对象:Python 的面向对象的特性是与生俱来的。然而,Python 绝不像 Java 或 Ruby 仅仅是一门面向对象语言,事实上它融汇了多种编程风格。例如,它甚至借鉴了一些像 Lisp 和 Haskell 这样的函数语言的特性。
(3)易于学习:Python有相对较少的关键字,结构简单,以及语法明确定义,学习起来更加简单。
(4)广泛的标准库:Python的显著优势之一在于其丰富的库,这些库不仅功能多样,而且具有出色的跨平台兼容性,能够在Linux、Windows和Macintosh等操作系统上流畅运行。
(5)可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
(6)可扩展:如果需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,可以使用C或C++完成那部分程序,然后从在Python程序中调用。
(7)数据库:Python提供所有主要的商业数据库的接口。
2.3 Flask框架
Flask框架是一个用Python编写的微型web框架,由Armin Ronacher于2010年开发并发布。Flask相较于其他框架(如Django)的一个主要优势是其轻量级和简单性。Flask可以方便地定义URL路由,并将URL映射到Python函数上。Flask内置了Jinja2模板引擎,可以使用Jinja2模板来动态生成HTML。
同时也包括HTTP请求和处理,以及支持服务器端和客户端会话,存储用户特定的数据。此外,Flask更加注重系统的可扩展性,利用Flask的扩展来添加一些功能,例如Flask-SQLAlchemy提供了SQLAlchemy的支持等。
2.4 ECharts简介
ECharts是一个使用JavaScript编写的开源可视化库,由百度开发并在GitHub上开源。它可以生成在网页上显示的图形和图表,包括折线图、柱状图、散点图、饼图、地图、热力图等众多类型。它提供了丰富的选项来定制图表的外观和行为,包括颜色、标签、提示框、坐标轴等等。它还支持用户交互,例如点击、悬停、缩放和拖拽。本文主要用于前端开发,与HTML、CSS和JavaScript一起使用,在网页上展示数据,直观地显示分析结果,实现了报表的动态交互。例如评论正负向饼图、不同年份旅游住宿的评论数据折线图、不同酒店之间的对比直方图等。
2.5 SVM原理
支持向量机(简称SVM)是一种监督学习的算法,主要用于分类和回归分析。SVM的基本思想是通过在特征空间中构造出一个超平面,使得两个类别的数据尽可能地位于超平面两侧而且距离超平面尽可能远,以达到良好分类效果。对于线性可分问题,SVM通过找到最大化间隔(即超平面到每个类别最近的数据点之间的距离)的这个超平面来解决。对于非线性问题,SVM通过引入核函数和软间隔的概念,将数据映射到一个更高维度的空间中,使得数据在这个新的空间中变得线性可分。
图1 线性可分SVM模型
系统分析与设计
3.1 系统需求分析
3.1.1 系统功能需求分析
在构建旅游住宿评价与分析系统时,对功能需求进行分析是不可或缺的一环,它是确保系统用户友好且功能完备的关键所在。通过这一分析过程,可以精准把握系统所需的核心功能,从而充分满足终端用户和管理员的多样化需求。以下是对系统功能的详细需求分析:
- 用户和管理员注册登录功能
目标:允许用户和管理员创建账户并通过认证机制登录系统。
需求:实现一个安全的注册和登录流程,包括电子邮件验证和密码恢复功能;对管理员和普通用户采用不同的认证机制,确保系统安全。
- 首页分布功能
目标:在系统首页展示基本概况,例如评论总条数、酒店总数、分布地图等。
需求:地图上显示酒店位置标记,便于用户根据地理位置查找住宿信息。
- 用户管理功能
目标:为管理员提供管理注册用户的功能,包括查看、编辑和删除用户信息。
需求:管理员可以浏览所有注册用户的列表,执行搜索和删除操作;提供用户账户的详细信息视图,包括用户发布的评论。
- 评论搜索功能
目标:允许用户根据关键字、地点或类型搜索住宿评论。
需求:实现全文搜索,优化搜索算法以提高相关性和速度;提供高级搜索选项,如酒店名称、地点、评分过滤等。
- 住宿排行榜
目标:基于用户的浏览历史和评价偏好显示热门住宿及负面口碑排行榜。
需求:分析用户评论和偏好,展示住宿的优劣排行榜。
- 口碑分析功能
目标:提供住宿地点的综合评价分析,包括情感倾向、用户满意度等。
需求:实施情感分析算法,从用户评论中提取情绪倾向;通过图表和报告展示分析结果,便于用户理解。
- 酒店的对比分析及预定
目标:允许用户选择多个酒店进行详细对比,并提供直接预订链接。
需求:实现一个对比功能,用户可以选择特定的酒店进行详细属性和评价的对比;为了方便用户进行预订,提供了直接链接到预订平台的通道。
3.1.2 系统性能需求分析
在设计旅游住宿评价与分析系统时,对系统性能的需求分析是确保系统高效、稳定运行的关键步骤。性能需求分析涉系统在实际运行环境中应达到的性能标准,包括处理速度、响应时间、数据处理能力、并发用户数等多个方面。以下是对旅游住宿评价与分析系统的系统性能需求分析的概述:
- 响应时间
用户界面响应时间:系统应确保用户界面的响应时间在1秒以内,以提供流畅的用户体验。
数据处理响应时间:对于用户提交的查询请求,系统应在3秒内返回结果,确保高效的信息检索和展示。
- 数据处理能力
大数据处理:鉴于旅游住宿评价数据量庞大,系统需要具备高效处理大规模数据集的能力,包括数据采集、存储、分析与展示。
实时数据分析:系统应能够实时分析最新的用户评价数据,及时更新评价分析结果,以反映最新的用户满意度和住宿趋势。
- 并发用户支持
高并发处理:系统应能支持至少千级别的并发用户访问,确保旺季期间用户访问的流畅性。
稳定性与可靠性:在高并发请求下,系统应保持稳定运行,错误率低于0.1%。
- 可扩展性
系统扩展:随着用户量的增加和数据量的扩大,系统应支持横向与纵向的扩展,以满足未来的性能需求。
模块化设计:系统采用模块化设计,方便未来功能的扩展与升级。
- 安全性
数据安全:系统需要实现强大的数据加密与保护机制,确保用户数据和评价信息的安全。
访问控制:系统应有完善的用户认证和授权机制,确保只有授权用户可以访问敏感信息。
- 备份与恢复
数据备份:系统应定期备份数据,以防数据丢失或损坏。
快速恢复:在发生系统故障时,系统应能快速恢复到正常状态,最大程度减少服务中断时间。
3.2 系统可行性分析
3.2.1 技术可行性
本系统采用Python开发语言,具有很好的扩展性和平台兼容性,而且功能非常强大、易操作。页面技术通过HTML进行效果呈现,最大的特点就是本系统采用B/S框架进行开发,B/S可以不受本机系统的限制,可以把数据存放到服务器,用户可以直接通过浏览器进行系统访问,注重用户体验,界面友好、操作简单。所以从技术层面考虑是可行的。
3.2.2 法律可行性
本系统始终秉持合法合规的原则,在数据采集过程中严格遵守数据隐私相关法律法规,确保用户信息的安全与隐私。同时,开发环境坚持开源共享,尊重知识产权,严格遵守专利法、著作权法等法律法规,确保无任何侵权行为。因此,本系统在法律上是完全可行。
3.2.3 经济可行性
- 市场需求:随着旅游业的发展,旅游住宿评价分析与可视化系统的市场需求逐渐增加。这种系统可以帮助游客更好地了解住宿选择,提高旅游体验,因此具有广阔的市场前景。
- 成本效益:开发这种系统需要一定的投资,包括人力、物力和财力等。然而,与传统的市场调研和数据分析方法相比,这种系统可以大大提高数据处理和分析的效率,降低人力成本,提高决策的准确性。
- 竞争环境:旅游住宿评价分析与可视化系统面临着激烈的市场竞争。然而,通过不断创新和优化,这种系统可以在竞争中脱颖而出,获得更多的市场份额。
综上所述,该系统在经济上具有可行性。通过市场需求、成本效益和竞争环境等方面的分析,可以看出这种系统具有广阔的市场前景和潜在的经济效益。
3.3 系统整体架构
旅游住宿评价与分析系统的总体结构设计旨在创建一个高效、易用、可扩展的平台,它允许用户浏览住宿信息、发表和查看评价、进行预定,并使管理员能够管理用户和住宿信息。系统结构被设计为多层架构,包括表现层、业务逻辑层、数据访问层和数据存储层,以支持系统的各种需求和功能。
图2 系统整体架构
- 表现层(Presentation Layer)
目的:为用户提供交云界面,包括网页和移动应用,通过这些界面用户可以注册、登录、浏览住宿信息、进行对比、预定酒店等。
技术:使用HTML、CSS、JavaScript来开发动态且响应式的用户界面。
- 业务逻辑层(Business Logic Layer)
目的:处理用户请求的业务逻辑,如用户认证、数据处理、情感分析等。
技术:采用Flask框架实现业务逻辑,该框架提供了丰富的库和模块来简化开发过程。
- 数据访问层(Data Access Layer)
目的:为业务逻辑层提供数据的CRUD操作(创建、读取、更新、删除),隐藏数据库的具体实现细节。
技术:使用SQLAlchemy(ORM工具)来进行数据库操作,例如:完整的SQL语句生成和执行、事务和连接池管理等。SQLAlchemy会自动把这些操作翻译成相应的SQL语句,然后在数据库上执行。这给在数据访问层的系统设计带来了极大的便利。
- 数据存储层(Data Storage Layer)
目的:存储系统的所有数据,包括用户信息、住宿评价、预定记录等。
技术:根据数据存储需求,选择关系数据库管理系统MySQL,MySQL具备了强大的数据处理能力,为信息的储存提供了可信赖的保障。
该系统的整体架构能为管理员或用户的身份进行浏览网站,可以看到不同的城市的旅游住宿数量及评价信息,可以查询住宿评价的详情信息做为参考;在本系统中用户也可以进行酒店预定和比较。
图3 系统功能架构图
3.4 数据采集与存储
本文采用网络爬虫技术采集猫途鹰网站数据,爬虫过程分为三个步骤:爬取数据、解析数据和存储数据。首先构建了一个HTTP请求,向指定的URL发送请求,传递了一些参数,如locationId和page,以获取评论数据。HTTP请求中还包括了请求头,以模拟浏览器行为。获取的数据被解析为JSON格式,并从中提取了关键信息,如评论内容、时间戳、标题等。然后,将这些信息存储到pandas的DataFrame中,以便后续处理。最后,数据保存到MySQL数据库中。一旦评论数据被获取并存储到MySQL数据库中,可以轻松地进行各种数据处理和分析操作。数据库表名为lvyou,其中包含了用户评价的关键信息,如评论内容、时间、位置等。这些数据可以用于生成报告、可视化、情感分析、用户行为建模等用途,以帮助旅游和酒店业做出更明智的决策。
本系统的主要数据为旅游数据信息、分析数据信息以及用户信息。ER关系图、数据库表如下所示:
图4 整体E-R图
表1 旅游住宿评价表
字段名
| 数据类型
| 描述
| |
userReviewId
| INT
| 主键,唯一标识每条评论的ID
| |
content
| TEXT
| 评论内容
| |
submitTime
| DATETIME
| 用户提交评论的时间
| |
publishDate
| DATE
| 评论发布的日期
| |
title
| VARCHAR(255)
| 评论标题
| |
tripTypeString
| VARCHAR(50)
| 旅行类型字符串,例如:商务旅行、休闲旅行等
| |
Name
| VARCHAR(100)
| 用户姓名或用户名
| |
cityName
| VARCHAR(100)
| 评论所涉及的城市名称
| |
rating
| FLOAT
| 用户对住宿的评分,通常在1到5之间。
| |
Lang
| VARCHAR(10)
| 评论的语言,例如:英语、中文等。
|
表2 情感分析表
字段名
| 数据类型
| 描述
| |
userReviewId
| INT
| 主键,唯一标识每条评论的ID。
| |
content
| TEXT
| 评论内容
| |
name
| VARCHAR(100)
| 用户姓名或用户名
| |
sent
| BOOLEAN
| 表示评论情感正负面
|
表3 用户数据表
字段名
| 数据类型
| 描述
| |
username
| VARCHAR(50)
| 用户名,唯一标识用户的登录账号
| |
password
| VARCHAR(64)
| 用户密码的哈希值
| |
3.5 数据处理
为了保证评论文本的完整性和一致性,我们运用pandas库对爬取的数据进行系统的清洗与预处理,包括日期格式化、去重等关键步骤。此外,利用Python的jieba库对中文文本进行精确分词,并将数据转换为字典形式,以减少在文本向量化过程中可能出现的噪音和冗余信息。这一系列严格的数据质量控制措施,旨在确保为用户提供更加精准、有价值的信息。
图5 数据处理流程图
3.6 情感分析设计
数据分析是系统的核心功能之一,负责对评论数据进行情感分析,以提供有价值的分析结果。本文实现了从数据库读取文本数据,对其进行预处理、分词、去除停用词,然后使用TF-IDF方法进行向量化,最后利用支持向量机(SVM)模型进行文本情感分类。具体步骤如下:
- 数据库连接和数据提取:使用sqlalchemy连接到MySQL数据库,并从数据库中读取文本内容及其情感标签(正面或负面)。
- 文本清洗:定义一个clean_text函数,用于移除文本中的HTML标签和特殊字符,仅保留字母、数字、基本标点和空格。
- 停用词加载和文本分词:加载一个停用词列表,然后定义一个tokenize_and_remove_stopwords函数,使用jieba分词,并去除停用词。
- TF-IDF向量化:使用TfidfVectorizer对分词后的文本进行向量化,转换为适合机器学习模型处理的格式。
- 模型训练和评估:将数据分为训练集和测试集,使用SVM进行训练,并对模型的性能进行评估,包括准确率和其他分类指标。
- 交叉验证:使用5折交叉验证评估SVM模型的稳定性和准确率。
- 模型和向量化器的保存与加载:保存训练好的SVM模型和TF-IDF向量化器到文件,以便未来重新加载和使用。
- 情感预测:定义一个predict_sentiment函数,用于预测给定文本的情感标签。这个函数加载保存的模型和向量化器,对新文本进行分词、向量化,然后使用模型进行情感预测。
- 示例预测:提供了一个示例文本,并使用predict_sentiment函数预测其情感标签。最终的模型评估,经过交叉验证后,结果为准确率98%。说明该模型表现优秀。
图5 模型
图6 测试结果
系统功能实现
4.1 注册登录功能
4.1.1 注册功能
用户注册功能是系统的关键功能之一,允许用户创建帐户以访问系统。当用户访问注册页面时,系统将显示一个表单,用户需要填写以下信息:用户名、密码和角色。用户填写完所需信息后,点击“注册”按钮。
后端路由 /register 处理用户提交的注册请求,以下是主要步骤:
- 获取用户提交的用户名和密码。
检查是否成功获取了用户名和密码。如果未获取到任何一个,系统将保持在注册页面。
- 创建一个包含用户名和密码的数据框 (DataFrame)。
- 尝试将数据框的内容插入到数据库表 user 中。
- 如果插入成功,系统将显示成功的消息,提示用户注册成功,并重定向到登录页面。如果插入失败,系统将显示错误消息。
图7 注册关键代码
4.1.2 用户登录功能
用户登录功能允许已注册的用户通过提供正确的用户名和密码来访问系统。当用户访问登录页面时,系统将显示一个表单,用户需要填写以下信息:用户名、密码和角色。用户填写完所需信息后,点击“登录”按钮。
后端路由 /login 处理用户提交的登录请求,以下是主要步骤:
- 首先获取用户提交的用户名和密码。然后验证用户提交的表单数据。如果数据验证通过,系统将
查询数据库表 user,根据用户名和密码查找匹配的用户记录。如果找到匹配的用户记录,系统将生成用户会话 (session),将用户ID存储在会话中,以标识已登录的用户。
- 显示成功的消息,提示用户登录成功,并重定向到仪表板页面 (dashboard)。
- 如果数据验证失败,系统将显示错误消息,提示用户登录失败,需要检查用户名和密码。
图8 登录关键代码
图9 注册登录表单
4.2 首页
地图可视化功能旨在展示各个省份的住宿评论数据分布,以提供用户直观的数据分析结果。以下是该功能的实现描述:
- 当用户成功登录并访问仪表板页面 (/dashboard) 时,系统将首先检查用户是否已登录。如果用户未登录,系统将显示警告消息并重定向到登录页面。
- 如果用户已登录,将从数据库中获取住宿评论数据,具体来自表 lvyou,并按城市 (cityName) 进行分组统计,获取各个城市的评论数量。对城市名进行数据处理,如去除末尾的 "市" 字样,以适应 ECharts 地图组件的要求。将城市名和评论数量数据转换为适用于 ECharts 地图组件的数据格式,通常是一个包含 name 和 value 的字典列表。
- 将准备好的地图数据 (map_data) 传递到前端模板 (dashboard.html),以便在页面中使用 ECharts 进行可视化呈现。
- 在前端模板中,通过 ECharts 库创建地图图表,并使用传递的地图数据进行渲染。地图图表将展示各个省份的评论数量分布。
图10 各城市评价数量分布图
通过热力图显示不同年份的各个酒店评价数量的变化。x轴为时间、y轴为酒店名称、热力图颜色越深,代表酒店的评价数量越多。可以看到,大部分酒店集中在近五年。
图11 不同年份的酒店评价数量变化热力图
从月份来看,酒店的整体高峰期在1-2月,主要集中在过年旅游周期。从时间序列上分析,x轴为评价日期的月份,y轴酒店评价数量。
图12 时间序列分析图
通过对比不同用户评价等级的评分,可以看到大部分用户评分集中在5.0分,对酒店满意度还是较高的。从用户评价文本中自动抽取出一些用户负面评价信息,主要包括地理位置偏远、价格较高、服务态度较差、房间设备等老旧问题。
![]() |
图13 星级评分分布图
图14 常见问题自动识别
4.3 用户管理功能
用户管理功能允许管理员执行以下操作:添加用户、删除用户,并显示用户列表。以下是该功能的实现描述:
(1)用户列表获取:管理员可以通过访问 API 端点 /api/users 来获取用户列表。该端点将执行 SQL 查询,从数据库中检索所有用户的用户名和密码,并将结果转换为 JSON 格式,以便在前端显示用户列表。
(2)删除用户:管理员可以通过访问 API 端点 /api/users/<username> 来删除特定用户名的用户。该端点将执行 SQL 删除查询,删除指定用户名的用户记录。
(3)添加用户:管理员可以通过访问 API 端点 /api/users(使用 POST 请求)来添加新用户。管理员需要提供新用户的用户名和密码作为 JSON 数据。后端将执行 SQL 插入查询,将新用户的信息添加到数据库中。
图15 用户管理关键代码
图16 用户管理
4.4 评论搜索功能
通过使用SQLAlchemy的like方法进行模糊匹配,用户可以方便地对评论进行关键词搜索,或者直接针对特定的酒店名称、城市或类型进行搜索以查看相关评论。这一功能显著提高了用户查找旅游住宿相关信息的效率和便利性。
图17 评论搜索关键代码
| ![]() |
图18 评论搜索界面图
4.5 住宿排行榜
既显示了热门酒店排行榜、又有负面口碑排行榜。以下是该功能的实现描述:
- 从数据库中获取评价人数最多的热门酒店数据,具体来自表 lvyou。系统将执行 SQL 查询,按照酒店名 (name) 进行分组统计,获取每个酒店的评论数量,并按评论数量降序排序。
- 同样,从数据库中获取负面评价人数最多的酒店数据,具体来自表 sent。系统将执行 SQL 查询,筛选出情感分析结果为负向 (sent='负向') 的评论,按照酒店名 (name) 进行分组统计,获取每个酒店的负面评论数量,并按数量降序排序。
- 将两个查询结果转换为适用于柱状图的数据格式,通常是包含酒店名 (name) 和评论数量 (rank) 的字典列表。
- 将准备好的数据传递到前端模板 (hot_recommendation.html),以便在页面中使用图表库(如ECharts)进行柱状图的渲染。
- 在前端模板中,使用图表库创建两个柱状图,分别显示评价人数最多的热门酒店和负面评价人数最多的酒店。
图19 关键代码
图20 热门排行榜
图21 负面口碑排行榜
4.6 口碑分析功能
4.6.1 口碑评价走势图
从图16中,我们可以清晰地看到2019年住宿口碑评价数量达到了峰值,而到了2020年则出现了急剧的下滑。这一现象强烈暗示了那一年发生的疫情事件对旅游行业产生了显著的冲击。显然,由于疫情的影响,人们减少了出行和住宿的需求,导致酒店业遭受了不小的打击。从评价数量的变化中,我们可以直观地感受到疫情对旅游业的负面影响以及酒店业市场的低迷状况。
图22 关键代码
图23 口碑走势图
4.6.2 口碑评价词云图
从图18中,可以筛选不同酒店名称并展示其口碑评价情况。当选择“上海佘山世茂洲际酒店”时,可以发现“服务”在其口碑评价中占据了显著的位置,成为占比最大的一个方面。这一发现明确地表现了用户在选择酒店时对于服务态度的重视。每个人都期望在入住过程中享受到周到、贴心的服务,以获得一个愉快和满意的住宿体验。这也进一步凸显了酒店业在服务方面的竞争力和挑战,以及不断提升服务质量的必要性。
图24 关键代码
图25 口碑评价词云图
4.6.3 口碑情感分布
基于情感分析算法,对来自猫途鹰的大规模数据集进行了深入分析。数据集来源于上万条用户的在线评价,经过严格的筛选和清洗,确保数据的质量。
- 数据预处理阶段包括文本清洗(如去除无关字符和URL)、文本标准化(如统一词形和缩写词)以及数据分类,即将评论标注为正面、负面或中性情感。
- 训练集和测试集的构建:为了训练和评估模型,将整理后的数据集分为训练集和测试集,比例为8:2。训练集用于模型的学习和参数调整,而测试集则用于最终的性能评估,以确保模型在未知数据上的泛化能力。
- 模型架构和算法选择:本模型采用了深度学习框架,具体为多层神经网络结构,包括卷积神经网络(CNN)和循环神经网络(RNN)的结合,旨在捕捉文本数据中的局部特征和长期依赖关系。此外,还集成了注意力机制,以提高模型对关键情感词汇的敏感度。
- 模型训练和参数优化:在模型训练过程中,我们采用了交叉验证方法来优化模型参数,确保了模型的稳定性和准确性。通过在不同的训练集和验证集上重复训练和评估,我们能够细致调整模型参数,从而达到最佳的学习效果。
- 评估及应用:模型的准确率通过在独立的测试集上进行评估,最终准确率超过了90%。这一结果证明了模型在情感分析任务上的高效性和准确性。通过深入分析交叉验证的结果,进一步验证了模型的泛化能力和稳定性。最终在后端使用Joblib的load()方法加载svm_classifier.joblib和tfidf_vectorizer.joblib模型,将其应用到系统中,将结果反馈给用户。
- 评估结果显示,绝大多数用户评价为正面,这反映出旅游住宿条件的普遍改善。这一积极趋势不仅表明旅游业的持续发展,也显示出商家对服务质量的不断追求。特别是,在通过算法分析后,我们发现商家们越来越重视提供优质的住宿体验,从而赢得了用户的广泛认可和好评。这一正面的评价进一步促进了旅游住宿行业的健康发展,也为游客带来了更加舒适和满意的旅行体验。
![]() |
图26 情感分布图
4.6.4 住宿的优缺点
通过观察图21和图22,我们可以明显看出旅游住宿领域存在的几个关键不足:隔音效果不佳、网络速度慢以及房间质量差等问题。用户可以通过点击这些评价标签,如“房间差”,来查看具体的评论详情。例如,他们可能会发现装修过于陈旧,空调效果不佳等细节问题。基于这些详细的反馈,商家可以精确地定位并改善这些不足之处。他们可以根据用户的具体需求和痛点,制定相应的改进措施,如提升隔音效果、优化网络速度或升级房间设施,从而提升用户的整体住宿体验。
图27 酒店不足分布图
图28 评论详情
从图23和图24中,我们可以清晰地洞察到用户在选择旅游住宿时最为看重的服务态度因素,其中占比最高的是老板的热情接待和住宿优先的承诺。而对于住宿的便利性,用户则更偏好于交通便利的地点,因为这样他们能够更轻松地前往各个旅游景点,享受出行的便捷和高效。这样的偏好反映了用户在旅行过程中对于时间和精力的珍视,以及对于旅行体验的期望。因此,旅游住宿商家在提供服务时,应当着重关注并提升老板的服务态度,确保为客人提供热情周到的接待;同时,选择交通便利的地理位置,以满足用户对于出行便利性的需求,从而为他们创造更加愉快和顺畅的旅行体验。
图29 酒店的服务
图30 酒店的便捷性
4.7 酒店预定及对比
4.7.1 酒店的对比分析
从图32和图33中,用户可以选择自己感兴趣的酒店,进行对比分析。例如通过对比“厦门海景洲际酒店”与“厦门香格里拉”在服务态度、交通便利、周边环境和隔音效果四个方面的数据,可以清晰地看到厦门香格里拉在这些方面总体上较洲际酒店具有明显优势。尽管在周边环境的好评率上略逊一筹,但总体而言,厦门香格里拉仍为旅客提供了更出色的住宿体验。这样的对比分析不仅为用户提供了直观的数据支持,还有助于他们作出更明智的住宿选择,从而享受更优质的旅行体验。
图31 关键代码
图32 预定列表
图33 不同酒店评价对比图
4.7.2 酒店预定
用户可依据各住宿的详细信息以及提供的酒店对比分析来做出预订决策。该预定通过跳转到第三方平台进行预定,由于无法对接第三方平台的内部系统,这里仅仅展示预定成功的效果。这种基于用户预订数据的管理方式,能够帮助酒店根据实际业务需求合理调配人力和物力资源,有效避免资源浪费,从而为酒店节省成本,实现利润增长。
图34 关键代码
图35 酒店预定、收藏及点赞
第5章 系统测试
5.1 系统测试的目的
PyCharm软件能够自动提示并修改一些明显的错误,如编码时的语法和公式错误,从而极大地提高了编程效率。然而,还存在一些较为隐蔽的错误,这些错误通常需要通过实际测试才能被发现和修正。这类错误往往源于错误的操作或输入不合规的数据,并且具有间歇性的特点,有时出现,有时又消失无踪,使得它们的识别变得异常困难。为了有效应对这类挑战,我们需要不断地进行测试和验证,以确保软件的稳定性和可靠性。
系统测试是所有程序员都会面临的问题,是必不可少的步骤。一般对于系统的测试开始于系统设计完成后,这种测试可以针对简单的系统。但对于一些复杂项目的系统在编写中就要开始测试,每到一个阶段就开始测试,用这种方法来保证下一个阶段编写的正确性。这种测试可以保证每个部分都是正确的,方便在以后的测试中减少工作量。对于系统在编码过程中,不管采用什么方法和步骤进行编写设计都会不可避免的产生错误,即使采用最先进的技术和语言、环境来进行设计,也只能进行简单错误的提醒。这时候就需要进行系统测试才可以把所有的错误找出来。
5.2 系统测试的方法
对于系统的测试一般采用黑盒测试和白盒测试,两种测试方法都是把系统看成一个盒子,不考虑外在因素而进行的测试。白盒测试一般用于大型的项目,在时间和人力要求上比较高,主要针对系统的外部接口、操作逻辑等问题进行的测试;黑盒测试主要是模仿用户操作,进行数据反应的测试,这类测试对人力和时间要求不高,非常适合毕业设计项目的测试工作。
5.3 具体测试
5.3.1 测试步骤
本系统在测试时采用以下步骤进行测试:
- 首先检测系统的代码,对于不同语法和代码的编写进行复查,确定代码无误;
- 根据单元测试、集成测试、系统测试、确认测试的步骤进行系统功能性的测试;
- 对系统的界面、控件等进行测试;
- 对系统的性能,同时能访问的人数,系统的稳定性、安全性进行测试。
5.3.2 测试用例
在本论文里简单阐述几个功能的测试用例。
表4 用户登录测试过程表
表5 排行榜功能的测试过程表
表6 评论搜索功能的测试过程表
表7 口碑分析功能的测试过程表
5.4 测试总结
根据测试发现本系统的优点表现在:
- 本系统的设计独具特色,专门针对旅游住宿行业,可以为旅游行业带来前景;
- 本系统具备卓越的兼容性,能在多种环境下稳定运行,仅需配备服务器和浏览器即可轻松运行。同时选用MySQL作为数据库,其简洁高效的设计使得数据响应迅速,为用户带来流畅的使用体验。所有的数据在设置时采用了格式,对于特定的数据采用了选择框进行自动填写,减少了出错率,提高了文字输入的速度;
- 界面站在用户的角度设计,所以非常的操作方便,对于不懂编程的人员来说也非常的好学。
当然本系统也还存在很多的问题,需要进行不断的改善。本系统的不足主要表现在:
- 用户界面和首页界面都不够美观,因为素材和技术水平的有限使界面设计并不是太满意。所有的界面只是采用了简单的表格、文字及可视化图片来进行美化,颜色也没有协调到最好,所以界面给人的感觉太过于简单;
- 系统中还有很多的废弃代码,数据字段也没有做到简洁,导致系统的反应速度慢。
第6章 总结
随着互联网的发展,线上消费和评论会产生大量有价值的信息。对这些数据进行可视化分析不仅可以帮助商家提高自身的市场竞争力,还可以帮助住客分析选择一个满意的旅游住宿。现有的对酒店数据可视化一般都是站在商家角度,很少有可视化工具以用户需求为出发点进行设计并实现。 本文采用可视化分析技术对采集的住宿评价数据进行可视分析展示。首先分析目标网站的网页结构和数据特点,利用爬虫技术对数据进行有效地抓取;然后通过pandas库对数据进行清洗和预处理,将数据转换成可展示的数据格式;最后根据数据的特点设计了不同的可视化方法进行展示,同时实现各模块间的交互。本文的主要工作如下:
- 为了提升数据分析的精确性并确保其更具代表性,首先爬取了猫途鹰网站上的数万条旅游住宿评论。随后,利用pandas库进行了数据清洗与预处理,并实施了中文分词等处理技术。这一系列操作旨在以用户友好的方式呈现这些评价,从而便于潜在住客轻松访问和浏览。
- 对评价数据进行了深入的分析,利用svm训练模型进行情感分类,能够区分正面和负面评价,帮助用户快速了解住宿的整体口碑。最后根据可视化设计原则对分析的结果进行设计,选择合适的图表类型,向用户直观形象地展示旅游住宿评价的归纳性信息。
- 搭建了旅游住宿评价分析与可视化系统,系统具有用户登录注册、评论搜索、酒店预定、分析结果与可视化展示等模块,对系统各个功能进行测试,结果表明本系统实现了设计要求,并且具有稳定性。
总而言之,web式应用系统的实现不仅为住客提供了信息支持和良好的住宿选择体验,有利于提高住客的酒店预定的效率,还为商家发现自身的优劣势,从而进行改善,具有较高的实用价值。
致谢
转眼间,我的大学生活即将画上句号。回顾这四年,我收获满满。不仅学到了丰富的知识,更在人生的道路上成长了许多。感谢每一位老师和同学的陪伴与支持,你们的帮助和关爱成为我前进的动力。如今,即将各奔东西,心中的不舍如潮水般涌动。在此,我想向所有帮助过我的人表达最真挚的感谢。
首先,我要特别感谢我的指导老师。从确定选题到设计直至完成的全过程中,为我提供帮助,不断完善我的毕设和论文。您严谨的教学态度、对待学生的耐心及强烈的责任感让我受益终身。在此,我衷心感谢您对我的付出与关怀。其次,我要衷心感谢我的母校。是您为我们创造了一个优越的生活和学习环境,让我得以在其中不断充实自我,丰富内涵。愿母校的未来更加辉煌,成为更多人才的摇篮。最后,我要感谢我的家人。谢谢你们对我的养育之恩和无尽的包容。我会以更加勤奋的学习态度和积极的人生观念,回报你们的期望。
最后,感谢参与我论文评审和答辩的各位老师,对我的设计提出匹配和建议。我会再接再厉,完善自己,以梦为马,不负韶华!
参考文献
- 熊璐,蔡涛,何卫仙.基于在线评论的旅游消费者酒店偏好特征实证研究[J].产业与科技论坛. 2023,22(21).
- 易小群.面向智慧出行的酒店评论数据可视化技术研究与实现[D].西南交通大学,2019.
- 吴珊. 2016Esri开发竞赛大数据和物联网成热词[J]. 计算机与网络, 2016.
- Lee A. S. H., Chong K. L. D., Whai N. C. K. OpinionSeer: Text visualization on hotel customer reviews of services and physical environment[C]. Proceedings of International Conference on Information Science and Applications. Springer, Singapore, 2018: 337-349.
- Chen, S., Zhang, L., & Wang, J. (2020). Research on the Evaluation of Tourism Accommodation Industry Based on Big Data Technology. In International Conference on Industrial, Enterprise, and System Engineering (pp. 261-267). Springer, Singapore.
- Xu, W., Chen, Y., & Wang, Q. (2018). Personalized Recommendation for Hotel Booking Based on User Behavior Analysis. In International Conference on Web Information Systems Engineering (pp. 371-379). Springer, Cham.
- Wang, H., Zhang, Y., & Li, C. (2020). A Sentiment Analysis Method for Hotel Reviews Based on Convolutional Neural Network. In International Conference on Artificial Intelligence and Computer Engineering (pp. 497-504). Springer, Singapore.
- 王智博,陈丹红.大学生智能旅游推荐网开发研究[J].黑龙江科技信息,2017(02):191.
- 李艳杰.MySQL数据库下游标的设计与应用[J].黑龙江科学,2021,12(20):114-115.
- 朱爱辉,范晓萱.大连王家岛乡村旅游现状分析——基于旅游网站的统计分析[J].辽宁省交通高等专科学校学报,2021,23(05):30-34.
- 安沈昊,于荣欢.基于MySQL的天地一体化网络结构数据库构建[J].兵工自动化,2021,40(12):66-70.
- 徐连霞,傅伟.淮安旅游网站设计与实现[J].山西青年,2019(23):71.
- 熊培伶.旅游网站界面优化[J].通讯世界,2018(08):84-85.
- 余萍.旅游网站的实现[J].现代职业教育,2018(07):228-229.
- 冯晓兵,刘柏林,周雨晴.基于内容分析法的酒店服务质量在线评价研究[J].管理工程师. 2020,25(02).
- 刘文龙,吉蓉蓉.基于网络评论的乡村旅游住宿质量评价——结合AHP和BP神经网络的实证分析[J].江苏农业科学. 2019,47(21).
- 田书丽.互联网招聘数据分析与可视化系统设计与实现[D].西南大学,2022.
- 蔺秀媛.基于网购评论文本挖掘的国内实木床消费者满意度研究[D].南京林业大学,2023.
- 朱皓月.基于文本挖掘的商品评论情感分析——以手机评论为例[D].苏州大学,2023.

