网文去AI化流水线(novel-deai-pipeline)
把一章网文从"AI 味重、朱雀判高"修到"八项硬指标全绿 + 语义层无 AI 信号"的可复用流水线。本技能是编排台,测量脚本已内置于 scripts/,风格纪律来自协作技能。
核心认知(先读,否则会白干)
> 结构指标(八项)全绿 ≠ 朱雀语义检测通过。
> verify_chapter.py 只抓可量化的句法特征(句长、引号密度、破折号…),抓不到风格级 AI 信号。朱雀类检测判的是:机械复读、对称 catalog、讲义段、文艺比喻、零冗余对话、大纲体、内心独白、上帝视角、节奏单调。这两类必须两层都过才算交付。
触发词
"去AI" / "降朱雀" / "AIGC值高" / "过不了检" / "伪人感" / "写得像AI" / 用户贴来朱雀"片段/占比/AIGC值"表格。
流水线(严格按顺序)
Step 0 · 锁定目标书红线
- 若目标是某特定风格书(如《犯罪心理档案》《藏地密码》《法医秦明》),先加载对应
*-style技能拿它的指纹硬指标(句长下限、对话段占比、后置率、引号密度…)。 - 若用通用网文阈值,直接跑
scripts/verify_chapter.py(已内置长度自适应闸门)。
Step 1 · 按"融合版"叙事写/改初稿
融合版特征(这是为压住 AI 指纹设计的结构):
- 逗号链长句:叙述段用逗号连成一长句,句号少,句长均值拉到自适应下限之上(2000字文 ≥30,越短要求越宽)。
- 对话动词后置:"XXX"某人说,引号在前、说/道/问紧跟收引号(40字内),后置率 ≥80%。
- 叙述导入 + 后置直引同段:把对话嵌进长叙述段(既保对话段占比,又保后置率),避免碎句。
Step 2 · 跑结构校验(修八项)
PY="E:/WorkBuddyConfig/binaries/python/versions/3.13.12/python.exe"
$PY scripts/verify_chapter.py --path "第02章.txt"
八项硬指标(详见 references/01-八项硬指标.md):
| 指标 | 合格区间 | 性质 |
|---|---|---|
| 句长均值 | ≥ 长度自适应下限(27–34) | 硬 |
| 对话段占比 | 55%–75% | 硬 |
| 引号对/千字 | ≤ 长度自适应上限(14–24) | 硬 |
| 叹号/千字 | ≤ 2.5 | 硬 |
| 破折号 | = 0 | 硬(零容忍) |
| 语气词/千字 | ≤ 6 | 硬 |
| ASCII 半角引号 | = 0 | 硬(零容忍) |
| 第一人称独白段 | = 0 | 硬(零容忍) |
| 对话动词后置率 | ≥ 80% | 诊断项(非硬,但签名级) |
任一越界先修到此步全绿,再进入语义层。不要跳过这步直接改语义——结构病灶会掩盖语义病灶。
Step 3 · 跑语义层双检测
# A) 朱雀式分段扫描 + 文艺词/黑名单正则层
$PY scripts/seg_ai_scan.py --path "第02章.txt" --segs all --literary
# 或按朱雀真实分段:--segs 257,258,890
# B) ai-free-writing 18维(虚构/静戏)
$PY scripts/detect.py "第02章.txt" --genre fiction --scene 静戏
seg_ai_scan.py输出每段的 句长均值/逗号数/引号密度/硬指标/正则层命中(文艺词、黑名单、对称、总结、点题、格言)。重点看"正则层命中"与"句长均值过低"的段。detect.py输出 18 维综合评分(fiction <0.3 即通过)。
Step 4 · 四层诊断定位病灶(来自 zhuque-deai-orchestrator)
按 references/02-语义级AI信号清单.md 的九类信号,逐段判:
1. 词汇层:文艺比喻(像在/像被/宛如/犹如/仿佛)、黑名单词(指节、蓦地、倏然…)、对称词(不是A是B、AABB)。
2. 句式层:碎句(句长均值 <22)、规律短对话轮、并列 catalog。
3. 语感层:逻辑过高效(每句精准推进情节,零杂音零摩擦)、零冗余对话。
4. 结构层:讲义段(干净 exposition)、大纲体背景、内心独白、上帝视角、日常/优美景色开头。
Step 5 · 按朱雀分段数据"只改最高值段"
纪律(防掉分):用户给朱雀分段表时,只重改 AIGC 值最高的片段,达标区(一般 <0.45)只做极小安全改动(换一词),绝不为"更干净"重写达标区——重写常把已过段拉回高位(v10 掉分教训)。
Step 6 · 应用语义去AI手法(九类信号的修法)
- 机械复读(头号杀手):同一句台词既"嵌入叙述(无引号)"又说一遍"独立直引" → 每句台词只出现一次,统一走「叙述导入 + 后置直引」同段。
- 对称 catalog / AABB 并列:拆成非对称长尾,打乱顺序。
- 讲义段:把"角色独白交代设定"改为"角色对观察的行为反应"(罗瘸子答沈九的观察,不独白)。
- 文艺比喻:用《骨笛》式具身替代——只写肉身与具体物件/声音,不写"像在…"(详见
references/03-进得快五红线与骨笛具身.md)。 - 大纲体背景:身份说明书("组里最年轻合同工八个月没转正")整段删,信息等读者上钩后像麻辣烫加菜慢慢丢。
- 内心独白 / 上帝视角:narrator 替角色想的内容 → 转成动作或对话("沈九心里清楚…"删;"沈九说…")。
- 日常/优美景色开头:开头写景铺垫(铁皮房闷热、苍穹画布)→ 第一段直接扔冲突切片。
Step 7 · 骨笛具身替换(专门压"开头 AI 值")
开头是朱雀最常判高的区。用 references/03 的骨笛写法:把"心里一沉/像在思考"这类内感,全部换成可观测的肉身 + 物件 + 声音(血色退、指节泛白、嘴角动、眼角跳、铁桌、日光灯嘶嘶、地域口语"第三具噻")。
Step 8 · 重跑验证(闭环)
重跑 Step 2 + Step 3,确认:八项全绿 + 18维 <0.3 + 正则层 0 命中 + 长窗重复签名 0(见下)。直到全过。
附 · 长窗重复签名扫描(朱雀长窗口核心信号)
$PY scripts/repeat_sig.py "第02章.txt"
统计 4/5/6/8/10/12 字窗超额重复子串。8/10/12 字窗 = 0 是合格核心信号——逗号链长句正是为压住这项。若非零,定位重复子串删改。
踩坑纪律(NEVER,来自真实返工)
- [NEVER] 写/改稿时混入 ASCII 半角引号
"。Write/Edit 写中文引号极易误入半角。后果是双故障同源:① ASCII 硬指标失败;② 这些段落不算"含中文引号段",对话段占比瞬间掉到 38%。修法:用 python 按奇偶交替把"还原成""(见references/04脚本片段)。每次改完必跑 verify 抓ASCII=0。 - [NEVER] 为"进得快"砍光描写导致对话段占比冲 >75%。砍写景段 → 无引号段太少 → 占比飙到 88.9%。修法:补的是动作段(沈九摸白板、康跃进蹭墙皮)而非写景段,既保进得快又压回占比。
- [NEVER] 重写已达标的朱雀片段。达标区只微改一词,重写必掉分。
- [NEVER] 同一句台词出现两次(嵌入+独立)。这是退化/重复生成指纹,朱雀头号杀手。
- [NEVER] 用骨笛招牌动作"指节泛白"——ai-free 黑名单含"指节"。换成"手背绷亮/指头压白印"(骨笛也用"手背发亮")。
协作技能(本编排台调度它们)
crime-psych-style:八项硬指标 + 长度自适应闸门(verify_chapter.py即其脚本,已内置)。human-pattern-v3:人声密度、信息过行为、修稿阶梯(detect.py 的底层方法论)。zangdi-mima-style:禁对称收口、禁逻辑过高效零冗余(写法八)。novel-opening-case:进得快、切片开头、三句法、show-don't-tell。zhuque-deai-orchestrator:四层诊断法、分段定位、只改最高值段(seg_ai_scan.py 即其脚本,已内置)。
交付判据(全部满足才算完)
- [ ]
verify_chapter.py八项全绿(含 ASCII=0、破折号=0) - [ ]
detect.py综合 <0.3(fiction)或对应文体阈值 - [ ]
seg_ai_scan.py正则层 0 命中(文艺词/黑名单/对称/总结/点题/格言) - [ ]
repeat_sig.py8/10/12 字窗重复 = 0 - [ ] 朱雀真机分段复检(需用户本机真实 Chrome 带登录态跑,沙箱无桌面会话)