4.1 KiB
Raw Blame History

name, description
name description
clean LLM 辅助正文清洗——MiniMax-M3 按窗口(约10万字)只输出待删垃圾段原文与理由,代码做精确匹配删除并全程留审计(example_clean_log)。LLM 不改写正文,删不删由守卫规则最终裁决。

clean —— LLM 检测 + 代码执行的正文清洗

分工(创始人方案 2026-07-13):规则层已在 import 解决结构性垃圾(水印正则/重贴章题/目录页/分页尾巴/残破实体);本 skill 处理语义垃圾——变体书站广告、作者拉票/PS 段、微信导流、乱码水印等正则打不全的散落噪声。LLM 只当探测器(输出待删片段逐字原文),删除由脚本执行:零改写、可审计、可回放。探测模型=New-API MiniMax-M3(经 llm skill;单窗失败自动降级 deepseek-v4-flash,再失败记录跳过——网文正文会触发上游敏感词拦截,实测两处均被备选救回)。

流程

# 放量驱动(每书 prep→detect→apply 全链;断点续跑/幂等防重删;可多进程分书并行)
.venv/bin/python .claude/skills/clean/scripts/clean_batch.py --work-id 7 --work-id 10 --batch <批次号>

# 单步(调试/演示用)
.venv/bin/python .claude/skills/clean/scripts/clean_prep.py --work-id 7 [--from 1 --to 50]   # 切窗
.venv/bin/python .claude/skills/clean/scripts/clean_detect.py --work-id 7 [--win 1]          # M3 探测
.venv/bin/python .claude/skills/clean/scripts/clean_apply.py --work-id 7 --batch X --file … [--dry-run] [--report-md docs/清洗-N-书名.md]

# 收尾收割:高频水印全书规则扫净(LLM 每窗只报样例,重复水印靠种子收割)
.venv/bin/python .claude/skills/clean/scripts/clean_sweep.py --work-id 7 --batch X            # 审计自动种子(重复≥3次且≥20字)
.venv/bin/python .claude/skills/clean/scripts/clean_sweep.py --work-id 4 --batch X --seed "http://m."  # 人工确认的碎水印

# 审查:审计对账
.venv/bin/python .claude/skills/db/scripts/db.py query "SELECT batch, count(*), sum(length(removed_text)) FROM example_clean_log WHERE work_id=7 GROUP BY batch"

⚠️ prep 会覆盖 /tmp/muse-clean// 的窗与 manifest——换范围重切前先归档旧产物目录。

守卫体系(脚本硬闸,LLM 建议 ≠ 必删;全部为放量实测病对症)

  1. 长度界:exact 4–500 字;
  2. 章题保护:不得含/命中所在章章题;
  3. 单章顶:单章累计删除 ≤ max(章长 20%, 120 字)——绝对下限救短章(百字残章按比例删不了任何垃圾);
  4. 行级垃圾特征:exact 每一行必须命中通用垃圾词(ps头/感谢/求票/微信公众号/域名符号/盗版占位语…不含书内专名)或书名水印豁免(孤行=本书名、行含《本书名》);无特征行拆行跳过(宁漏删不误删——实拦「广告+被截断正文」粘连 3 处);
  5. 水印裁剪:删除段含明确水印模式(百镀一下/一秒记住…免费阅读)且水印前有前缀时只删水印——防「正文行尾粘水印」误删正文头(实测修复 1 例 3 字误删)。

匹配三级:精确命中 → 空白弹性(M3 折叠 \n\n\n→\n\n)→ 邻章 ±1 容错(长窗内章号偏移;fix 轮还能二次收割邻章重复水印)。三级全失败 → 拒绝。收尾规则:被删 ps 段的前置星号分隔线孤悬章尾则连带清除;被清洗章空行归一。每次删除一行审计(原文/理由/模型/批次),源 txt 永远不动(可整书重导回滚)。

P2 全语料实测(2026-07-13 收口)

  • 8 书 ≈3,300 万字 ≈340 窗;M3 中文 ≈0.58 token/字,总输入 ~20M token;10 万字窗 in≈5.9 万 token、耗时 10–25s;
  • 总删除 1,685 段 / 约 6.1 万字(机破星河 2.4 万最脏、机战无限 1.9 万次之);误删实测 1 例 3 字(已修复+守卫补上);
  • 已知残留:作者疲劳话(无通用特征)、「重贴章题+(第N更 求月票)」嵌正文行变体(高风险规则,待拍)、感言/请假条整章(结构性存在,段落清洗不动章)。