前言
随着电商网络经济的兴起,更多的人选择在线上预订酒店出行,电商旅游平台使得旅行者可以通过评论更加自由地选择价格和服务合意的酒店,同时也给人们提供了一条更加方便快捷反馈酒店服务的途径。例如,携程酒店评论之中包含了海量用户或积极或建议或消极的情感观点,酒店可以依据这些评论改善自身的服务,平台可以据此调整对不同评价酒店的资源倾斜,消费者可以就评论选择自己需要的酒店。因此,在如今大数据的背景之下,如何高效地利用这些评论数据就显得尤为重要,其中文本情感分析作为 NLP(Nature Language Processs,自然语言处理)的一个经典问题一直受到相关领域从业人员的广泛关注。现有的研究已经取得了一定的成果,但是鲜有文献对旅游平台酒店评论这一细分领域进行深入地研究,对文本特征很难做到准确提取,同时在一些算法上也有所欠缺。
本文基于Python技术,提出了利用朴素贝叶斯算法实现的评论情感分析系统。首先利用 Scrapy 爬虫框架获取数据集,然后使用 pandas 库和正则表达式等技术完成数据清洗; 对评论文本采用jieba分词后,使用多项式贝叶斯分类器,构造出一个基于朴素贝叶斯的情感分类模型。通过对模型进行训练,并使用携程网站采集的评论数据进行分类预测。实验结果表明,该模型具有良好的分类效果。
详细视频演示
文章底部名片,联系我看更详细的演示视频
一、项目介绍
在各种各样的分类器中,朴素贝叶斯法可算是解该研究领域的现状,选择自身科技工作任务所适宜的技术手段。
此外,通过对现有文献的调研成果进行分析,总结出将会是这一研究领域中较有前景的主题:
(1) 基于图神经网络的有约束布局。有约束布局一直是图布局中较为实用的研究方向,如出版物中常常需要应对翻页问题而对折纸的边界进行约束; 电路图等特定布局场景下需要使用正交布局; 用户需要对选中的一些区域进行锚定等等。有约束布局往往会有比自由布局有更大的计算量和更常见的使用场景,而这一部分的研究当前仍处于空白状态;
(2) 基于神经网络的动态图布局或流式图布局。动态图相比于静态图,除了图的总数量的增长以外,保持相邻时间片之间布局的心智地图的连贯性也是其研究要点,而流式图相比之下更需要能实时反馈图数据更新后的布局结果,这两种数据在科技工作中大量存在,而现有的工作均是服务于静态图的技术;
(3) 风格化的预训练模型。即使在传统布局中,用户往往需要通过对布局参数进行调整以得到自己想要的布局效果。现有的技术中虽然已经有了预训练方法的参与,但主要是针对数据的预训练,而如果能使用神经网络捕捉到布局所需要的特征本质,继而针对具体需要的布局风格进行调优,那么布局的灵活性将会有大大的提高。
使用python技术将酒店评论数据映射为词向量有效保存了句子中词与此之间的联系,较完整的保存了句子语义,由 于模型限制将输入传统机器学习模型的词向量求平均才可输入模型,这忽略了词序的问题,而Long Short Term Memory可以保留每个词的50维词向量作为输入,并且缓解了梯度消失的风险,可以学习到较长序列的信息。
对于酒店评论数据的情感分析模型对比研究发现可成功建立LSTM模型有效学习,进行预测酒店评论数据情感,并且模型 表现相对传统机器学习算法较为优秀,可以满足通过对影评文本进行情感分析预测用户情感的实际需求,可以给未 酒店用户以客观准确大众口碑,为酒店评论制作方提供最直观的用户反馈。为进一步提升模型性能,优化模型运行时 间,后续可以从拓展数据量,时间复杂度更优的简单分类模型,更复杂的词向量模型,增加算力等方面着手。
二、功能介绍
整体功能展示如图3-3所示。
图3-3 系统整体功能图
三、核心代码
部分代码:
from django.contrib import admin
from .models import *
from openpyxl import Workbook
from django.http import HttpResponse
admin.site.site_title = "酒店评论情感可视化系统"
admin.site.site_header = "酒店评论情感可视化系统"
class ExportExcelMixin(object):
def export_as_excel(self, request, queryset):
meta = self.model._meta
field_names = [field.name for field in meta.fields]
response = HttpResponse(content_type='application/msexcel')
response['Content-Disposition'] = f'attachment; filename={meta}.xlsx'
wb = Workbook()
ws = wb.active
ws.append(field_names)
for obj in queryset:
for field in field_names:
data = [f'{getattr(obj, field)}' for field in field_names]
row = ws.append(data)
wb.save(response)
return response
export_as_excel.short_description = '导出Excel'
@admin.register(Case_item)
class Case_item_Admin(admin.ModelAdmin, ExportExcelMixin):
list_display = ('shiqu',"title", "pingfen", "city", "fuli", "price")
actions = ['export_as_excel']
search_fields = ("title", )
list_filter = ['shiqu']
@admin.register(PingLun)
class PingLun_Admin(admin.ModelAdmin, ExportExcelMixin):
list_display = ("case_item_id", "text", "pingfen",'pred_sentiment','possibility')
actions = ['export_as_excel']
search_fields = ("text", )
@admin.register(Users)
class Users_Admin(admin.ModelAdmin, ExportExcelMixin):
list_display = ("username", "email", "set", "age","mob",)
actions = ['export_as_excel','ExcelImportForm']
search_fields = ("username",)
四、效果图
五、文章目录
目 录
第1章 引言 1
1.1 研究背景及意义 1
1.1.1 研究背景 1
1.1.2 研究意义 1
1.2国内外研究现状 2
1.3 论文组织架构 3
第2章 相关理论及技术介绍 4
2.1 网络爬虫 4
2.2.1 文本挖掘及预处理 4
2.3 酒店及服务质量相关概念 5
2.3.1高端酒店 5
2.3.2 服务质量 5
2.3.3 服务质量 5
2.4 朴素贝叶斯 6
第3章 携程酒店评论文本的特征工程 8
3.1 携程酒店评论数据的来源与预处理 8
3.2 携程酒店评论的特征集构建 10
第4章 系统整体结构设计 12
4.1 数据采集 12
4.2 数据采集 12
4.3 数据清洗 12
4.4 基于朴素贝叶斯的情感分析算法 12
4.4.1算法流程 12
4.4.2朴素贝叶斯 13
4.4.3朴素贝叶斯分类器 13
第5章 系统界面 14
5.1 登录面 14
5.2 注册界面 15
5.3 网站首页 15
5.4 组界面 16
5.5 用户表 16
5.7 酒店表 17
5.7 评论表界面 17
5.8 可视化界面 18
第6章 总结与展望 19
6.1 总结 19
6.2 展望 19
参考文献 20