# Devlog · P1c 调查：三个实验都证伪了"门松绑/结构启发式"路线

> 日期：2026-06-09 · 状态：⛔ P1c 简化路线全部净负/无效，已回退；committed P1b 是确定性前沿
> 承接 [P1b](2026-06-09-p1b-cluster-attraction.md) · 计划 [cluster-table-recognizer-rust.md](../plans/cluster-table-recognizer-rust.md) §8

## 目标

按计划 §8 P1c：用结构校验替代 P1b 的内容启发式门（数值/≥3列），以在保精度下放开非数值/2 列表，逼近 ODL 覆盖。

## 三个实验（全部数据驱动、可证伪、已回退）

| # | 假设 | 实测（compare_odl LTR） | 结论 |
|---|---|---|---|
| 1 | 列**对齐**门（cells 共边）替代数值门，放开 ncols≥2 | NID 0.650/MHS 0.580/TEDS 0.045（基线 0.651/0.584/0.052）| **净负**——2305-pg9、normal_4pages 误判复活（散文片段也对齐）|
| 2 | 列**分离**门（列 x-extent 不重叠）替代数值门，ncols≥2 | NID 0.648/TEDS 0.045 | **净负**——同样误判复活 |
| 3 | `pickCompactRows` 行节律裁掉吸附的图注尾行（INTER_TABLE_GAP 1.8×）| 聚合不变 0.651/0.584/0.052 | **无效**——图注紧贴表格（正常行距），非大间隙 |

## 根因（为什么简化 P1c 不奏效）

1. **残留误判是"2 列对齐结构"**：页眉（`Table Structure Recognition | 9`）、图注、CJK 编号散文——它们**几何上就是 2 列对齐**，通过任何几何门（对齐/分离）。区分它们要**内容/语义**信号（数值、长度），即 P1b 现用的门。连**完整** veraPDF 结构管线（列簇 + min-gap 合并 + postprocess bail）也救不了：它们会形成 2 列簇 == 2 header → 不 bail → 仍判为表。

2. **结构缺陷需内容/神经信号**，非行节律可解：
   - 2203 表 3 把**图注**"Table 3: …"吸成表行——图注紧贴表格（正常行距），行节律裁不掉；要靠"数值列里出现文本"的类型一致性或"Table N:"前缀识别。
   - 2203 表 2 是**多级表头**（TEDS×Simple/Complex/All）结构错乱——属 Docling TableFormer 神经领域。

## 结论

- **committed P1b 是确定性表格检出的实际前沿**：内容门（数值+≥3列）正好卡在精度/召回拐点；任何放松都把 2 列对齐误判放回来。
- 计划 §8 的 P1c-1/2（结构校验替代内容门）**前提不成立**——结构校验无法区分本语料的残留误判（2 列对齐散文/页眉/图注），故不实现。
- **剩余表格质量 gap = 多级表头 + 图注吸附 + CJK 版面**，皆属**神经/版面模型领域**（roadmap N3 enhancer 边界），非确定性可达。
- 速度/文本/阅读顺序/标题已追平确定性同类；表格**检出**已到 Docling 量级（2203 我方4/Docling6）。

## 建议

把表格维度**收在 P1b**（已并 main，零回归、找到真实宽数值表）。下一步价值更高的是 **N2 服务化**或 **N3 真实 enhancer 边界**（多级表头/扫描件/CJK 版面按页升级），而非继续在确定性表格上加启发式。计划 §8 P1c 行已据此标注。
