aigc-humanizer-zh
README.md
# AIGC Humanizer ZH
> 中文学术写作 AIGC 率降低工具。基于 16 种 AI 写作模式,不改动学术观点,只打破机器写作的模式规律。
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io/)
[](LICENSE)
[](pyproject.toml)
---
## 这是什么?
真实论文改写实验中,同一篇文章 AI 润色版的 AIGC 检测率超过 50%,经过系统性人工去味处理后降至 11%。差异不在于内容——观点没变、论证没变、数据没变——只在于 AI 写作有高度可预测的模式规律,而人类写作更随机、更情境化。
本项目把这种「去味」经验归纳为 **16 种 AI 写作模式**和 **7 项硬约束**,提供两种使用方式:
---
## 方式一:MCP Server(完整版)
适合已配置 DeepSeek TUI / Claude Desktop MCP 的用户,需要自动检测和高精度分析。
### 安装与启动
```bash
pip install -r requirements.txt # mcp + jieba
python server.py # stdio 传输,供 MCP 客户端调用
```
在 `~/.deepseek/config.toml` 中配置:
```toml
[mcp_servers.aigc-humanizer]
command = "python"
args = ["/path/to/aigc-humanizer-zh/server.py"]
```
### 10 个 MCP 工具
工具覆盖「保护公式 → 扫描痕迹 → 逐段决策 → 执行改写 → 验证质量 → 还原公式」的完整链路:
| 工具 | 做什么 | 输出什么 |
|---|---|---|
| `mask_latex` | 把 LaTeX 公式替换为占位符,防止润色时被篡改 | `masked_text`, `count`, `warnings` |
| `evaluate_ttr` | jieba 分词计算词汇丰富度 + 扫描违禁词 | `passed`, `ttr_score`, `banned_words_found` |
| `analyze_ai_risk` | L1+L2 融合扫描(L1 正则 + L2 统计) | `overall_risk`, `layers`, `statistics`, `hard_violations` |
| `analyze_statistics` | L2 统计层独立评估:burstiness / TTR / 词汇集中度 | `burstiness`, `ttr`, `lexical_concentration`, `overall_risk_level` |
| `generate_rewrite_plan` | 按 SOP 6 步生成优先级排序的改写计划 | `rewrite_plan`(移位→砍尾→破对称→换词→去模糊→注视角) |
| `analyze_by_paragraph` | 逐段输出 AIGC 风险评分 (0-100) | `aigc_score`, `needs_rewrite`, 命中模式详情, `statistics` |
| `build_rewrite_prompt` | 为单段生成可直接喂给 LLM 的改写 prompt | 结构化 prompt(含原文、模式、文体约束) |
| `assess_quality` | 6 维度 60 分制质量评分 | `total_score`, `grade`, 各维度分 |
| `restore_latex` | 把占位符还原为原始 LaTeX 公式 | 还原后完整文本 |
### 典型工作流
```
mask_latex → analyze_by_paragraph → 用户逐段决策 →
├── 低风险段: 跳过
└── 高风险段: build_rewrite_prompt → LLM 改写 → 用户确认替换
→ assess_quality(≥54 优秀) → restore_latex → 完成
```
### 检测引擎特点
- **16 种模式**全部由正则引擎自动扫描,每种模式独立计分(`weight` + `score_cap` 上限),输出 `score_raw`(原始分)和 `score_capped`(封顶分),计分过程透明
- **7 项硬约束**由代码自动评估,命中即判定高风险
- **上下文感知过滤**:P8 模糊归因自动排除 `Boulianne(2015)研究表明`、`本研究表明` 等具体引用;P2/P7 段末套句只在段落末尾句生效
- **P6/P14 规则分离**:三元对称并列(`理论上/实践上/方法上`)和三步走结构(`从经济维度看/从社会维度看/从文化维度看`)不再重叠命中
- **红蓝军评测闭环**:70 条样例(62 合成 + 8 真实)的回归测试套件,`scripts/evaluate_red_blue.py` 输出 pattern/HC 级 F1、误报率及 L2 统计层 recall/FPR
---
## 两层 AIGC 判断架构(v0.4+)
| 层 | 能力 | 依赖 | 对新模型稳健度 |
|---|---|---|---|
| L1 正则层 | 16 模式 + 7 硬约束(表层套话) | 零依赖 | 低(新模型套话少时盲区大) |
| L2 统计层 | burstiness / TTR / 词汇集中度 / 个人视角 / 结构平行度 | jieba(已有) | 高(模型无关,对齐知网公开判据) |
> **设计决策**:曾尝试引入 L3 判别模型层(HuggingFace AI 文本分类器),但经多源测试集验证,开源中文 AI 检测模型召回率接近 0%(默认模型 `Hello-SimpleAI/chatgpt-detector-roberta-chinese` 对中文 AI 文本 AI 概率 <0.01),引入后反而稀释 L1+L2 灵敏度,故弃用。L1+L2 两层架构在对抗集达 96%、扩充集 100%、泛化集 100% 准确率。
### L1+L2 融合策略
- **L1 硬约束命中 → 一票否决,直接判高风险**
- 强人类信号(personal=high)+ 无强 AI 结构 → 低风险(覆盖 L2 判定)
- 否则按加权融合:`L2(0.7) + L1软分(0.3)`
- 融合分 ≥0.6 高风险 | ≥0.35 中风险 | <0.35 低风险
### 实测准确率(L1+L2,94 条多源样例)
| 测试集 | 样本数 | AI | 人类 | 准确率 | AI 召回率 | 人类准确率 |
|---|---|---|---|---|---|---|
| 对抗集 | 24 | 12 | 12 | 96% | 100% | 92% |
| 扩充集 | 40 | 20 | 20 | 100% | 100% | 100% |
| 泛化集 | 30 | 15 | 15 | 100% | 100% | 100% |
| 合计 | 94 | 47 | 47 | 99% | 100% | 98% |
> 对抗集唯一误判为 `human_editorial_formal`(正式社论,句长均匀触发 burstiness=high),属正式写作的固有特征,强行修复会导致 AI 漏检(过拟合风险)。
### 诚实声明
- **L2** 对齐知网公开判据方向(burstiness / 词汇多样性),是模型无关的统计特征,对新模型稳健,但**不保证与知网数值一致**。
- **知网结果以知网为准**,本项目结果仅供参考与改写辅助。
- 本项目检测能力**仅对中文文本有实际效果**。
### 运行测试
```bash
python -m pytest -q # 106 项单元测试
python scripts/evaluate_red_blue.py \
--fixtures tests/fixtures/red_blue/synthetic.jsonl \
--min-f1 0.70 --max-fpr 0.15 \
--stats-fixtures tests/fixtures/red_blue/realistic.jsonl # 红蓝评测 + L2 统计层
python scripts/eval_adversarial.py # 对抗集 24 条
python scripts/eval_expanded.py # 扩充集 40 条
python scripts/eval_generalization.py # 泛化集 30 条
```
---
## 方式二:Skill 文件
如果你不想安装 Python 依赖,或者只是临时处理一两篇论文,可以直接加载 Skill 文件让 agent 按规则执行。
### 两种 Skill
| 文件 | 定位 | 特点 |
|------|------|------|
| `SKILL.md` | **轻量版**(默认) | 16 种模式速查 + HC-1~HC-7 + 逐段改写流程,零依赖,加载即用 |
| `SKILL_full.md` | **完整版** | 16 种模式的详细散文说明(含「规律」小结和扩展示例)+ LaTeX 公式保护/还原 + TTR 词汇丰富度自检 + 结构化逐段输出模板 + 6 维度 60 分制质量评分 |
轻量版已作为默认 Skill 文件,直接加载即可。如需完整版能力:
### 加载
```
/skill https://raw.githubusercontent.com/shuohui-air-technology/aigc-humanizer-zh/main/SKILL.md
```
加载后 agent 即获得:逐段扫描 → 交互式改写 → 最终自检 的完整能力。
如需完整版(含 LaTeX 处理 + TTR + 结构化模板):
```
/skill https://raw.githubusercontent.com/shuohui-air-technology/aigc-humanizer-zh/main/SKILL_full.md
```
### 能做什么
- **识别全部 16 种 AI 写作模式** — 与 MCP Server 共享同一套模式编号和改写规则。其中 12 种通过阅读直接识别,4 种统计类模式(排比、三步走、破折号密度、加粗滥用)标注 ⚡ 需你自主判断
- **执行 7 项硬约束** — 改写后逐项核查,命中即修复
- **6 步 SOP 改写流程** — 移位→砍尾→破对称→换词→去模糊→注视角
- **注入学者视角** — 承认局限、表达意外、留下判断、短句造节奏
- **质量自评** — 6 维度自主判断(直接性、节奏、真实性、信息密度、学术规范、抗检测性)
- **噪声保留** — 每千字保留 2-3 处轻微 AI 特征,避免过度均质化
### 轻量版与完整版的差异
轻量版(`SKILL.md`)阉割了完整版(`SKILL_full.md`)的部分能力:TTR 词汇丰富度判断标准、LaTeX 公式手动保护/还原流程、结构化逐段输出模板。4 种统计类模式(P13-P16)需你逐段手动统计。但核心的**逐段交互式改写流程**和**16 种模式的改写规则**完整保留。
与 MCP Server 相比,两个 Skill 版本都无法自动执行 TTR 计算和正则引擎扫描,但完整版提供了更接近 MCP 工具链路的手动操作指南。
---
## 检测能力参考
### 16 种 AI 写作模式
| ID | 模式 | 严重度 | 典型触发 |
|----|------|--------|----------|
| 1 | 理论起笔 | 🔴 高 | 「依据社会建构主义理论……」 |
| 2 | 段末套路结尾 | 🔴 高 | 「此案例印证了……」 |
| 3 | 整齐编号逻辑 | 🟡 中 | 「首先……其次……再次……」 |
| 4 | 被动分析套话 | 🔴 高 | 「该处理体现了……」 |
| 5 | 模板化问题陈述 | 🟡 中 | 「面临的核心问题是……」 |
| 6 | 三元并列对称 | 🟡 中 | 「理论上……实践上……方法上……」 |
| 7 | 段末冗余总结 | 🔴 高 | 「综上所述……由此可见……」 |
| 8 | 模糊归因 | 🔴 高 | 「专家认为……」(无出处) |
| 9 | 填充短语与过度限定 | 🟢 低 | 「值得注意的是……」「可能在一定程度上……」 |
| 10 | 泛化结论与意义声明 | 🔴 高 | 「具有重要意义……前景广阔……」 |
| 11 | AI 高频词汇 | 🟡 中 | 「深刻揭示」「不可或缺」「综合运用」 |
| 12 | 回避系动词「是」 | 🟡 中 | 「作为……重要载体」「扮演着……角色」 |
| 13 | 过度对仗排比 | 🟡 中 | 「突破范式,填补空白,创新视角……」 |
| 14 | 结构性三步走 | 🟡 中 | 「从经济维度……社会维度……文化维度……」 |
| 15 | 破折号密度异常 | 🟢 低 | 一段内 —— 超过 4 次 |
| 16 | 正文加粗滥用 | 🟢 低 | 全文 ** 超过 5 处 |
### 7 项硬约束
| # | 约束 | 阈值 | 违规后果 |
|---|------|------|----------|
| HC-1 | AI 高频词密度 | 每段 > 2 个 | 高风险 |
| HC-2 | 段末总结套句 | 全文 > 1 处 | 高风险 |
| HC-3 | 整齐三元并列 | 每段 > 1 处 | 高风险 |
| HC-4 | 理论起笔占比 | > 20% 段落 | 高风险 |
| HC-5 | 正文加粗 | 全文 > 5 处 | 高风险 |
| HC-6 | 泛化结尾 | 全文 > 0 处 | 高风险 |
| HC-7 | 模糊归因 | 全文 > 0 处 | 高风险 |
---
## 红蓝军评测闭环
项目使用确定性的红蓝对抗循环来持续提升规则精度:
```
红队生成样例 → 人工审核 → 蓝队调规则 → 裁判脚本阻断回归
```
```bash
python scripts/evaluate_red_blue.py \
--fixtures tests/fixtures/red_blue/synthetic.jsonl \
--min-f1 0.70 --max-fpr 0.15 \
--stats-fixtures tests/fixtures/red_blue/realistic.jsonl \
--min-stats-recall 0.50 --max-stats-fpr 0.20
```
当前 baseline:70 条样例(62 合成 + 8 真实),16 种 pattern 全覆盖,L1 negative/near_miss 误报率 0.00,L2 burstiness recall=1.00 fpr=0.00。
详细工作流(含红队 LLM prompt 模板)见 [`docs/red-blue-workflow.md`](docs/red-blue-workflow.md)。
---
## 工程结构
```
aigc-humanizer-zh/
├── src/
│ ├── models.py # 数据结构(PatternMatch/ParagraphRisk/RiskReport/StatisticalSignals)
│ ├── pattern_defs.py # 16 种模式 + 7 项硬约束的规则定义(纯数据)
│ ├── paragraph.py # 段落切分逻辑
│ ├── detector.py # PatternDetector 类(L1 正则层)
│ ├── statistics.py # L2 统计层(burstiness/TTR/词汇集中度/个人视角/结构平行度)
│ ├── patterns.py # 兼容 re-export 入口(保持旧导入不变)
│ ├── scanner.py # LaTeX 栈式扫描器
│ └── evaluator.py # TTR + 60 分制质量评估(复用 PatternDetector 结果)
├── server.py # MCP Server 入口,9 个 @mcp.tool()
├── scripts/
│ ├── evaluate_red_blue.py # 红蓝军评测裁判脚本(L1 + L2)
│ ├── eval_adversarial.py # 对抗集评测(24 条)
│ ├── eval_expanded.py # 扩充集评测(40 条)
│ └── eval_generalization.py # 泛化集评测(30 条)
├── tests/ # 测试文件 + 70 条样例(62 合成 + 8 真实)
├── docs/
│ └── red-blue-workflow.md # 红蓝工作流文档
├── SKILL.md # 轻量版 Skill(默认加载)
├── SKILL_full.md # 完整版 Skill(含 LaTeX/TTR/结构化模板)
├── WORKFLOW.md # 交互式工作流 Agent Prompt 模板
├── pyproject.toml # Python 工程配置
├── requirements.txt # mcp + jieba
└── LICENSE # MIT
```
---
## 参考来源
- 真实论文 AI 润色版(AIGC >50%)与人工改写版(AIGC 11%)的逐段对比实验
- Wikipedia: Signs of AI writing(WikiProject AI Cleanup)
- de-AI-writing skill (OUBIGFA) — 硬约束数字化设计参考
- Humanizer-zh (op7418) — 模式分类与质量评分框架参考
---
## 注意事项与局限性
### 检测模式的适用范围
本项目的 **L1 正则层**(16 种 AI 写作模式)主要针对 **GPT-3.5/4 等早期模型的典型输出风格**。随着模型迭代,新一代 AI 的写作风格趋于多样化,在大部分非模板化的论文中可能不会有效触发这些检查机制。因此:
- **L1 适合作为保守的硬性检查机制**,但不应作为唯一的判断依据
- **L2 统计层**(burstiness/TTR/词汇集中度/个人视角/结构平行度)是模型无关的,对新一代模型输出更稳健,是当前两层架构的主力检测层
### 改写可能影响文本质量
改写过程本质上是对原文表达方式的干预。虽然本项目设计了 7 项硬约束来防止破坏性修改,但在以下情况下仍可能出现文本质量下降:
- 连续多次改写导致语言均质化,失去原文的节奏和个性
- LaTeX 公式保护不到位(尤其在 Skill 模式下需手动操作)
- 过度追求「去味」导致表达生硬、学术严谨性受损
**建议在改写前对论文原文进行完整备份**,每轮改写后对比原文审阅,确保学术内容无损。
### 使用声明
本项目**仅作学术交流与技术研究使用**。作者不支持、不鼓励将本工具应用于任何可能影响学术诚信的使用场景,包括但不限于:
- 将他人的 AI 生成文本伪装为人类撰写
- 规避学术机构对 AIGC 内容的合理检测
- 以「去 AI 味」为手段掩盖抄袭或造假行为
工具是中性的,使用者的意图决定其价值。请在学术诚信的边界内使用。
---
## 许可证
MIT
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues