news 2026/6/9 21:22:06

基于pytorch LSTM的对话情绪识别系统-毕业设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于pytorch LSTM的对话情绪识别系统-毕业设计

视频地址:

https://www.bilibili.com/video/BV1tcqTBxE13/

项目简介

本项目是一个基于长短期记忆网络(LSTM)的中文对话情绪识别Web应用系统。用户可以通过Web界面输入中文对话文本,系统能够自动识别并分类文本所表达的情绪类别,同时展示各情绪类别的概率分布。

项目采用前后端分离架构,后端基于Python Flask框架和PyTorch深度学习框架实现,前端使用Bootstrap框架构建响应式界面。模型使用LSTM网络对中文文本进行情感分析,能够识别平静、开心、伤心、生气、惊讶、厌恶、疑问、关心共八种情绪类别。

本项目是毕业设计作品,完整实现了从数据预处理、模型训练、Web开发到部署上线的全流程,具有较高的工程实践价值。

功能特性

核心功能

  1. 文本情感识别:用户输入中文文本,系统调用LSTM模型进行情感分析,返回预测的情绪类别和概率分布。

  2. 随机样本测试:系统内置数据集,支持随机抽取已标注的对话文本进行测试,方便评估模型效果。

  3. 概率可视化:以进度条形式直观展示各情绪类别的概率分布,帮助用户理解模型的判断依据。

  4. 真实标签对比:随机抽取样本时显示真实标签,便于用户对比预测结果与真实标签的差异。

界面特性

  1. 响应式设计:适配桌面端和移动端,在不同屏幕尺寸下都能正常显示和交互。

  2. 现代化UI:采用紫色渐变配色方案,界面简洁美观,操作直观便捷。

  3. 流畅交互:按钮悬浮动画、概率条动态效果,提升用户体验。

技术架构

后端技术

技术用途
Python 3.8+编程语言
Flask 3.1.0Web框架,提供RESTful API服务
PyTorch 2.9.0深度学习框架,实现LSTM模型
jieba 0.42.1中文分词工具
pandas 2.2.3数据处理与分析

前端技术

技术用途
HTML5页面结构
CSS3样式设计
JavaScript交互逻辑
Bootstrap 5.3.0响应式UI框架
Axios异步HTTP请求

模型架构

输入层 → 词嵌入层(32维) → LSTM层(64维) → Dropout(0.5) → 全连接层(8类) → Softmax
  • 词嵌入层:将词汇表中的词索引转换为32维稠密向量
  • LSTM层:单层LSTM,隐藏层维度64,捕捉序列的时序特征
  • Dropout层:概率0.5,防止过拟合
  • 全连接层:将64维隐藏状态映射到8个情感类别

目录结构

emotion_dialogue_classify/ ├── static/ # 静态资源目录 │ ├── css/ │ │ └── bootstrap.min.css # Bootstrap CSS(本地化) │ └── js/ │ └── axios.min.js # Axios库(本地化) ├── templates/ │ └── index.html # 前端页面模板 ├── app.py # Flask后端主程序 ├── model_state_dict.pth # 预训练模型参数 ├── vocabulary.pth # 词汇表文件 ├── train_model.ipynb # 模型训练代码(Jupyter Notebook) ├── Simplified_Chinese_Multi-Emotion_Dialogue_Dataset.csv # 训练数据集 ├── dataset_infos.json # 数据集元信息 ├── training_curve.png # 训练曲线图 ├── 数据集说明.md # 数据集详细说明 ├── 文档.md # 毕业设计完整文档 └── README.md # 项目说明文件

使用系统

  1. 打开浏览器访问 http://localhost:5000
  2. 在左侧文本框输入中文对话文本
  3. 点击"开始识别"按钮
  4. 右侧显示识别结果:预测情绪类别和概率分布

或者点击"随机抽取"按钮,系统从数据集中随机选择一条样本进行测试。

数据集说明

本系统使用简体中文多情感对话数据集,数据源自Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset,经过Qwen2.5-32B模型翻译为简体中文。

数据集统计

情绪类别样本数量占比
平静70517.0%
开心59214.2%
关心56013.5%
生气52712.7%
惊讶49912.0%
伤心48611.7%
厌恶4049.7%
疑问3869.3%
合计4159100%

数据格式

数据集为CSV格式,包含两列:

  • text:对话文本内容
  • label:情绪类别标签

示例数据

textlabel
今天天气真好,心情很愉快开心
这件事让我很生气生气
你没事吧?要不要紧?关心

模型性能

训练配置

参数数值
训练轮次60
批次大小64
学习率0.1
优化器SGD(动量0.9)
权重衰减2e-3
学习率调度每20轮衰减

性能指标

指标数值
训练集准确率96.67%
测试集准确率75.86%
最终训练损失0.12
最终测试损失0.78

训练曲线

训练过程中记录了每轮的准确率和损失变化,训练曲线保存为training_curve.png文件。从曲线可以看出:

  • 模型在约20轮后趋于收敛
  • 训练集和测试集性能差距表明存在一定过拟合
  • 学习率调度有效避免了训练后期的振荡

API接口

1. 主页

请求

GET /

响应:返回index.html页面

2. 情感识别

请求

POST /predict Content-Type: application/x-www-form-urlencoded text=今天天气真好

响应

{ "text": "今天天气真好", "result": [ {"emotion": "开心", "probability": 0.8532}, {"emotion": "平静", "probability": 0.0821}, {"emotion": "关心", "probability": 0.0315}, ... ], "top_emotion": "开心", "top_probability": 0.8532 }

3. 随机抽取

请求

GET /random

响应

{ "text": "你今天看起来心情不错啊", "true_label": "开心" }

项目亮点

  1. 完整的机器学习流程:涵盖数据预处理、模型训练、模型评估、Web部署全流程。

  2. 实用的中文NLP应用:针对中文文本特点,使用jieba分词处理中文语言。

  3. 现代化的Web界面:采用响应式设计,视觉效果现代美观。

  4. 本地化部署:所有静态资源本地化,不依赖外部CDN,可离线运行。

  5. 代码结构清晰:模块化设计,代码注释完善,易于维护和扩展。

截图

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

ModbusTCP协议解析:快速掌握寄存器读写方法

ModbusTCP协议实战解析:从寄存器读写到工业通信设计在工业自动化系统中,设备之间的数据交换是实现监控与控制的基石。随着以太网技术的普及,传统的串行通信协议逐步被基于网络的新架构取代——其中,ModbusTCP成为了连接PLC、传感器…

作者头像 李华
网站建设 2026/6/5 14:28:37

EASYAIOT:AI如何重塑物联网开发流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用EASYAIOT平台开发一个智能家居控制系统,要求:1. 支持多设备接入(灯光、温湿度传感器、摄像头);2. 实现基于用户习惯…

作者头像 李华
网站建设 2026/6/9 18:39:27

127.0.0.1实战:5个开发中必知的应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个实战演示项目,展示127.0.0.1的5个典型使用场景:1) 本地Web服务器测试;2) 数据库本地连接;3) API开发调试;4) 跨…

作者头像 李华
网站建设 2026/6/5 15:56:14

零基础入门:用CHATHUB创建你的第一个AI对话应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个极简的CHATHUB入门项目,适合完全没有编程经验的新手。要求:1) 通过3-5个简单步骤完成配置;2) 生成一个基础对话界面;3) 集成…

作者头像 李华
网站建设 2026/6/9 21:17:46

芦笋提词器帮你轻松记词,拍出专业口播视频

1. 智能跟读滚动,提词速度紧贴你的语速 芦笋提词器搭载了先进的语音识别技术,它会实时识别你说话的节奏,智能调整稿件滚动速度,做到“跟着你说”自然流畅。这样你就不必担心因提词滚动过快或过慢而出现忘词或语塞情况,…

作者头像 李华
网站建设 2026/6/9 19:42:53

用VSCode Cursor快速构建项目原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个工具,利用VSCode Cursor插件快速生成项目原型。工具应支持用户输入项目类型(如Web应用、移动应用、API服务等),自动生成相应…

作者头像 李华