news 2026/4/15 23:50:59

基于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/31 10:41:03

web3系统的分类

区块链 Web3 系统已经从单纯的加密货币实验进化为支撑数字经济的底层基础设施。按照功能定位、技术架构和应用场景,我们可以将其分为以下五大核心类别。 1. 基础设施类系统 这是整个 Web3 世界的“地基”,负责提供安全、去中心化的运行环境。 通用公链…

作者头像 李华
网站建设 2026/4/16 12:25:30

AIME25得分74.4意味着什么?与人类选手水平对照表

AIME25得分74.4意味着什么?与人类选手水平对照表 在AI模型参数规模不断突破百亿、千亿的今天,一个仅15亿参数的小模型却悄然登上了数学推理能力排行榜的前列——VibeThinker-1.5B-APP 在 AIME25 测试中取得了 74.4分 的成绩。这个数字看似平淡&#xff0…

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

掌握这7个Falco自定义告警规则,让你的容器安全领先一步

第一章:掌握Falco核心机制与告警原理Falco 是一个开源的云原生运行时安全工具,专注于检测异常行为和潜在威胁。其核心机制基于系统调用(syscalls)的实时捕获与规则匹配,通过内核模块或eBPF探针监听主机或容器的底层操作…

作者头像 李华
网站建设 2026/4/13 15:43:41

UltraISO镜像制作繁琐?让VibeThinker生成批处理脚本

UltraISO镜像制作繁琐?让VibeThinker生成批处理脚本 在企业IT运维、系统部署或软件分发的日常工作中,频繁地制作定制化ISO镜像几乎是绕不开的任务。无论是为不同分支机构打包带有本地化配置的操作系统恢复盘,还是在CI/CD流水线中自动生成带补…

作者头像 李华
网站建设 2026/4/15 14:30:51

基于springboot的学生社团评定系统设计与开发毕设源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并开发一套基于Spring Boot框架的学生社团评定系统。该系统的开发旨在实现以下研究目的: 首先,提高学生社团评定工作的效率…

作者头像 李华
网站建设 2026/4/11 6:28:06

Patreon赞助计划启动:支持后续更大规模版本研发

支持下一代开源推理引擎:从 VibeThinker-1.5B 看小模型的高能效未来 在大模型军备竞赛愈演愈烈的今天,动辄千亿参数、数百万美元训练成本的“巨无霸”模型固然引人注目,但真正决定AI技术能否落地千行百业的,往往是那些轻巧、高效…

作者头像 李华