【Django系统】Python+Django携程酒店评论情感分析系统
Python + Django携程酒店评论情感分析系统
项目概述
这是一个基于 Django 框架开发的酒店评论情感分析系统。系统使用机器学习技术对酒店评论进行情感分析,帮助酒店管理者了解客户反馈,提升服务质量。
主要功能
- 评论数据导入:支持导入酒店评论数据集
- 情感分析:自动分析评论的情感倾向(正面/负面/中性)
- 方面情感分析:细分服务、环境、价格等维度
- 数据可视化:展示评论情感分布、趋势、词云等多种图表
- 评论管理:查看、搜索、筛选和删除评论
技术栈
- 后端框架:Django
- 数据处理:Pandas
- 机器学习:Scikit-learn
- 中文分词:jieba
- 数据可视化:ECharts(前端)、Matplotlib(后端词云)
- 数据库:SQLite(可切换为MySQL)
数据集
系统使用 ChnSentiCorp_htl_all.csv 作为训练数据,包含大量酒店评论数据。
算法实现说明
1. 数据预处理
- 使用 pandas 读取CSV数据,去除空值。
- 用 jieba 对评论文本进行中文分词,去除特殊字符。
- 通过 CountVectorizer 将文本转为特征向量。
2. 模型训练与持久化
- 采用朴素贝叶斯(MultinomialNB)进行情感分类。
- 训练后模型和向量器用 joblib 持久化保存到 model 目录,后续启动优先加载,无需重复训练。
3. 情感预测逻辑
- 输入评论后,先分词、向量化。
- 用模型输出正面/负面概率。
- 若正面概率>0.6,判为"正面";负面概率>0.6,判为"负面";否则为"中性"。
4. 方面情感分析
- 设定服务、环境、价格等关键词库,分词后判断评论是否包含相关词。
- 若命中关键词,则用模型判断该方面情感。
- 若未命中且整体情感明确,则方面情感跟随整体情感(兜底策略)。
- 关键词库支持自定义扩充。
5. 数据可视化
- 前端用 ECharts 实现情感分布饼图、时间趋势折线图、评论长度分布柱状图、词云图等。
- 词云高频词由后端分词统计,前端动态渲染。
- 支持按情感类型筛选分析。
安装与使用说明
- 安装依赖包:
pip install -r requirements.txt
- 运行数据库迁移:
python manage.py migrate
- 启动开发服务器:
python manage.py runserver
- 访问 http://localhost:8000 进入系统
系统截图
数据集:
项目截图:
代码截图:
代码获取
print("关注【布鲁的Python之旅】")
print("=======")