1. 系统背景与意义

        在互联网时代,酒店在线预订平台积累了海量的用户评论。这些评论包含了用户对酒店服务、环境、设施等多方面的真实反馈。手动处理这些海量文本信息不仅耗时费力,而且难以全面挖掘其潜在价值。

        基于深度学习的酒店评论文本情感分析系统旨在利用现代自然语言处理(NLP)技术,自动识别评论的情感倾向(正向、中性、负向),帮助酒店管理者快速了解用户需求、改进服务质量,同时也为潜在顾客提供直观的参考。此外,系统结合了大数据处理框架(Hadoop)和机器学习预测模型,进一步提升了系统在数据处理和预测分析方面的能力。

系统演示视频及代码详情:https://www.bilibili.com/video/BV1hnvrBXELM/

配套论文

配套PPT


2. 技术架构

本系统采用前后端分离的架构设计,融合了大数据、深度学习和传统机器学习技术,具有良好的扩展性和实用性。

  • 后端框架:Python 3.7 + Django 2.0
  • 前端框架:Vue.js + Element UI (后台管理) + HTML/JS/CSS (前台展示)
  • 数据库:MySQL 5.7+ (业务存储) + Hadoop HDFS (大数据存储)
  • 情感分析:基于深度学习的百度AI (BCE) NLP 接口
  • 数据分析与预测:Scikit-learn (决策树分类器)、Matplotlib、Seaborn、Pandas、Numpy
  • 大数据处理:Hadoop MapReduce (分布式计算模拟)
  • 网络通信:Requests、Paramiko

3. 数据库设计

系统核心数据库包含用户信息、酒店数据、评论分析、预测模型等多个维度。以下是主要数据表的逻辑设计:

3.1 用户表 (yonghu)

用于存储系统注册用户的基本信息。

  • zhanghao: 账号 (唯一标识)
  • mima: 密码
  • xingming: 姓名
  • xingbie: 性别
  • youxiang: 邮箱
  • shoujihaoma: 手机号码

3.2 酒店信息表 (hotelinfo)

存储抓取或录入的酒店详细数据。

  • hotelname: 酒店名称
  • nowprice: 现价
  • score: 评分
  • cityname: 城市
  • address: 地址
  • commentnum: 点评数

3.3 情感分析表 (qingganfenxi)

存储针对评论文本进行情感分析的结果。

  • wenben: 原始文本
  • jieguo: 情感倾向结果 (正向/中性/负向)

3.4 酒店预测表 (hotelinfoforecast)

利用机器学习模型生成的预测数据。

  • hotelname: 酒店名称
  • nowprice: 预测价格
  • score: 预测评分
  • scoredesc: 预测评价描述

4. 系统实现核心逻辑

4.1 基于深度学习的情感分析

系统通过调用百度AI开放平台的 NLP 接口,利用其预训练的深度学习模型对文本进行情感倾向分类。相比于传统的词典方法,该方法在语义理解和长文本处理上更具优势。

# util/baidubce_api.py 核心代码
def sentiment_classify(self, text):
    token = self.get_alitoken()
    url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?access_token=' + token
    payload = json.dumps({"text": text})
    response = requests.request("POST", url, data=payload)
    json_res = json.loads(response.text)
    # 处理返回结果:0-负向,1-中性,2-正向
    # ...

4.2 基于 Scikit-learn 的酒店信息预测

系统集成了机器学习预测功能,使用 DecisionTreeClassifier(决策树分类器)根据酒店的特征(如名称、原价、现价等)来预测其评分等级。

# main/Hotelinfoforecast_v.py 核心逻辑
from sklearn.tree import DecisionTreeClassifier
import joblib

def to_forecast(data, req_dict):
    # 特征处理与编码
    # ...
    # 决策树模型训练
    estimator = DecisionTreeClassifier(criterion="entropy", max_depth=5)
    estimator.fit(x_train, y_train)
    # 保存模型
    joblib.dump(estimator, "hotelinfoforecast.pkl")
    # 进行预测
    y_predict = estimator.predict(future_df)
    return y_predict

4.3 Hadoop 大数据处理模块

为了模拟海量数据的分布式处理,系统引入了 Hadoop 模块。通过 MapReduce 框架对酒店数据进行统计分析(如按城市分组统计酒店数量)。

# main/hadoop_v.py 任务提交
def send_cmd():
    job_commands = [
        [f"{hadoop_path}/bin/hadoop.cmd", "jar", streaming_jar,
         "-mapper", "python group_mapper.py 7",  # 7代表列索引
         "-reducer", "python group_reducer.py cityname",
         "-input", "/input/hotelinfo.csv",
         "-output", "/output/hotelinfo/groupcityname"]
    ]
    # 使用多进程运行 Hadoop 任务

5. 系统功能展示

  1. 首页展示:展示酒店列表、公告信息,支持按热度或推荐排序。
  2. 情感分析工具:用户输入一段评论文本,系统实时返回情感评分及倾向结果。
  3. 酒店详情与评论:查看酒店详细参数,并在评论区发表意见,后台自动触发情感分析。
  4. 数据可视化后台:管理员可以查看酒店价格分布图、情感分析统计图、预测准确率图表等。
  5. 大数据任务调度:支持手动触发数据上传 HDFS 并启动 MapReduce 分析任务。

5.1系统前台功能实现

        本系统前台功能丰富,首页提供系统概览与核心功能导航;酒店信息模块支持通过名称、城市或地址查询酒店,用户可查看酒店详情、进行收藏或评论,系统基于深度学习分析情感倾向,为用户决策提供参考。公告信息模块展示最新动态与通知;留言反馈模块供用户提交意见与建议,增强互动性。系统首页页面如图5-1所示:

图5-1系统首页页面

        在酒店信息模块中,用户可以通过输入酒店名称、城市或地址进行精准查询。查询结果页面展示酒店列表,每项包含酒店名称、位置、评分和简要评价。用户可点击进入详情页,查看酒店设施、服务、价格及用户评论,并进行情感分析结果查看。用户还可对酒店进行收藏或发表评论,方便后续预订和分享体验。酒店信息页面如图5-2所示:

图5-2酒店信息页面

        个人中心包含个人资料管理、密码修改及我的收藏功能,方便用户个性化使用,提升用户体验。个人中心页面如图5-3所示:

图5-3个人中心页面

5.2管理员功能实现

        管理员主页面作为系统控制中心,提供全面的管理功能。页面通常详细列出所有管理模块,包括主页、用户、酒店信息、情感分析、酒店信息预测、留言反馈、系统管理、个人中心等,确保管理员能够高效地进行日常管理工作。整个页面布局清晰,功能模块化,便于管理员快速定位和操作。管理员主页界面如图5-4所示:

图5-4 管理员主页界面

        在系统后台的用户管理模块中,管理员可以通过点击“用户”选项进入管理界面。管理员能够通过输入用户账号或姓名进行精准查询,快速定位目标用户。系统支持添加新用户,完善用户信息列表;管理员可以删除不再需要的用户记录,保持用户数据的整洁性。对于每个用户,管理员还能够查看其详细信息,包括注册信息、操作记录等。管理员可以对用户信息进行修改,以确保数据的准确性和时效性,也可以删除用户详细信息,以符合数据管理规范和隐私要求。这些功能为管理员提供了全面的用户管理能力,确保系统的高效运行和用户数据的安全性。用户如图5-5所示:

图5-5 用户界面

        管理员点击“酒店信息”进入管理界面,可输入酒店名称、城市或地址进行查询,快速定位目标酒店。系统支持通过爬虫技术爬取新的酒店数据,并进行数据清洗以确保数据质量。管理员能够查看酒店详细信息,包括设施、服务、评论等,并可对酒店信息进行修改或删除操作。管理员还可以查看酒店评论的详细内容,进行情感分析结果的审核,确保评论信息的准确性和可靠性。这些功能为管理员提供了全面的酒店数据管理能力,保障系统数据的完整性和准确性。

        在基于深度学习的酒店评论文本情感分析研究中,数据爬取过程通过Scrapy框架实现,爬虫程序根据设定的规则访问目标酒店预订网站,提取酒店名称、地址、评论等信息并保存为结构化数据。数据清洗阶段,去除重复评论和无关符号,过滤掉无意义的短评和广告内容,对文本进行分词处理,确保数据质量,为后续情感分析模型训练提供干净、有效的数据。酒店信息如图5-6所示:

图5-6 酒店信息界面

        管理员点击“情感分析”模块后,进入情感分析管理界面。管理员可以输入特定文本(如酒店评论)进行情感倾向查询,系统会基于深度学习模型即时返回情感分析结果(正面、负面或中性)。管理员还可以添加新的文本样本及其情感标签,用于扩充训练数据集或测试模型性能。管理员能够查看情感分析的详细记录,包括文本内容、情感分类结果、分析时间等信息,并可对这些记录进行修改或删除操作,以确保情感分析数据的准确性和完整性。这些功能为管理员提供了全面的情感分析管理能力,有助于优化情感分析模型的性能和应用效果。情感分析如图5-7所示:

图5-7 情感分析界面

        管理员点击“酒店信息预测”模块后,进入酒店信息预测管理界面。管理员可以输入酒店名称进行查询,系统会根据历史数据和情感分析结果生成酒店的预测图表,展示酒店未来趋势(如评分、好评率等)。管理员还可以添加新的酒店数据用于预测,或删除不再需要的预测记录。对于每条预测信息,管理员能够查看详细内容,包括预测指标、数据来源等,并可对预测数据进行修改或重新预测,以确保预测信息的准确性和时效性。这些功能为管理员提供了全面的酒店信息预测管理能力,帮助酒店管理者提前布局,优化运营策略。

        在基于深度学习的酒店评论文本情感分析研究中,酒店信息预测采用决策树算法进行。收集酒店的历史评论数据和情感分析结果,将其作为特征输入。构建决策树模型,通过训练数据学习不同特征与酒店未来趋势(评分、好评率)之间的关系。输入待预测酒店的当前数据后,模型沿着决策树路径进行判断,输出预测结果,为酒店运营提供参考。酒店信息预测如图5-8所示:

图5-8 酒店信息预测界面

        管理员点击“留言反馈”模块后,进入留言管理界面。管理员可以通过输入用户名进行查询,快速定位特定用户的留言。系统会展示留言列表,包括留言内容、留言时间、用户信息等。管理员可以查看每条留言的详细内容,了解用户的意见和建议。对于用户的留言,管理员可以选择回复,直接在系统中撰写回复内容并发送给用户,实现与用户的互动。管理员还可以删除不再需要的留言记录,保持留言列表的整洁。这些功能为管理员提供了高效管理用户反馈的能力,有助于提升用户满意度和系统的互动性。留言反馈界面如图5-9所示:

图5-9 留言反馈界面

        该看板为系统管理员提供全面的可视化数据概览。通过酒店词云直观展示评论高频词汇,反映用户关注点;现价统计和原价统计呈现酒店价格动态变化。显示用户总数、酒店信息总数、酒店预测总数,帮助管理员掌握系统数据规模。评价统计、城市统计和点评统计则从不同维度分析用户行为和酒店分布,为决策提供数据支持,提升管理效率和精准度。看板界面如图5-10所示:

图5-10 看板界面


6. 总结与展望

6.1 项目总结

本项目完成了一个从数据采集、存储、分析到可视化的闭环系统。通过结合 Django 的稳健性、Vue 的交互性、深度学习 的准确性以及 Hadoop 的扩展性,充分展示了大数据时代下 Web 应用的开发模式。

6.2 展望

  • 模型优化:未来可以考虑在本地部署 BERT 或 RoBERTa 等 Transformer 模型,以减少对第三方 API 的依赖并提高分析精度。
  • 实时处理:引入 Flink 或 Spark Streaming,实现评论数据的实时流处理。
  • 推荐系统:结合协同过滤算法,为用户提供更精准的酒店个性化推荐。

 系统演示视频及代码详情:https://www.bilibili.com/video/BV1hnvrBXELM/

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐