--- name: humanize-chinese description: > 中文去 AI 腔一整套(装完即用,零 API Key —— 装了本 skill 的 agent 自己就是那个 LLM)。 六个流程:① 生成即去 AI —— 写中文时按本 skill 的写作指南落笔,初稿就不带 AI 腔; ② 复查改写 —— 产出后对照本 skill 的清单再过一遍,定点拆模板句式; ③ Python 词语替换 —— ./humanize replace 按文体自动路由词表(学术 120+ 条 / 通用 220+ 条),只做短语级、只在子句边界替换,改完自动核对数字/专名/段落; ④ Claude 腔转中文 —— 把 Claude 助手腔的中文改写成平实中文, 规则提炼自 gvzdv/claudish-to-english 并本地化; ⑤ 去水印 —— ./humanize watermark 扫清零宽字符/双向控制符/同形替身, 并对照 guillaumemeyer/watermarks-remover 说明统计水印的边界; ⑥ 纠错顺句 —— 修错词、病句、标点,拗口和用词不准处轻手顺一顺;改动范围有硬校验。 另有检测(0-100 分)、风格转换、学术降重等 CLI。 Use when user says: "去AI味", "降AIGC", "人性化文本", "humanize chinese", "AI检测", "AIGC降重", "去除AI痕迹", "文本改写", "论文降重", "知网检测", "维普检测", "AI写作检测", "让文字更自然", "detect AI text", "humanize text", "make text human-like", "去ai化", "改成人话", "去机器味", "长文本改写", "小说改写", "写一篇", "claudish", "去claude腔", "助手腔", "去水印", "watermark remover", "remove watermark" allowed-tools: - Read - Write - Edit - exec --- # Humanize Chinese AI Text v6 一整套中文去 AI 腔流水线。装完直接用:你(agent)负责 ①②④⑥,Python 脚本负责 ③⑤。 | 流程 | 什么时候 | 怎么做 | |---|---|---| | **① 生成即去 AI** | 用户让你**写**中文时 | 按下方「流程 ①:写作指南」落笔,初稿就不带 AI 腔 | | **② 复查改写** | 拿到初稿(自己写的或用户给的)| 按下方「流程 ②:改写清单」定点过一遍,只动踩线的句子 | | **③ 词语替换** | ② 完成后 | `./humanize replace 稿.txt -o 出稿.txt --compare` —— 自动识别文体路由词表,离线 | | **④ Claude 腔转中文** | 稿子带 Claude 助手腔(对话残留、客套、解释癖) | 读 `skills/declaude-cn/SKILL.md` 照做,规则来自 gvzdv/claudish-to-english 的中文本地化 | | **⑤ 去水印** | 要清文本里的 AI 水印 | `./humanize watermark inspect/clean/survive`,边界见「流程 ⑤」 | | **⑥ 纠错顺句** | ③ 完成后 | 按下方「流程 ⑥:纠错清单」修错词、病句、标点,拗口处**轻手**顺一顺,其余不动 | 中文主线是 ①→②→③→⑥,**顺序执行**;稿子带 Claude 助手腔就在 ② 之后加跑 ④;⑤ 独立,需要时随时跑。 人味在 ① 产生,② 只能修不能补,③ 是机械替换,⑥ 纠错顺句、动作最轻。 为什么是这个顺序:实测从零写能把句长节奏做进人类区间(变异系数 0.62 vs 人类 0.52), 而事后改写只能到 0.31 —— 节奏补不回来,必须落笔时就有。 ## CLI Tools ### 统一 CLI(推荐) ```bash ./humanize replace 文本.txt -o 改后.txt --compare # 流程 ③:按文体路由的词语替换(离线) ./humanize replace 论文.txt --scene academic # 显式指定文体(auto/general/academic/social/novel) ./humanize rewrite 文本.txt -o 改后.txt # 离线断句节奏 ./humanize rewrite 文本.txt --llm -o 改后.txt # 用外部 API 跑 ②+③(可选,需 OPENROUTER_API_KEY) ./humanize write "写一篇讲复利的科普" -o 出稿.txt # 用外部 API 跑 ①→③(可选,需 key) ./humanize rewrite 文本.txt --legacy # 旧版全量改写器(降分多但会写病句) # 检测与其它 ./humanize detect 文本.txt -v # 检测 + 详细(分数怎么看见下方说明) ./humanize academic 论文.txt -o 改后.txt --compare # 学术降重 ./humanize style 文本.txt --style xiaohongshu # 风格转换 ./humanize compare 文本.txt -a # 前后对比 # 水印(两层是两回事,见下方说明) ./humanize watermark inspect 稿子.txt # 扫零宽字符/双向控制符/汉字同形替身 ./humanize watermark clean 稿子.txt -o 干净.txt # 清掉,全角标点和首行缩进原样保留 ./humanize watermark survive 原文.txt 改写后.txt # 采样水印还剩多少 ``` **水印那两层别混。** 看得见的载体(零宽字符、康熙部首冒充汉字之类)能删干净也能验证, `inspect` 完 `clean` 完再 `inspect` 一遍就是证明。Claude 从 2026-08-02 起用的是另一层: 拿密钥和前 4 个字算哈希去偏置采样,信号在选词里,本地删不掉也证明不了删掉了。 `survive` 报的是能测的那部分 —— 原文的 5 字计分窗口在改写后还剩多少个原封不动。 实测本仓库自带的学术样本(288 字):`replace` 剩 73%,`academic` 剩 54%, `style` 剩 44%,`rewrite --llm` 剩 42%。**没有一档够。** 真要去掉只有一条路:`write`,拿原文当素材重新写。跟用户说这件事的时候要说实话, 不要说「已经清干净了」——谁都没法验证这句。 **离线那档很保守**:只移动标点,去掉标点后前后文字必须一模一样,程序每次都校验。 找不到能安全断开的位置时它会直接说「没有可以安全修改的地方」并原样输出 —— 这是设计,不是失败。AI 写的句子结构均匀,硬断会产生残句。 **需要 key 的两档**走 OpenRouter: `secret exec OPENROUTER_API_KEY -- ./humanize rewrite 文件.txt --llm` ### 独立脚本形式(等价) 所有脚本在 `scripts/` 目录下,纯 Python,无依赖。 ```bash # 检测 AI 模式(20+ 规则维度 + 8 统计特征,0-100 分) python scripts/detect_cn.py text.txt python scripts/detect_cn.py text.txt -v # 详细 + 最可疑句子 python scripts/detect_cn.py text.txt -s # 仅评分 python scripts/detect_cn.py text.txt -j # JSON 输出 # 改写(默认 best-of-10,scene-aware) python scripts/humanize_cn.py text.txt -o clean.txt python scripts/humanize_cn.py text.txt --scene social -a # 社交 + 激进 python scripts/humanize_cn.py text.txt --quick # 18× 速度,纯替换 python scripts/humanize_cn.py text.txt --cilin # 启用 CiLin 同义词扩展 # 风格转换(先自动 humanize 再套风格) python scripts/style_cn.py text.txt --style zhihu -o out.txt # 前后对比 python scripts/compare_cn.py text.txt --scene tech -a # 学术论文 AIGC 降重(10 学术维度 + scene-aware academic LR + 双评分) python scripts/academic_cn.py paper.txt -o clean.txt --compare python scripts/academic_cn.py paper.txt -o clean.txt -a --compare # 激进 python scripts/academic_cn.py paper.txt -o clean.txt --quick # 快速模式 ``` ### 评分标准 | 分数 | 等级 | 含义 | |------|------|------| | 0-24 | LOW | 基本像人写的 | | 25-49 | MEDIUM | 有些 AI 痕迹 | | 50-74 | HIGH | 大概率 AI 生成 | | 75-100 | VERY HIGH | 几乎确定是 AI | ### 参数速查 | 参数 | 说明 | |------|------| | `-v` | 详细模式,显示可疑句子 | | `-s` | 仅评分 | | `-j` | JSON 输出 | | `-o` | 输出文件 | | `--scene`(replace)| auto / general / academic / social / novel,词表路由 | | `--compare`(replace)| 打印改写前后检测分 | | `-a` | 激进模式 | | `--seed N` | 固定随机种子 | | `--scene` | general / academic / novel / auto(detect_cn)—— auto 按 ≥1500 字切 longform LR | | `--style` | casual / zhihu / xiaohongshu / wechat / academic / literary / weibo / **novel** | | `--best-of-n N` | humanize N 次取 LR 最低(默认 10) | | `--compare` | 前后对比(学术双评分) | | `--quick` | 快速模式(跳过统计优化 + best-of,18× 速度) | | `--cilin` | 启用 CiLin 同义词扩展(humanize,38873 词,含碰撞 blacklist) | | `--no-humanize` | style 转换前不先去 AI 词 | | `--rule-only` | detect 只用规则层(跳 LR 融合) | | `--fullwidth-latin` | 全角拉丁字母改半角(watermark clean,默认不动)| | `--keep-bidi` | 保留双向控制符(watermark clean,文里真夹了阿拉伯语时用)| ### 工作流(中文主线) ```bash # ① 写:按「流程 ①:写作指南」产出 draft.txt(agent 自己完成,无命令) # ② 改:按「流程 ②:改写清单」定点过一遍,存 revised.txt(agent 自己完成) # ③ 词表替换: ./humanize replace revised.txt -o step3.txt --compare # ⑥ 纠错(agent 按「流程 ⑥:纠错清单」自己完成;走 API 也可以: rewrite --llm 已含 ⑥) # 可选:检测 / 转风格 ./humanize detect final.txt -v ./humanize style final.txt --style zhihu -o styled.txt # ④ Claude 腔转平实中文:agent 读 skills/declaude-cn/SKILL.md 直接改,无命令 # ⑤ 去水印(独立,随时可跑): ./humanize watermark inspect 稿子.txt ./humanize watermark clean 稿子.txt -o 干净.txt ``` ### HC3-Chinese 基准测试 阈值基于 [HC3-Chinese](https://github.com/Hello-SimpleAI/chatgpt-comparison-detection) 300+300 人类/AI 样本的 Cohen's d 校准,scene-aware LR 在 500+500 训练: - 句长变异系数 CV: d = 1.22(最强单信号) - 短句占比 (< 10 字): d = 1.21 - 段落长度 CV: d = -1.49(v5 长文本新信号) - 段内句长 CV: d = -2.08(v5 长文本最强信号) - 跨段 trigram 重复: d = +1.13(v5 长文本新信号) - 困惑度: d = 0.47 - GLTR top-10 bucket: d = 0.44 - DivEye skew / kurt: d = 0.41 / 0.29 - 逗号密度: d = -0.47 ⚠️ 上面这些效应量测于 HC3(2022 年的 ChatGPT 语料)。2026-08 用五个当前模型重测,同题同长度对照下:区分 2024 年模型准确率 96%,区分今年的模型只剩 64%(瞎猜 50%)。**这些 d 值对 HC3 仍然成立,但不能外推到今天的模型。** **v6 实测(三模型通顺度评审 1-5 分;结果存疑时加跑一轮取并集)**: 仓库五份样例(刻意夸张的 AI 腔样本): | | 通顺度中位数 | 多数票病句 | |---|---|---| | v6 三段流水线 | 4.0 - 5.0 | **未发现** | | 旧版纯规则改写 | 2.0 | 5 - 17 处 | 2026-08 新语料里的真实模型产出(更接近实际输入): 社交 350 字 → 5.0 / 未发现;学术 736 字 → 5.0 / 未发现;科普 571 字 → 4.0 / **1 处**。 写「未发现」不写「0 处」是有意的:评审对真实病句存在漏报,「未发现」只说这一轮没抓到,不承诺不存在。 **三篇里两篇干净,样本太小不能当合格率**,但真实文本确实比夸张样本难改。 旧版被三个评审各自独立点出的句子,例如「智能评估系统能够各个层面地评判学习者的综合素质」 「整合人工智能与教育教学已成为更好地推进的必由之路」—— 这些不是中文。 --- ## 流程 ①:写作指南 —— 生成时就别写出 AI 腔 用户让你写中文时(而不是改现成的),先读 `skills/write-cn/SKILL.md`,照那份备忘落笔。它讲四件事:动笔前先凑齐真材料,带参照的数字、能点名的人事物、反直觉的事实、真场景、会有人不同意的判断,凑不齐就问用户要,材料必须是真的,宁可空泛不可捏造;有些话整套都不能说,按语姿绕开而不是按词躲;句长要有起伏、段落别等厚、用词从材料里取而不是顺着上一个词接;还有几条英文圈教条在中文里方向是反的,别照抄。写完自查一遍,再反着查有没有洗成白开水。 ## 流程 ②:改写清单 —— 拿到稿子后定点过一遍 对 ① 的产出或用户给的任何稿子,读 `skills/deai-rewrite/SKILL.md` 照做。要领是定点修改不是重写:没踩线的句子一个字不碰,数字专名引文一个不动,原文没有的内容一个不加。见到抬轿子的句式就拆,贴金的词换成后果或删掉,空转的过渡直接删。改完过四道核对——事实、信息(排除关系不改成正面断言,相关不升级成因果,犹疑不改成确定)、通顺、反向查平庸化——一道不过就回滚。 ### 先扫一遍:检测 AI 写作模式 扫描文本中的以下模式,按严重程度分类: #### 🔴 高危模式(一眼就能看出是 AI) **三段式套路:** - 首先…其次…最后 - 一方面…另一方面 - 第一…第二…第三 **机械连接词:** 值得注意的是、综上所述、不难发现、总而言之、与此同时、由此可见、不仅如此、换句话说、更重要的是、不可否认、显而易见、不言而喻、归根结底 **空洞宏大词:** 赋能、闭环、数字化转型、协同增效、降本增效、深度融合、全方位、多维度、系统性、高质量发展、新质生产力 #### 🟠 中危模式 **AI 高频词:** 助力、彰显、凸显、底层逻辑、抓手、触达、沉淀、复盘、迭代、破圈、颠覆 **填充废话:** 值得一提的是、众所周知、毫无疑问、具体来说、简而言之 **模板句式:** - 随着…的不断发展 - 在当今…时代 - 在…的背景下 - 作为…的重要组成部分 - 这不仅…更是… **平衡论述套话:** 虽然…但是…同时、既有…也有…更有 #### 🟡 低危模式 - 犹豫语过多(在一定程度上、某种程度上 出现 >5 次) - 列举成瘾(动辄①②③④⑤) - 标点滥用(大量分号、破折号) - 修辞堆砌(排比对偶过多) #### ⚪ 风格信号 - 段落长度高度一致 - 句子长度单调 - 情感表达平淡 - 开头方式重复 - 信息熵低(用词可预测) ### 逐条拆:命中什么改什么 按以下顺序处理: **1. 砍掉三段式** 把"首先…其次…最后"打散,用自然过渡代替。不是每个论点都要编号。 **2. 替换 AI 套话** - 综上所述 → 总之 / 说到底 / (直接删掉) - 值得注意的是 → (直接删掉,后面的话自己能说清楚) - 赋能 → 帮助 / 支持 / 提升 - 数字化转型 → 信息化改造 / 技术升级 - 不难发现 → 可以看到 / (删掉) - 助力 → 帮 / 推动 **3. 句式重组** - 过短的句子合并("他很累。他决定休息。" → "他累了,干脆歇会儿。") - 过长的句子拆开(在"但是""不过""同时"等转折处断开) - 打破均匀节奏(长短句交替,不要每句差不多长) **4. 减少重复用词** 同一个词出现 3 次以上就换同义词。比如"进行"可以换成"做""搞""开展""着手"。 **5. 注入人味** - 加一两句口语化表达(场景允许的话) - 用具体的例子代替抽象概括 - 偶尔加个反问或感叹 - 不要每段都总分总结构 **6. 段落节奏** 打破每段差不多长的格局。有的段落 2 句话,有的 5 句话,像人写东西时自然的长短变化。 ### 学术论文特殊处理(不能口语化) 当文本是学术论文时,改写规则不同——不能口语化,要保持学术严谨性: **学术专用检测维度:** 1. AI 学术措辞("本文旨在""具有重要意义""进行了深入分析") 2. 被动句式过度("被广泛应用""被认为是") 3. 段落结构过于整齐(每段总-分-总) 4. 连接词密度异常 5. 同义表达匮乏("研究"出现 8 次) 6. 引用整合度低(每个引用都是"XX(2020)指出…") 7. 数据论述模板化("从表中可以看出") 8. 过度列举(①②③④ 频繁出现) 9. 结论过于圆满(只说好不说局限) 10. 语气过于确定("必然""毫无疑问") **学术改写策略:** - **替换 AI 学术套话(保持学术性):** - 本文旨在 → 本文尝试 / 本研究关注 - 具有重要意义 → 值得关注 / 有一定参考价值 - 研究表明 → 前人研究发现 / 已有文献显示 / 笔者观察到 - 进行了深入分析 → 做了初步探讨 / 展开了讨论 - 取得了显著成效 → 产生了一定效果 / 初见成效 - **减少被动句:** - 被广泛应用 → 得到较多运用 / 在多个领域有所应用 - 被认为是 → 通常被看作 / 一般认为 - **注入学术犹豫语(hedging):** 在过于绝对的判断前加"可能""在一定程度上""就目前而言""初步来看" - **增强作者主体性:** - 研究表明 → 笔者认为 / 本研究发现 - 可以认为 → 笔者倾向于认为 - **补充局限性:** 如果结论段没有提到局限,补一句"当然,本研究也存在一定局限…" - **打破结构均匀度:** 调整段落长度,避免每段都一样。合并过短的段落,拆分过长的。 ## 流程 ④:Claude 腔 → 平实中文 稿子带着 Claude 助手腔(对话残留、客套、解释癖)时,读 `skills/declaude-cn/SKILL.md` 照做。 要领:日常的词、短句子;事实、名字、数字、文件路径一个不动;代码块不碰;只输出改写后的正文。 和 ② 的分工:模板句式、套话归 ② 拆,助手腔归这段;稿子带助手腔就在 ② 之后加跑这段。 规则提炼自 [gvzdv/claudish-to-english](https://github.com/gvzdv/claudish-to-english)(2.4k star) 的内置改写 prompt —— 那个仓库本身是个 Claude Code 显示插件(把助手消息实时改写成平实文字显示), 我们借的是它的改写规则,本地化成中文,由 agent 直接执行,不装插件。 ## 流程 ⑤:去水印 两层水印是两回事(详见上方 CLI 说明): - **看得见的载体**(零宽字符、双向控制符、汉字同形替身):`./humanize watermark inspect` 扫、 `clean` 清,清完再 `inspect` 一遍验证。这层能删干净。 - **统计水印**(密钥 + 前文哈希偏置采样,信号在选词里):本地删不掉,也证明不了删掉了。 `survive` 报的是能测的那部分。真要去掉只有一条路:`write` 拿原文当素材重写。 跟用户说这件事要说实话,不说「已经清干净了」。 外部参照:[guillaumemeyer/watermarks-remover](https://github.com/guillaumemeyer/watermarks-remover) (1.9w star,小红书「Claude 水印被破解」那帖说的就是它)。它比我们多两块:多厂商统计水印 (Gemini SynthID-Text、OpenAI 溯源、开源绿名单/Aaronson 系)的改写式去除,和文件级溯源元数据 清理(C2PA / EXIF / XMP,覆盖 PNG/JPEG/PDF/DOCX/MP4 等)。文本里的零宽字符用自家 `watermark clean` 就够;用户要清文件元数据或对付多厂商统计水印时,指向那个仓库。 ## 流程 ⑥:纠错清单 —— 修错误、顺拗口,动作要轻 ③ 跑完后把稿子再读一遍,修四类:错词/错别字(的地得、搭配错误)、 真病句(成分残缺、前后不接 —— 最小修复,改到通顺就停)、 标点(中文语境半角逗号句号、括号引号不配对、重复标点)、 拗口/语义不畅/用词不准(读出声会磕绊的,换一两个词、微调一处语序,好读即可)。 **风格平淡不是错误;信息不许增删;句序段落不许动;本来就通顺的句子不碰。** 判断口诀:错误要修;拗口要顺;通顺的再「可以更好」也不动。 完整版见 `skills/proofread-cn/SKILL.md`。实测参考:四份产出跑 ⑥, 两份零错误逐字原样返回,两份各修若干处标点和一处缺字病句,检测分不变。 ### 改完自查 —— 验的是通顺,不是分数 中文主线四段(①②③⑥)过完,跑流程 ③ 收尾: ```bash ./humanize replace 稿.txt -o 出稿.txt --compare ``` 改写完成后先自己读一遍,逐条过: 1. **事实核对**:原文每一个数字、单位、年份、人名、地名、专有名词,改后还在吗? 少一个就把那句还原。 2. **信息核对**:原文说过的每件事,改后还说了吗?删掉的应该只有套话。 3. **通顺核对**:改动过的每一句单独读一遍。有搭配不当、成分残缺、前后不接的, 把那句还原。**宁可不改,也不写病句。** 4. **平庸化核对(反向)**:段落是不是变薄了?句子是不是整体变短且变齐了? 原文里锋利的判断是不是被磨成了中性说明书?中了任意一条就回滚。 想看检测分可以跑,但**不要把它当验收标准**: ```bash ./humanize detect output.txt -s ``` --- ## 关于检测分 这个工具带一个 0-100 的检测分。**不要以压低它为目标。** 它的可用性**分文体差别极大**。 2026-08 实测:五个当前模型各 50-100 篇 vs 真人公开语料 50 篇,两侧长度对齐后算区分度 (随机取一篇模型的和一篇真人的,模型那篇分数更高的概率;0.5 是抛硬币): | 文体 | 区分能力 | 怎么用 | |---|---|---| | 科普 / 新闻类短文 | 0.837 | 可以参考 | | 社交笔记 | 0.771 | 可以参考 | | 学术摘要 | 0.621 | 已经很弱,别当依据 | | 小说 | 0.479 | 等于抛硬币,别用 | | 长篇博客 | 0.155 | **方向是反的,用了会误判** | | 职场汇报 | 无数据 | 没有可用的真人公开语料做对照 | **长文场景(博客 0.155、小说 0.479)不要用这个分数做判断。** 博客那格的意思是:拿它挑「哪篇像 AI 写的」,它会更多地挑中真人写的。 **另外:真人写的论文也会被判成 AI。** 60 篇真实知网论文摘要(发表早于大模型), 平均 60 分,35% 落在「几乎确定是 AI」档。上面那张评分标准表的档位名称, 在学术和长文场景下不准。 外面的商用检测器也一样不稳:同一批文字有的工具给 0 分、有的给 99.9 分。 **所以:把检测分当参考信号可以,当优化目标不行。** 上一版为了压分去乱换同义词、 插入过渡句、打乱句序,分数确实降得多,代价是写出不是中文的句子。 ## 配置说明 所有检测模式和替换规则在 `scripts/patterns_cn.json`,可自定义: - 添加新 AI 词汇 - 调整权重 - 增加替换规则 - 修改正则匹配 ## 外部配置字段 ``` critical_patterns — 高权重检测(三段式、连接词、空洞词) high_signal_patterns — 中权重检测(AI 高频词、模板句) replacements — 替换词库(正则 + 纯文本) academic_patterns — 学术专用检测与替换 scoring — 权重和阈值配置 ```