news 2026/3/7 15:20:08

基于pytorch RNN的买家商品评论情感分析系统-毕业设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于pytorch RNN的买家商品评论情感分析系统-毕业设计

演示视频​​​www.bilibili.com/video/BV1aziZBBENk/https://www.bilibili.com/video/BV1aziZBBENk/

项目简介

本项目是一个基于循环神经网络(RNN)的买家商品评论情感分析系统,旨在自动识别商品评论的情感倾向(正面/负面)。系统采用了PyTorch框架实现RNN模型,并结合Flask开发了一个直观的网页界面,方便用户进行情感分析操作。

功能特点

  1. 模型训练:使用SNOWNLP库中的sentiment数据集训练RNN模型
  2. 实时预测:支持输入评论进行实时情感分析
  3. 随机抽取:可从数据集中随机抽取评论进行分析
  4. 可视化展示:左侧显示情感概率和预测结果,包括:
    • 输入评论展示
    • 情感预测结果(正面/负面)
    • 情感概率分布(动态进度条)
  5. 训练可视化:生成训练损失和准确率曲线
  6. 模型评估:生成混淆矩阵和分类报告

技术栈

  • 后端:Python 3.8, PyTorch 2.0+, Flask
  • 前端:HTML, CSS, JavaScript
  • 工具库:jieba(中文分词), matplotlib, seaborn, scikit-learn

项目结构

buyer_sentiment_classify/ ├── app.py # Flask应用主程序 ├── generate_results_simple.py # 生成结果文件的简化脚本 ├── buyer_sentiment_classify.ipynb # 原始Jupyter Notebook ├── model_state_dict.pth # 训练好的模型权重 ├── vocabulary.pth # 词汇表 ├── pos.txt # 正面评论数据集 ├── neg.txt # 负面评论数据集 ├── stopwords.txt # 停用词表 ├── training_curves.png # 训练曲线 ├── requirements.txt # 依赖列表 └── templates/ └── index.html # 网页模板

数据集说明

本项目使用的数据集来自SNOWNLP库中的sentiment目录,包含:

  • pos.txt:正面评论数据,约10,000条
  • neg.txt:负面评论数据,约10,000条

数据格式:每行一条评论,已去除HTML标签和特殊字符

模型设计

RNN模型结构

SentimentClassifier( (emb): Embedding(vocab_size, 128) # 词嵌入层 (rnn): GRU(128, 256, num_layers=2, batch_first=True) # 2层GRU (fc): Linear(in_features=256, out_features=2, bias=True) # 全连接层 )

模型参数

  • 词嵌入维度:128
  • 隐藏层维度:256
  • 层数:2
  • 学习率:1e-2
  • 批量大小:256
  • 训练轮数:10
  • 优化器:Adam
  • 损失函数:CrossEntropyLoss

训练结果

训练曲线


模型性能

指标训练集测试集
准确率98.74%99.00%
损失0.04050.0400

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 启动Flask应用

python app.py

应用将在 http://127.0.0.1:5000 启动

3. 访问网页界面

打开浏览器访问 http://127.0.0.1:5000,即可使用情感分析功能:

  • 在右侧文本框输入评论,点击"分析情感"按钮
  • 或点击"随机抽取评论"按钮,系统将自动抽取并分析
  • 左侧将显示分析结果,包括输入评论、预测结果和情感概率

生成结果文件

生成训练曲线和混淆矩阵

python generate_results_simple.py

运行后将生成:

  • training_curves.png:训练和测试的损失和准确率曲线
  • confusion_matrix.png:混淆矩阵热力图
  • classification_report.txt:分类报告

核心代码说明

数据处理

# 数据集类定义 class SentenceDataset(Dataset): def __init__(self, pos_file='pos.txt', neg_file='neg.txt', vocab=None): # 加载数据、停用词,构建词汇表 # ... def __getitem__(self, idx): # 分词、过滤停用词、编码转换 # ...

模型定义

class SentimentClassifier(nn.Module): def __init__(self, vocab_size, embed_dim, hidden_dim, output_dim, n_layers=1): super().__init__() self.emb = nn.Embedding(vocab_size, embed_dim) self.rnn = nn.GRU(embed_dim, hidden_dim, num_layers=n_layers, batch_first=True) self.fc = nn.Linear(hidden_dim, output_dim) def forward(self, x, lengths): # 前向传播 # ...

预测函数

def predict_sentiment(sentence): # 分词、编码、模型预测、返回概率 # ...

网页界面说明

右侧输入区

  • 文本框:输入要分析的商品评论
  • 分析情感按钮:提交评论进行分析
  • 随机抽取评论按钮:从数据集中随机抽取一条评论

左侧结果区

  • 输入评论:显示当前分析的评论内容
  • 预测结果:显示情感倾向(正面/负面),不同颜色区分
  • 情感概率:显示正面和负面情感的概率,动态进度条展示

技术亮点

  1. 高效的RNN模型:采用2层GRU结构,在商品评论情感分析任务上表现优异
  2. 中文处理优化:结合jieba分词和停用词过滤,提高文本表示质量
  3. 用户友好界面:直观的网页设计,左侧结果展示,右侧操作区
  4. 实时响应:模型预测速度快,用户体验流畅
  5. 完整的评估体系:生成训练曲线、混淆矩阵和分类报告,便于模型分析

总结

本项目成功实现了基于RNN的买家商品评论情感分析系统,结合了深度学习和Web开发技术,提供了一个功能完整、易于使用的情感分析工具。系统不仅可以用于学术研究,也可以集成到电商平台中,帮助商家了解消费者反馈,改进产品和服务。

截图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/3 16:04:58

lsposed开发hook找不到类

app加壳找不到类时使用 package com.example.demoapp;import android.app.Application; import android.content.Context; import android.util.Log;import java.util.Arrays;import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XC_MethodH…

作者头像 李华
网站建设 2026/3/5 20:39:59

中文输入效果不佳?这是预期行为而非缺陷

中文输入效果不佳?这是预期行为而非缺陷 在当前 AI 模型“军备竞赛”愈演愈烈的背景下,动辄千亿参数、覆盖上百语言的大模型似乎成了行业标配。然而,一个反向趋势正在悄然浮现:用极小的模型,在特定任务上做到极致表现。…

作者头像 李华
网站建设 2026/2/27 22:40:40

参数仅1/400却反超DeepSeek?AIME评分细节深度解读

参数仅1/400却反超DeepSeek?AIME评分细节深度解读 在大模型动辄千亿参数、训练成本突破千万美元的今天,一个仅有15亿参数的小模型突然杀出重围——VibeThinker-1.5B-APP 不仅在数学推理与编程任务中表现惊人,甚至在多个权威基准上击败了参数…

作者头像 李华
网站建设 2026/3/4 23:16:11

基于Android平台的企业员工考勤签到系统设计与实现小程序

目录研究背景与意义系统设计目标技术实现方案创新点与优势应用价值项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作研究背景与意义 随着移动互联网技术的发展&#xff0c…

作者头像 李华
网站建设 2026/3/6 7:34:39

客服机器人对接:用另一个VibeThinker处理售前咨询

客服机器人对接:用另一个VibeThinker处理售前咨询 在今天的SaaS平台和科技产品公司里,一个常见的尴尬场景是:客户问“你们的模型在AIME上能拿多少分?”——结果客服机器人回答:“大概七八十分吧,具体要看数…

作者头像 李华