戚序本(前八十回)结构蒸馏萃取 · 操作手册
版本说明
| 版本 | 日期 | 变更 | 署名 |
|---|---|---|---|
| 1.3.0 | 2026-10-05 | 自我优化(运营沉淀):收编 scripts/validate_jsonld.py(JSON-LD 八项机器校验器,v1.4 实测 7/8,抓出 B-05 未同步 P1);新增 references/normalization-recipes.md(四大归一化配方:LCMapString/自举字形归一/多区段章头定位/JSON-LD 语义陷阱);记录 BUG-20261005-02(多区段文本章头重出陷阱)并写入归一化防御纪律 |
咸水纪事(南通)文化实验室 |
| 1.2.1 | 2026-10-05 | 注册表分家:huixiaoben 改标「仁者国学汇评四色版(回目程高系/判词虎兕)」;新增 huixiaoben_wu(吴铭恩汇校本,甲戌/庚辰系回目/判词虎兔+校记,BookDNA 2014);两汇校本互异回 [5,7,8,18,25,67,80] 实证;目录区定位 bug 修复经验入册(正文章头取第 2 次匹配+单调递增自校验) |
咸水纪事(南通)文化实验室 |
| 1.2.0 | 2026-10-05 | 升维脂批本全本体系:新增蒸馏对象注册表(戚序本/庚辰本/脂评汇校本)与跨本对位模式(模式四);distill_structure.py 增 --source/--desc 多本子参数;收编 OCR 归一化器 normalize_ocr_text.py(修复 BUG-20261005-01,三型章头版式兼容) |
咸水纪事(南通)文化实验室 |
| 1.1.0 | 2026-10-05 | 触发词六组整理(核心/五维框架/判词系统/结构层/数据层/衔接);frontmatter 补署名与版本元数据;description 增补 NLP 四表与 OCR 全文语境 | 咸水纪事(南通)文化实验室 |
| 1.0.0 | 2026-10-04 | 初版:七类结构产物+distill_structure.py+NLP 四表数据层(fuse_nlp_baseline.py)+判词/基线/工作流三 references |
咸水纪事(南通)文化实验室 |
> 归属:咸水纪事(南通)文化实验室(吴梦达「咸水纪事」工程 · 红学数字化方向),余西学派红学 Skill 网络成员之一(honglou-suyuan / zhipi-gene-library / yuxi-reconstruction / wu-forensic-method / shidianguji-extract / qixuben-structure-distill)。
本技能固化「吴梦达红楼梦研究」中前八十回结构基线档案的生成工作流,是余西学派红学四 Skill 网络(honglou-suyuan 时空底座/zhipi-gene-library 脂批基因/yuxi-reconstruction 后二十八回重构/wu-forensic-method 吴氏刑侦法)在前八十回侧的配套支点。
《红楼梦》一百零八回=戚序本前八十回(原典)+ 盐署本后二十八回(1775 封箱重构)。前八十回不是"被续写的空白",而是一架早已预制好命运节点的精密装置——回目、五卷节奏、第5回判词、人物弧光起点、支系勾连,全部在八十回内闭合或半闭合。本技能的任务,是把这架装置的"结构骨架"从底本文字中蒸馏出来,形成一份可被盐署本后二十八回直接调用的基线档案。
蒸馏萃取的七类产物(见下「核心能力」)严格对齐达哥指定的文学性五维评估框架(叙事流/情节单元/人物弧光/伏笔闭环/支系勾连)——前者是"骨架产出",后者是"评估口径",二者一一映射,下游 yuxi 的收口二审与 mdnes-9d 的九维评分均以本档案为前八十回基准面。
输入来源与衔接约定(强制)
底本来源=复用 shidianguji-extract,不重复造轮子。该 Skill 产出「正文黑 #1A1A1A/双行夹批咖 #8B5A2B/回前评与回末总评深红 #953735/边栏灰 #666666」四色分层 DOCX(识典 SWX0005,戚序系统完本八十回)。
三大约束(承 shidianguji-extract 铁律):
- 异体字归一 P0:戚序本数码文本大量使用扩展 B/C/D 区异体字(寳→宝 3,385 次、𥚃→里 2,842 次、煕→熙 等)。凡处理底本文字,必须先过异体字映射表(完整 115 组见 references/qixuben-baseline-conventions.md 与 _mdnes/var_map.py),否则人物统计全面失真。
- 批语归属铁律:回前总评/回末总评=立松轩(非戚蓼生、非脂砚斋);双行夹批=脂砚斋系统真脂批。分层命名须为「立松軒·總評層」「脂硯齋·雙行夾批層」。戚蓼生仅撰《石頭記序》一篇,不预批语。
- 后四十回无双行夹批=乙支立松轩(戚序)系统固有形态(庚辰本回41·63仍有夹批),非删削;第67回三层皆空属实(配补回)。
Agent 归一化契约(本技能消费格式): 调用方(Agent)须先用 shidianguji 取出底本,并将四色分层转译为下列显式标记写入归一化 MD(脚本据此做确定性切分):
- ## 第N回 <回目全文> —— 章回头(回次+回目上下句)
- 【回前总评】…【/回前总评】 —— 立松轩回前评
- 【回末总评】…【/回末总评】 —— 立松轩回末评
- 其余(回目之后、总评标记之外)= 正文(黑)
若未带标记,脚本回退到「叙事起首标记法」自动切分:正文以「話説/却説/且説/這年/單表/如今」起首,其前的段落判为回前评候选,其后的评论段判为回末评候选——此回退路径须标「候选·待复核」。
模式〇·OCR 原文归一化(v1.2 新增):真实 OCR 底本(【第N回】 标记)先过 scripts/normalize_ocr_text.py 再蒸馏。该器兼容三种章头版式——A型(标记后直排回目)/B型(「第N回:」重出行后接回目,占多数)/C型(无重出行,须 --fallback 目验兜底并注记)。戚序本 OCR 底本实测 80/80 回目锁定(第48/67回走 FALLBACK)。
多区段文本防御(BUG-20261005-02,强制):整书 txt 常含「目录区+正文区+序跋/后记区」多区段,每回章头行会重出 2 次——取首次匹配必命中目录区(吴铭恩汇校竖排版实测第 3-79 回全中)。切分纪律三件套:① 章头全匹配分桶,正文区取第 2 次匹配;② 单调递增自校验(正文区位置逐回递增,混入目录区必 FAIL);③ 末回按末套语截断(防卷入刘铨福跋/戚蓼生序/后记区)。切分后必做三查:章头计数 80/80+单调性+末段目验。配方代码见 references/normalization-recipes.md 配方三。
蒸馏对象注册表(脂批本全本体系)
本技能不限于戚序本:凡脂批本系统底本,登记注册表后即可蒸馏,产物文件名以 source_id 为前缀分本存放,互不覆盖。
| source_id | 本子 | 存回 | 批语形态 | 输入来源 | 产物命名 |
|---|---|---|---|---|---|
qixuben(默认) |
戚序本 | 80 回全 | 立松轩总评层+脂砚斋夹批层(后40回夹批清洗残片) | shidianguji-extract 四色 DOCX/OCR 全文归一化 | qixuben_结构基线档案.md 等 |
gengchenben |
庚辰本 | 存 78 回(64/67 缺,己卯配补) | 脂砚斋夹批为主(回41·63 仍有夹批,与戚序系统对照关键) | 庚辰本影印/录文归一化 | gengchenben_结构基线档案.md 等 |
huixiaoben |
仁者国学汇评四色版 | 80 回 | 汇评层(简体;回目从程高系,元春判词作「虎兕」) | 四色 DOCX run 级颜色分流提取 | huixiaoben_结构基线档案.md 等 |
huixiaoben_wu |
吴铭恩汇校本 | 80 回 | 眉批带 ◇ 标记+双行夹批以空格嵌入正文(txt 层不可靠剥离,如实保留);底本甲戌 1-8/13-16/25-28 回+列藏 64/67 回+庚辰其余 | 《红楼梦脂评汇校本·繁体竖排版》txt(BookDNA 2014)→ build_wu_huixiao.py 归一化(正文章头取第 2 次匹配=跳目录区) |
huixiaoben_wu_结构基线档案.md 等 |
- 两个汇校本领严格分家(2026-10-05 实证):
huixiaoben(仁者国学四色版,回目程高系/判词虎兕)≠huixiaoben_wu(吴铭恩汇校,回目甲戌/庚辰系/判词虎兔+校记「己本、楊本作虎兕」)。两本回目互异回 [5,7,8,18,25,67,80]。不得混称「汇校本」。 - 扩展其他本子(己卯本、甲戌本、蒙府本等):在
scripts/distill_structure.py顶部SOURCES注册表加一行即可,--source <id> [--desc <来源说明>]直接调用。 - 庚辰本特例:64/67 回缺文,骨架表自然缺行(77 行而非 80 行),总览行「收录回数」如实记录;判词区抽取不受影响。
- 汇校本特例:汇评层为诸本批语并置,回前/回末总评归属判定须逐条标注来源本(不得整体归立松轩),异体字按戚序本映射表归一。
NLP 四表数据层(Level1 已就位集成)
本技能除「模式一·从底本文本蒸馏」外,另支持直接消费已算好的 NLP 专项 CSV(吴梦达团队 2026-09-27 批次),跳过原始文本重解析,在其上叠加七类结构产物——四张表=Level1 数据层,本档案=Level2 结构层。
四表字段定义、字符集、跨表映射见 references/nlp-data-dictionary.md(数据契约):
| 表 | 粒度 | 主映射产物 | 字符集 |
|---|---|---|---|
| 冲突密度.csv | 逐回(80 行) | 五卷结构/情节单元 | 简体 |
| 伏笔预制节点.csv | 节点(19) | 第5回判词伏笔闭环 | 繁体 |
| 人物出场矩阵.csv | 人物×回(45 有效) | 人物弧光/支系勾连 | 繁体 |
| 命运时间线.csv | 事件级(1854 标记) | 人物弧光(命运轨迹) | 繁体(含生僻字) |
核心集成脚本:
- scripts/fuse_nlp_baseline.py —— 读取四张 CSV,即时计算并产出 戚序本80回_结构基线档案_NLP融合版.md(五卷结构/冲突峰值 TOP10/判词伏笔闭环收口表/人物弧光 TOP15/支系勾连共现 TOP12/命运收口关键词,全部数字可复现)。
- 用法:python scripts/fuse_nlp_baseline.py(四表须置于 BASE 目录,默认 戚序本_ocr_temp\_nlp\,可改脚本内 BASE)。
实测印证(融合结论):
- 卷二均值密度 4.91 > 卷一 3.98,由密度梯度自然支撑五卷边界(40/41),不必纯硬编码。
- 第5回锚定 13/19 ≈ 68% 判词伏笔;外溢锚点仅第1/13/21/22回。
- 第80回密度 9.5 = 前80回与盐署本后28回的接缝叙事断点(美香菱屈受贪夫棒)。
- 宝玉为人物共现网络中枢(与贾母/凤/王夫人/宝钗/黛玉均 ≥62 回同现)。
异体归一 P0(强制):冲突密度表用简体,其余三表用繁体——跨表人物对位前须按 qixuben-baseline-conventions.md 的 115 组映射归一,否则统计全面失真。
When to Use
- 用户要生成「戚序本前八十回结构基线档案」(回目体系/五卷节奏/情节单元/人物弧光/判词伏笔/支系勾连/总评结构)。
- 用户要把前八十回的结构骨架对齐到盐署本后二十八回,做 108 回合成前的前八十回基准面。
- 用户要分析某回/某卷在五卷结构中的位置、某人物在前八十回的弧光起点、某判词在八十回内的伏笔布设与收口位置。
- 用户要校验盐署本后二十八回与前八十回的"伏笔闭环/支系勾连"是否对位(须先有本档案作基准)。
- 用户要产出"达哥五维评估框架"所需的前八十回结构性数据(叙事流/情节单元/人物弧光/伏笔闭环/支系勾连)。
- 用户要蒸馏庚辰本/脂评汇校本等其他脂批本的结构基线(
--source gengchenben/huixiaoben),或拿到真实 OCR 全文需要先归一化(模式〇)。 - 用户要做跨本对位:庚辰本 vs 戚序本回目异文、批语形态对照、结构指标差异(模式四)。
- 用户要校验脂批基因库 JSON-LD 数据集(92 条编码等)的自洽性,或核对「说明文档 vs 数据本体」的一致性(模式五)。
核心能力(七类结构产物)
蒸馏萃取产出 七类结构产物,逐类对应五维评估口径:
| # | 结构产物 | 内容 | 对齐五维 |
|---|---|---|---|
| ① | 回目体系 | 八十回回目全录(上下句)、对仗/平仄/意象初判、回目在八卷(戚序本分卷)中的分布 | 叙事流/伏笔闭环 |
| ② | 五卷结构 | 卷一·风月繁华(1–40)+ 卷二·盛极而衰(41–80)的卷内节奏、转捩回、谶语密度 | 叙事流 |
| ③ | 情节单元 | 每回核心情节单元(起—承—转—合)、跨回情节链(如抄检大观园、诗社、刘姥姥三进) | 情节单元 |
| ④ | 人物弧光 | 主要人物在前八十回的弧光起点与半闭合(宝玉/黛玉/宝钗/凤姐/贾母/探春等)、次要人物独立弧光标记 | 人物弧光 |
| ⑤ | 判词伏笔闭环 | 第5回判词系统(正册十二钗+副册香菱+又副册晴雯/袭人+十二支红楼梦曲+收尾飞鸟各投林)在八十回内的布设回与半收口回 | 伏笔闭环 |
| ⑥ | 支系勾连 | 荣国府/宁国府/大观园/外部(贾雨村/刘姥姥/江南)支系在前八十回的密度与交汇节点 | 支系勾连 |
| ⑦ | 回前总批结构 | 立松轩回前评/回末评的覆盖回、评语主题聚类、与脂砚斋夹批的互补关系 | 叙事流/评点学 |
> 第5回判词系统为伏笔闭环的总目录——所有后二十八回要闭合的命运节点,其"预制"都在第5回。本档案须把每条判词在八十回内的"已布设/未布设/半收口"显式标注,作为盐署本收口二审的前八十回基准对照表。判词原文与曲牌锚点见 references/judgment-poems.md。
与下游 Skill 衔接
| 下游 Skill | 本档案提供的衔接点 |
|---|---|
| yuxi-reconstruction(后二十八回) | ① 五卷结构=前八十回两卷,与后二十八回三卷(崩塌序曲/白茫茫/归彼大荒)拼成一百零八回五卷;② 判词伏笔闭环表=后二十八回"收口二审"的前八十回基准;③ 人物弧光起点=后二十八回"人物弧光哲学完成"的前置 |
| honglou-suyuan(二十九阶) | 前八十回生于 1754–1768(甲戌修订稿→庚辰本1760→戚序本1768),本档案的卷节奏为二十九阶"前八十回段"的叙事坐标 |
| zhipi-gene-library(脂批基因) | 立松轩总评层(191条)与脂砚斋夹批层在本档案中分列,供脂批基因库做"真批/系统独有/正文化"归因 |
协作路由:凡涉前八十回结构问题,先调本 Skill 产出基线档案;涉及后二十八回收口 → 转 yuxi-reconstruction;涉及脂批真伪 → 转 zhipi-gene-library;涉及时间轴 → 转 honglou-suyuan。
Execution Logic
模式一:生成前八十回结构基线档案(主交付)
- 取底本:调用
shidianguji-extract取戚序本前八十回四色分层 DOCX → Agent 归一化为带标记 MD(契约见上)。 - 跑脚本:
python scripts/distill_structure.py --in <归一化MD> --out <输出目录>。脚本确定性产出:
-qixuben_结构基线档案.md(七类产物全录,含 80 行骨架表)
-qixuben_结构基线档案.xlsx(可计算数据表:回次/回目/卷/情节单元/人物弧光/伏笔/支系/总评要点/字数)
-qixuben_第5回判词区.md(第5回判词原始区+曲牌锚点定位,供 Agent 对齐references/judgment-poems.md) - Agent 填分析列:脚本只做确定性切分与骨架生成;情节单元/人物弧光/伏笔/支系四列为 Agent 基于叙事理解填写(脚本留空或填"待填"),按
assets/baseline_template.md范式。 - 判词闭环标注:Agent 以
references/judgment-poems.md为基准,逐条判词标注"布设回/半收口回",生成"前八十回判词伏笔对照表"。 - 五维对齐校验:按
references/distillation-workflow.md的"五维映射表"逐项核对,输出前八十回五维结构性结论。
模式二:单回/单卷结构蒸馏
- 指定回次(如「第41回」)或卷(如「卷二」)。
- 脚本抽取该回/卷的回目、总评、正文,Agent 蒸馏该回在五卷结构中的位置、情节单元、人物弧光增量、新增/收口伏笔。
- 输出:单回结构卡(回目+情节单元+人物弧光+伏笔布设/收口+总评要点)。
模式三:与后二十八回合成校验(108回基准面)
- 本档案作"前八十回基准面",与 yuxi 的"后二十八回收口二审"对接。
- 以判词伏笔闭环表为对照,验证后二十八回是否在第5回预制节点上收口(存在性+归属精度)。
- 输出:前八十回—后二十八回伏笔对位总表(预制/收口/错位三项)。
模式四:跨本对位蒸馏(v1.2 新增)
- 分别对注册表内多个本子跑蒸馏(
--source区分),得各本结构基线档案(<source_id>_结构基线档案.md)。 - 跨本对位三层:
- 回目异文对照:逐回比对本子间回目上下句(如庚辰本 vs 戚序本第64/67回配补回目),登记异文并标系统归属;
- 结构指标对照:逐回正文字数/五卷密度/总评覆盖回集合的差异(戚序本后40回总评膨胀 vs 庚辰本夹批持续,为「批注载体接力」提供跨本验证);
- 批语形态对照:总评层/夹批层逐回有无对照表,落在立松轩落款(回41)与夹批断崖(回22/23)两个锚点上核验。 - 输出:
跨本对位表_<本A>_<本B>.md(异文/指标/形态三段),供 honglou-suyuan 谱系定位与「南北传播圈版本分歧」论证调用。
模式五:JSON-LD 数据集机器校验(v1.3 新增)
- 对象:脂批基因库机器可读数据集(如
盐署本V8推导_92条伏笔基因编码_JSON-LD数据集,FuBiGeneCode / RECONSTRUCTION_BLUEPRINT)——声明层(说明文档)与数据层(JSON-LD 本体)的双盲一致性,只有机器校验能兜住。 - 八项校验:C1 完整性(92 条/7 类/seq 连续/无重复码)|C2 回次约束(upstream⊆1-80/downstream⊆81-108)|C3 显式映射计数|C4 chapterMapping×entries 反查|C5 校正同步检查(B-05 类「说明已改、数据未改」矛盾)|C6 断链警报登记|C7 锚批对位|C8 counts 计数。
- 语义陷阱:
mappedToGeneCodes=有映射的锚批条数(12−3 断链=9),非被映射基因码数(多对多 25 唯一码)。 - 用法:
python scripts/validate_jsonld.py --json <数据集> [--out <报告.md>]。v1.4 实测 7/8(C5 FAIL=entries.B-05 未同步校正的真实 P1)。
脚本自检
python scripts/distill_structure.py --selftest 用内置微型样本跑通全管线,无需真实底本即可验证脚本不崩、产物格式正确。
Resources
references/distillation-workflow.md— 蒸馏萃取工作流详解:七类产物定义、五维映射表、Agent 填写范式、诚实标注纪律references/judgment-poems.md— 第5回判词系统完整基准:正册十二钗判词+副册香菱+又副册晴雯/袭人+红楼梦十二曲曲牌与首句+收尾飞鸟各投林,附八十回内布设/半收口锚点提示references/qixuben-baseline-conventions.md— 戚序本特异性约定:八卷八十回分卷、四色分层、立松轩/脂砚斋归属、异体字映射表(P0,115组节选)、后四十回无夹批铁律references/nlp-data-dictionary.md— NLP 四表数据字典(数据层契约):四张专项 CSV 字段定义、字符集、跨表异体归一、七类产物映射、复现命令references/normalization-recipes.md— 归一化配方集(v1.3):LCMapString 繁简归一/自举字形归一(214条映射判据)/多区段章头定位三件套/JSON-LD 语义陷阱,均含现象→根因→方案→代码scripts/distill_structure.py— 确定性切分+骨架生成+第5回判词锚定+MD/XLSX 导出(纯标准库+openpyxl 可选);--source <id>/--desc多本子参数(qixuben/gengchenben/huixiaoben 及扩展)scripts/normalize_ocr_text.py— OCR 原文归一化(模式〇):【第N回】→## 第N回 真回目,三型章头版式兼容,--fallback目验兜底scripts/fuse_nlp_baseline.py— NLP 四表融合生成器:读取四张 CSV 即时计算并产出戚序本80回_结构基线档案_NLP融合版.md(数据级融合引擎)scripts/validate_jsonld.py— JSON-LD 数据集八项机器校验器(模式五,v1.3 收编):--json <数据集> [--out 报告] [--b05-expected 词1 词2];v1.4 数据集实测 7/8 PASS(C5=B-05 未同步 P1,数据层待裁定非校验器缺陷)assets/baseline_template.md— 结构基线档案产出范式模板(七类产物+骨架表+判词对照表+五维结论)
Notes
- 本技能是前八十回结构侧的支点,与 yuxi(后二十八回重构)互补:yuxi 解"后二十八回如何闭合",本技能解"前八十回预制了什么骨架"。
- 蒸馏的可证伪性:任何"判词伏笔"标注都须回底本第5回原文与八十回内文核实;标注为"半收口"者须给出具体回次证据,不得笼统。
- 异体字归一(P0)是统计与切分的前提——脚本内置 115 组映射节选,完整版见
_mdnes/var_map.py(与下游 mdnes-9d 共用)。 - 与 zhipi-gene-library 协同:本档案的"总评结构"层只做覆盖与主题聚类,不做真伪归因;真伪归因归 zhipi。
- 底本切分/繁简归一/异体字处理遇坑先查
references/normalization-recipes.md(配方集),同类问题勿二次踩坑。
学术验证状态说明
本 Skill 产出的"前八十回结构基线档案"基于戚序本(立松轩本,1768)底本与吴梦达团队的结构读法,属研究辅助工具。第5回判词文本为通行定本,结构读法(伏笔布设/半收口)为团队学术假说,尚未见《红楼梦学刊》《明清小说研究》等核心期刊同行评议;使用时须结合传统文献考据交叉验证。