Humanize Chinese AI Text v6
SkillAI & modelsA complete toolkit for removing the AI tone from Chinese text (works out of the box, zero API keys, the agent with this skill installed IS the LLM itself). Six workflows: ① De-AI at generation time, when writing Chinese, follow this skill's writing guidelines so the first draft already has no AI t
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Humanize Chinese AI Text v6 skill
What this skill tells your AI
The instructions your AI receives, as published by swaylq/humanize-chinese in SKILL.md and read by ahel’s review.
一整套中文去 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(推荐)
./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,无依赖。
# 检测 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,文里真夹了阿拉伯语时用) |
工作流(中文主线)
# ① 写:按「流程 ①:写作指南」产出 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 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 句话,像人写东西时自然的长短变化。
学术论文特殊处理(不能口语化)
当文本是学术论文时,改写规则不同——不能口语化,要保持学术严谨性:
学术专用检测维度:
- AI 学术措辞("本文旨在""具有重要意义""进行了深入分析")
- 被动句式过度("被广泛应用""被认为是")
- 段落结构过于整齐(每段总-分-总)
- 连接词密度异常
- 同义表达匮乏("研究"出现 8 次)
- 引用整合度低(每个引用都是"XX(2020)指出…")
- 数据论述模板化("从表中可以看出")
- 过度列举(①②③④ 频繁出现)
- 结论过于圆满(只说好不说局限)
- 语气过于确定("必然""毫无疑问")
学术改写策略:
-
替换 AI 学术套话(保持学术性):
- 本文旨在 → 本文尝试 / 本研究关注
- 具有重要意义 → 值得关注 / 有一定参考价值
- 研究表明 → 前人研究发现 / 已有文献显示 / 笔者观察到
- 进行了深入分析 → 做了初步探讨 / 展开了讨论
- 取得了显著成效 → 产生了一定效果 / 初见成效
-
减少被动句:
- 被广泛应用 → 得到较多运用 / 在多个领域有所应用
- 被认为是 → 通常被看作 / 一般认为
-
注入学术犹豫语(hedging): 在过于绝对的判断前加"可能""在一定程度上""就目前而言""初步来看"
-
增强作者主体性:
- 研究表明 → 笔者认为 / 本研究发现
- 可以认为 → 笔者倾向于认为
-
补充局限性: 如果结论段没有提到局限,补一句"当然,本研究也存在一定局限…"
-
打破结构均匀度: 调整段落长度,避免每段都一样。合并过短的段落,拆分过长的。
流程 ④:Claude 腔 → 平实中文
稿子带着 Claude 助手腔(对话残留、客套、解释癖)时,读 skills/declaude-cn/SKILL.md 照做。
要领:日常的词、短句子;事实、名字、数字、文件路径一个不动;代码块不碰;只输出改写后的正文。
和 ② 的分工:模板句式、套话归 ② 拆,助手腔归这段;稿子带助手腔就在 ② 之后加跑这段。
规则提炼自 gvzdv/claudish-to-english(2.4k star)
的内置改写 prompt —— 那个仓库本身是个 Claude Code 显示插件(把助手消息实时改写成平实文字显示),
我们借的是它的改写规则,本地化成中文,由 agent 直接执行,不装插件。
流程 ⑤:去水印
两层水印是两回事(详见上方 CLI 说明):
- 看得见的载体(零宽字符、双向控制符、汉字同形替身):
./humanize watermark inspect扫、clean清,清完再inspect一遍验证。这层能删干净。 - 统计水印(密钥 + 前文哈希偏置采样,信号在选词里):本地删不掉,也证明不了删掉了。
survive报的是能测的那部分。真要去掉只有一条路:write拿原文当素材重写。 跟用户说这件事要说实话,不说「已经清干净了」。
外部参照: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。实测参考:四份产出跑 ⑥,
两份零错误逐字原样返回,两份各修若干处标点和一处缺字病句,检测分不变。
改完自查 —— 验的是通顺,不是分数
中文主线四段(①②③⑥)过完,跑流程 ③ 收尾:
./humanize replace 稿.txt -o 出稿.txt --compare
改写完成后先自己读一遍,逐条过:
- 事实核对:原文每一个数字、单位、年份、人名、地名、专有名词,改后还在吗? 少一个就把那句还原。
- 信息核对:原文说过的每件事,改后还说了吗?删掉的应该只有套话。
- 通顺核对:改动过的每一句单独读一遍。有搭配不当、成分残缺、前后不接的, 把那句还原。宁可不改,也不写病句。
- 平庸化核对(反向):段落是不是变薄了?句子是不是整体变短且变齐了? 原文里锋利的判断是不是被磨成了中性说明书?中了任意一条就回滚。
想看检测分可以跑,但不要把它当验收标准:
./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 — 权重和阈值配置
Signals
- GitHub stars
- 20
- Forks
- 3
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
humanize-chinese-swaylq- Source
- github.com/swaylq/humanize-chinese