99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
# 基于朴素贝叶斯的垃圾信息识别小程序(社区交互版)
|
||
|
||
本项目实现了“发布-检测-拦截-申诉-人工复核-模型迭代”闭环,适配社区文本发布场景。
|
||
|
||
## 功能总览
|
||
|
||
### 用户端
|
||
|
||
- 用户注册、登录、个人信息维护
|
||
- 文本发布(公共 / 私有 / 用户私信)
|
||
- 实时识别反馈(发布成功或垃圾信息拦截警告)
|
||
- 个人发布历史记录查看
|
||
- 被拦截信息在线申诉
|
||
- 私信收件箱查看(仅展示已通过检测的私信)
|
||
- 批量文本检测
|
||
|
||
### 管理员端
|
||
|
||
- 用户信息编辑、删除、导入
|
||
- 拦截信息人工复核(确认垃圾 / 误判放行)
|
||
- 申诉处理(通过 / 驳回)
|
||
- 垃圾信息历史查看与风险词分析
|
||
- 检测阈值动态调节
|
||
- 训练样本编辑、导入、启停与模型重训
|
||
|
||
## 技术架构
|
||
|
||
- 前端:微信小程序原生框架(WXML/WXSS/JS)
|
||
- 后端:Flask + SQLAlchemy + JWT + RESTful API
|
||
- 模型:TF-IDF(字符 1-2gram)+ MultinomialNB(朴素贝叶斯)
|
||
- 数据库:MySQL
|
||
|
||
## 关键目录
|
||
|
||
```text
|
||
backend/
|
||
app/
|
||
ml/naive_bayes_classifier.py
|
||
routes/
|
||
auth_routes.py
|
||
user_routes.py
|
||
spam_routes.py
|
||
content_routes.py
|
||
admin_routes.py
|
||
models.py
|
||
seed/spam_samples_seed.json
|
||
init_db.py
|
||
train_model.py
|
||
run.py
|
||
|
||
miniprogram/
|
||
pages/
|
||
detect/ # 文本发布+实时识别反馈
|
||
history/ # 个人发布历史+申诉
|
||
inbox/ # 私信收件箱
|
||
admin-review/ # 复核+申诉处理+阈值调节
|
||
admin-dashboard/ # 运营看板
|
||
admin-users/
|
||
admin-samples/
|
||
```
|
||
|
||
## 启动步骤
|
||
|
||
```bash
|
||
cd backend
|
||
python -m venv .venv
|
||
.venv\Scripts\activate
|
||
pip install -r requirements.txt
|
||
python init_db.py
|
||
python run.py
|
||
```
|
||
|
||
后端地址:`http://127.0.0.1:5000/api`
|
||
|
||
小程序端:
|
||
|
||
1. 微信开发者工具导入项目根目录
|
||
2. 配置 `miniprogram/app.js` 的 `baseURL`
|
||
3. 真机调试改为局域网 IP
|
||
|
||
## 核心接口
|
||
|
||
- 用户:`/api/auth/*`、`/api/user/*`
|
||
- 发布:`POST /api/content/publish`
|
||
- 历史:`GET /api/content/posts/history`
|
||
- 私信收件箱:`GET /api/content/posts/inbox`
|
||
- 申诉:`POST /api/content/posts/<id>/appeal`
|
||
- 复核:`PUT /api/admin/intercepts/<id>/review`
|
||
- 申诉处理:`PUT /api/admin/appeals/<id>/process`
|
||
- 阈值调节:`GET/PUT /api/admin/detection/threshold`
|
||
- 训练:`POST /api/spam/train`
|
||
|
||
## 默认管理员
|
||
|
||
- 用户名:`admin`
|
||
- 密码:`Admin@123456`
|
||
|
||
上线前务必修改默认密码与密钥配置。
|