# 基于朴素贝叶斯的垃圾信息识别小程序（社区交互版）

本项目实现了“发布-检测-拦截-申诉-人工复核-模型迭代”闭环，适配社区文本发布场景。

## 功能总览

### 用户端

- 用户注册、登录、个人信息维护
- 文本发布（公共 / 私有 / 用户私信）
- 实时识别反馈（发布成功或垃圾信息拦截警告）
- 个人发布历史记录查看
- 被拦截信息在线申诉
- 私信收件箱查看（仅展示已通过检测的私信）
- 批量文本检测

### 管理员端

- 用户信息编辑、删除、导入
- 拦截信息人工复核（确认垃圾 / 误判放行）
- 申诉处理（通过 / 驳回）
- 垃圾信息历史查看与风险词分析
- 检测阈值动态调节
- 训练样本编辑、导入、启停与模型重训

## 技术架构

- 前端：微信小程序原生框架（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`

上线前务必修改默认密码与密钥配置。
