8ac4f1dd12
- 仓库由 govdoc-md-cleaner 更名为 mdpolish,更新 README、AGENTS、CLAUDE 及 reference 中的仓库名;冻结的 design 与带日期 scratch 保留旧名 - 冻结 0002:可组合清洗组件与流水线(check/transform、单轮修改加最终复查) - 新增 0003 草稿:第一版可执行核心架构,待评审 - 新增 HTML 表格清洗专题调研(2026-08-21)
74 lines
6.1 KiB
Markdown
74 lines
6.1 KiB
Markdown
# ClinDB-ReviewBench 清洗目标(第一版)
|
||
|
||
> 性质:reference——本项目清洗范围的权威查询事实。
|
||
> 权威关系:本文只定义 ClinDB-ReviewBench 第一版"洗什么、不洗什么";清洗语义的方案比较与批准记录
|
||
> 属于 `research-wiki/design/`(尚未建立),实现后的运行方式属于 `explanation/` 与 `guides/`。
|
||
> 依据:`research-wiki/scratch/data-5papers-cleaning-audit-2026-08-21.md`(问题编号 A–H 沿用该审计)。
|
||
|
||
## 1. 项目定位
|
||
|
||
ClinDB-ReviewBench 是师姐的论文清洗项目。`data/` 下当前 5 份 DOI 命名的论文 Markdown
|
||
(JAMA、EJHF、Statistics in Medicine/arXiv、Springer/arXiv、Disaster Med Public Health Preparedness)
|
||
是它的首批输入,未来会继续扩充同源转换产物。
|
||
|
||
本仓库(mdpolish)为该项目的数据提供清洗能力;ClinDB-ReviewBench 通过 profile
|
||
表达论文场景的规则组合,不把论文专属规则写进通用核心。
|
||
|
||
## 2. 第一版清洗目标
|
||
|
||
第一版只做"全自动、规则确定、可安全执行"的问题(审计第一档,共 9 类)。
|
||
判定标准是三条同时满足:模式可用确定规则描述;不依赖对正文语义的理解;改错可以从 diff 直接看出。
|
||
|
||
| # | 问题(审计编号) | 规则要点 | 触发范围(本轮实测) |
|
||
|---|---|---|---|
|
||
| 1 | HTML 实体双重转义(D2) | `&gt;`→`>`、`&lt;`→`<`、`&amp;`→`&`,还原一层;幂等 | dmp L27/L33 共 23 处、ejhf L143 共 8 处,全部在 `<table>` 行内 |
|
||
| 2 | arXiv 边栏戳(H1) | 整行匹配 `^arXiv:\d{4}\.\d+v\d+ \[[\w.-]+\] \d{1,2} \w{3} \d{4}$` 才删除;编号条目内的 "arXiv preprint arXiv:…" 不在行首、不受影响 | sim L1、springer L18;springer L143/L152 是合法参考文献,必须不误删 |
|
||
| 3 | Word 审阅批注(B2) | 以 `Commented [xx]:` 开头的行及其批注正文整块删除 | jama L155–157 共 2 处 |
|
||
| 4 | 手稿行号(B1) | 仅剥离**单调递增序列**的行首 `^\d{1,3} ` 与标题内 `^#{1,6} \d{1,3} `;序列中断即停并标记待审,防止误伤正文数字(如 "35 pediatric experts") | jama 128 行正文 + 6 个标题(L127/149/151/165/193/195) |
|
||
| 5 | 跑动页眉(C4) | 同一文本行原样重复 ≥2 次(且非正文引用对象)判为页眉,删除并把被切断的上下文段落接回 | dmp L73/L191("MSOFA Score for Critical Care Triage"),L71→L75 句子被切断 |
|
||
| 6 | 单行 HTML 表格展开(D1) | 无 rowspan/colspan 的表转多行 GFM;含合并属性的表保留 HTML 但按 `<tr>` 换行缩进;内容一字不改 | 全部 9 个表:dmp 7、ejhf 1、springer 1 |
|
||
| 7 | 跨页断词(E2) | 行尾连字符 + 下一行首小写字母 → 合并;仅在拼出的词能通过英文词表校验时执行,否则保留原样并标记 | dmp L125/127(thresh-olds)、sim L87/89(possi-bly)、L217/219(cre-ated) |
|
||
| 8 | 参考文献分隔统一(G3) | `^\d+\. ` 条目之间统一一个空行 | dmp refs 19–33、springer refs 9–19(连续堆叠段) |
|
||
| 9 | 图片断链校验(H3,仅校验) | 检查 `../images/*.jpg` 引用的文件是否存在,输出断链报告;不移动、不复制、不改写任何图片 | 全部 8 处引用(dmp 1、ejhf 1、sim 2、springer 4) |
|
||
|
||
第 9 项是只读校验:它修复不了任何东西,输出的是"哪些文档的图片资产已损坏"清单。
|
||
|
||
## 3. 明确不洗(第一版非目标)
|
||
|
||
以下问题已确认存在但**不在**第一版范围内,避免实施时范围蔓延:
|
||
|
||
- **内容级缺失(A1–A4)**:截断、表格整体缺失、图转表格、句子丢失。清洗无法恢复内容,
|
||
处置方式(重新转换 / 标记 / 人工补录)由项目负责人决定,不由清洗管线代劳。
|
||
- **修订语义(B3)**:"defined identified by as" 等修订残留词对,哪个词是定稿词需对照定稿版判断。
|
||
- **占位符与坏日期(B4/B5)**:等待定稿填充,清洗只可检测。
|
||
- **乱码修复(C3/E1)**:泰文标题 `## ่วง`、`ينDS Hospital`,需要人工对照 PDF 替换。
|
||
- **表格结构修复(D3–D5)**:空单元格、错误合并行、OCR 表头错字,需人工对照原文。
|
||
- **空行断句合并(E3)**、**层级重建(C1)**、**标题合并(C2)**、**孤行公式编号(F1)**、
|
||
**公式空格与纠错(F2–F4)**、**上标风格统一(G1)**、**数字格式(G2)**:属于第二档
|
||
"自动检测+人工确认",等第一档验证后再立项。
|
||
- **封面页(H2)**:ejhf L1–11 的仓库封面区第一版不删——它是整块连续的正文区,删除逻辑
|
||
与页眉类噪声不同,归入后续批次。
|
||
- **一切内容改写**:原文写作瑕疵、欧式千分位、拼写(含 "Conounder")不属于转换噪声,永不由清洗工具修改。
|
||
|
||
## 4. 输入输出边界
|
||
|
||
- 输入:`data/<转换结果目录>/markdowns/*.md`,原文件只读;
|
||
- 输出:清洗结果写入独立输出位置(具体目录待 design 批准后确定),不回写、不覆盖原文件;
|
||
- 图片资产只校验存在性,不复制进仓库、不修改路径(路径改写是后续批次的独立决策);
|
||
- 每处修改必须可追踪(规则编号 + 原文/改后对照),保证审计和回滚。
|
||
|
||
## 5. 验收口径(第一版)
|
||
|
||
- 上述 9 类问题在本轮 5 份文件上的触发处全部按规则处理,处理数与审计报告的实测数字一致;
|
||
- 5 份文件中未被任何规则命中的正文零变更——除表中列出的触发处外不得有任何其他 diff;
|
||
- 幂等性:同一输入清洗两次,第二次产出与第一次完全一致;
|
||
- 规则 2(arXiv 戳)在 springer 上的验收必须包含反向用例:L143/L152 参考文献原文保留;
|
||
- 规则 4(行号)验收必须包含反向用例:正文中的 "35 pediatric experts"、"10 sites"、"4 continents"
|
||
等数字开头/含数字短语不受影响。
|
||
|
||
## 6. 与审计报告的编号对应
|
||
|
||
本文的 9 类规则对应 `scratch/data-5papers-cleaning-audit-2026-08-21.md` 的决策清单行:
|
||
D2、H1、B2、B1、C4、D1、E2、G3、H3。该审计是 scratch 材料,本文引用其编号仅为便于追溯,
|
||
权威以本文为准。
|