本项目是一个基于微服务架构的中文多类别情感分析系统。系统能够对中文文本进行深度语义分析,并将其归类为 6 种情感(喜、怒、哀、惧、惊、中性)之一。 项目采用了前后端分离 + AI模型微服务的架构设计,不仅保证了高并发业务场景下的稳定性,还发挥了 Python 在深度学习领域的生态优势,实现了良好的系统解耦与可扩展性。
- Web交互层 :负责用户界面展示、交互逻辑以及数据可视化(词云、饼图、折线图)。
- 业务中枢层 :负责用户鉴权、RBAC权限管理、文件解析、异步任务调度、数据持久化。
- 模型推理层 :负责加载预训练语言模型(RoBERTa)及深度学习网络(BiLSTM/GRU/Attention),提供高性能的单条/批量文本预测接口。
| 模块 | 核心技术 | 说明 |
|---|---|---|
| 前端 (front) | Vue 3, Vite, TypeScript, Pinia, Vue Router | 现代化的前端框架体系 |
| 前端 UI/图表 | Element Plus, ECharts | 提供优雅的UI组件与数据可视化能力 |
| Java后端 (sa-sentiment02) | Java 17, Spring Boot 3.1.3, Spring WebFlux | 提供高性能的 RESTful API 及异步模型调用 (WebClient) |
| 后端安全/存储 | Spring Security, JWT, MyBatis-Plus, MySQL, Redis | 实现无状态的安全认证与可靠的数据持久化 |
| Python模型端 (model1) | Python 3.9+, FastAPI | 提供高性能、支持并发的模型微服务接口 |
| 深度学习框架 | PyTorch, Transformers (HuggingFace) | 核心 AI 基础设施 |
| 核心算法模型 | RoBERTa-wwm-ext, BiLSTM, GRU, Attention | 融合预训练模型与经典序列网络的情感分类算法 |
ChineseSentimentAnalysis/
├── front/ # 前端 Vue3 项目代码
│ ├── src/ # 前端源码 (components, views, api, stores)
│ ├── package.json # 前端依赖配置
│ └── vite.config.ts # Vite 打包配置
├── sa-sentiment02/ # Java Spring Boot 后端核心业务代码
│ ├── src/main/java/... # 后端源码 (controller, service, mapper, config)
│ ├── src/main/resources# 配置文件 (application.yml, SQL初始化脚本)
│ └── pom.xml # Maven 依赖配置
├── model1/ # Python FastAPI 模型微服务代码
│ ├── app/ # FastAPI 接口路由与服务层
│ ├── train/ # 模型训练脚本与预训练权重
│ ├── main.py # FastAPI 服务启动入口
│ └── requirements.txt # Python 依赖清单
- 多类别情感识别:超越传统的正/负面二分类,支持精细化的6分类情感分析。
- 微服务异步通信:Java 业务层通过 WebFlux 异步调用 FastAPI 模型接口,完美解决深度学习推理耗时导致的线程阻塞问题。
- 海量数据防 OOM 处理:针对用户上传的批量测试文件(Excel/TXT),采用流式读取与分批次(Batch)发送机制,确保系统内存安全。
- JWT+Redis 安全认证:双重校验机制,支持 JWT 主动失效与续期,保障接口调用安全。
- 数据可视化大屏:提供全方位的数据分析看板,包括情感占比饼图、时间序列趋势图、高频情感词云提取等。
确保您的开发环境已安装以下基础组件:
- Node.js (v18+) & npm/yarn/pnpm
- JDK 17 & Maven
- Python 3.9+
- MySQL 8.0+
- Redis 6.0+
- CUDA 11.x
- 在 MySQL 中创建数据库
sentiment_analysis(推荐 utf8mb4 编码)。 - 导入 SQL 脚本:执行
sa-sentiment02/src/main/resources/目录下的相关初始化 SQL 文件,生成用户表、任务表、结果表等。 - 确保 Redis 服务已在本地
localhost:6379启动。
- 进入
sa-sentiment02目录。 - 修改
application.yml中的 MySQL、Redis以及邮箱配置。 - 还要修改阿里云OSS 配置(阿里云oss配置于sa-sentiment02/src/main/java/com/wei/common/utils/AliOssUtil.java)。
- 执行 Maven 编译:
mvn clean install -DskipTests
- 运行
SystemApplication.java启动 Spring Boot 服务(默认端口8080)。
- 进入
model1目录。 - 创建并激活 Python 虚拟环境(推荐):
python -m venv venv source venv/Scripts/activate # Windows
- 安装依赖:
pip install -r requirements.txt
- 启动 FastAPI 服务:
注意:初次启动可能需要加载本地预训练模型权重。
python main.py # 或者使用 uvicorn: uvicorn main:app --reload --host 0.0.0.0 --port 8000
- 进入
front目录。 - 安装依赖:
npm install
- 启动开发服务器:
npm run dev
- 打开浏览器访问
http://localhost:5173即可体验完整系统。
本项目作为毕业设计/个人学习项目开源,未经允许请勿用于商业用途。