cd backend
pip install -r requirements.txt
python app.py✅ 后端运行在 http://localhost:8000
cd frontend
npm install
npm run dev✅ 前端运行在 http://localhost:5173
├── backend/
│ ├── app.py 主程序(直接运行)
│ ├── models.py 数据模型
│ ├── data_loader.py Excel 导入
│ ├── .env 配置文件
│ └── requirements.txt 依赖列表
├── frontend/
│ └── src/
│ ├── pages/ 页面(首页/分析/评论)
│ └── api/ API 调用
├── START_GUIDE.md 完整启动指南
└── README.md 本文件
| 页面 | 路由 | 功能 |
|---|---|---|
| 首页 | / |
📊 统计卡片、情感分布、平均分值 |
| 分析 | /analysis |
📈 分析报告、样本展示、趋势图 |
| 评论 | /comments |
💬 完整列表、筛选、删除 |
GET /api/stats → 统计数据
GET /api/comments → 评论列表
POST /api/comments → 添加评论
DEL /api/comments/{id} → 删除评论
完整文档: http://localhost:8000/docs
Excel 文件 (评论与情感.xlsx)
↓
[后端自动导入]
↓
SQLite 数据库
↓
FastAPI 接口
↓
Vue 3 前端展示
数据源路径 - 修改 backend/.env
DATA_FILE_PATH=C:\Users\asus\Desktop\评论与情感.xlsx- ✅ 自动导入 - 启动时自动加载 Excel 数据
- ✅ 实时统计 - 情感分布、正负中立比例
- ✅ 简洁 UI - 现代化设计,无第三方 UI 库依赖
- ✅ 快速 API - 6 个核心接口,满足基本需求
# 学习点
- FastAPI 快速构建 API
- SQLAlchemy ORM 数据库操作
- Vue 3 组合式 API
- Excel 数据导入处理
- 跨域 CORS 配置👉 完整启动指南 →
| 问题 | 答案 |
|---|---|
| 后端启动失败? | 检查 python --version (需 3.8+) |
| 数据未导入? | 检查 Excel 路径是否正确 |
| 前端显示错误? | 打开浏览器控制台 F12 查看错误 |
| npm 安装卡住? | 试试 npm install --legacy-peer-deps |
后端: FastAPI, SQLAlchemy, Pandas
前端: Vue 3, Vite, Axios
数据: SQLite, Excel
Made with ❤️ | 2025
项目名称:基于微博热点话题的情感分析系统 项目周期:2周 团队规模:6人,分为3个小组,每组2人
主要目标:
-
实时爬取功能:开发一个可以根据关键词/话题实时爬取微博评论的爬虫系统
- 技术选型:可使用 Selenium/Playwright(动态加载)或 API 接口,一般的request可能不行
- 需要处理反爬机制
-
历史数据采集:提前爬取5000条以上高质量评论数据(能爬下来的数据都爬取下来,不要过滤)
- 数据来源:选择2-3个热门话题
- 质量标准:过滤掉长度<10字的评论、重复评论、广告评论等
- 数据字段:评论内容、发布时间、点赞数、转发数、用户信息等(尽量全面)
-
数据标注:使用3个不同的大模型进行情感打分
- 标注标准:三分类(正面/中性/负面)或评分制
- Prompt设计:需统一prompt模板,确保标注一致性
- 并发实现:使用异步请求(asyncio/aiohttp)提高标注效率
- 标签融合策略:投票机制或平均分数,对于差异较大的删除或者人工检查
交付物:
- 爬虫代码(含注释和使用文档)
- 标注好的数据集(CSV/JSON格式,包含原始评论和3个模型的标签)
- 数据质量报告(数据分布、标注一致性统计)
主要目标:
-
Baseline模型:使用 BERT 中文情感分析模型(如 bert-base-chinese)
- 微调方式:在标注数据集上进行 fine-tuning(可选)
-
前沿模型调研:选择3-5个优化模型进行对比实验
- 候选模型建议:
- RoBERTa-Chinese
- ERNIE
- MacBERT
- Chinese-ELECTRA
- 轻量级模型:ALBERT、DistilBERT(考虑部署效率)
- 候选模型建议:
-
模型评估:
- 评估指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1-Score
- 混淆矩阵分析
- 选择综合性能最优的模型作为最终模型
交付物:
- 训练代码(支持多模型切换)
- 训练好的最优模型文件
- 模型对比实验报告(含性能对比表格、可视化图表)
- 模型推理接口(API形式,供前端调用)
主要目标:
-
技术栈选择:
- 前端:Vue 3 / React(建议使用 ECharts 进行可视化),或者不用框架也OK
- 后端:Flask / FastAPI(Python)或 Node.js
- 数据库:MySQL (存储爬取的数据和分析结果)
-
核心功能:
- 实时爬取模块:
- 用户输入关键词/话题链接
- 触发爬虫实时抓取并返回分析结果
- 情感分析可视化:
- 情感分布饼图/柱状图(正面、中性、负面占比)
- 时间序列情感走势图
- Top关键词情感雷达图
- 词云图:基于评论内容生成词云(使用 jieba 分词)
- 数据表格展示:可查看具体评论及其情感标签
- 实时爬取模块:
-
扩展功能(可选):
- 热词排行榜
- 用户情感画像分析
- 多话题对比分析
- 历史记录保存和查询
交付物:
- 前端代码 + 后端代码
- 系统部署文档
-
代码管理:
- 使用 GitHub进行版本控制(主要是开发的同学)
- 每个任务组创建独立分支,定期合并到主分支
-
接口约定:
- 数据组 → 模型组:统一数据格式(JSON/CSV schema)
- 模型组 → 平台组:定义 API 接口规范(输入输出格式、错误处理)
- 爬虫组 → 平台组:定义爬虫调用接口
-
并行开发:
- 数据组:第1周优先提供500-1000条样本数据供模型组测试
- 模型组:提前准备好 Mock API(返回随机结果)供前端调试
- 平台组:先用虚拟数据完成 UI 和交互,后期对接真实接口
- 爬虫实现较难的话尽早换平台,不要死磕
- 调用大模型的同学产生的费用可以尝试报销(但也没必要用太贵的模型)
- 爬虫的同学需要尽快完成
- 一定要保证代码的可读性和可复现性,方便回去调试