English | 中文
基于 BERT 的中英文评论情感分析与内容过滤服务,支持识别恶意评论、建设性反馈与常规情感分类,并提供简洁的前端可视化界面。
功能概览
- 中英文评论情感分析,输出
toxic | negative | neutral | positive | constructive - 恶意评论检测:低情感分 + 关键词命中
- 建设性反馈识别:高情感分 + 关键词命中
- 单条与批量分析 API
- 前端支持筛选、统计与样本加载
技术栈
- 后端:FastAPI + Transformers + PyTorch
- 前端:Svelte 5 + Vite
- 模型:
nlptown/bert-base-multilingual-uncased-sentiment
快速开始
- 后端安装依赖(二选一)
- 使用
uv(推荐)uv sync
- 使用
pippip install -e .
- 使用
- 启动后端
首次运行会下载约 700MB 的 BERT 模型,请确保网络通畅。
uv run python main.py
- 启动前端
前端默认通过 Vite 代理访问
cd frontend pnpm install pnpm devhttp://localhost:8000/api。
API 说明
POST /api/analyze- 请求体:
{"text": "你的评论"} - 返回:
CommentResult
- 请求体:
POST /api/analyze/batch- 请求体:
{"comments": [{"text": "..."}, {"text": "..."}]} - 返回:
{"results": [CommentResult, ...]}
- 请求体:
GET /api/samples- 返回内置样本评论列表
GET /api/health- 返回服务状态与模型加载情况
CommentResult 结构
{
"text": "string",
"category": "toxic|negative|neutral|positive|constructive",
"confidence": 0.0,
"sentiment_score": 1,
"is_toxic": false,
"is_constructive": false
}训练与评估
- 训练
uv run python -m training.train --data data/train.json --epochs 5
- 评估
uv run python -m training.evaluate --model model_cache/finetuned --data data/test.json
- 数据格式(JSON)
[ { "text": "评论内容", "label": "toxic|negative|neutral|positive|constructive" } ]
测试
uv run pytest测试会触发模型下载与加载,请预留时间与网络带宽。
项目结构
app/:FastAPI 服务与分类逻辑training/:微调与评估脚本data/:样本数据frontend/:Svelte 前端