# Docling 文档结构分块：章节标题、文本覆盖与来源引用

Docling 文档结构分块按本页输入、步骤与检查复现。Docling 实际解析正文完整，但 2.1 Totals 与 3. Delivery 被标为 list_item，原始 chunks 缺少对应 headings。已按原 PDF 人工补核章节上下文，审核版通过；原始模型结构未改动。

## 1. 准备有层级的说明书
source.pdf 包含三个一级任务与 Validation 下两个子项；expected.json 固定五段正文与标题。

## 2. 按官方参数准备独立环境
转换并运行 HierarchicalChunker 后保留 document.json、result.md 与 chunks.json。本次实际把 Totals 和 Delivery 判成 list_item；结构分块会沿用这种错误分类，正文完整不代表章节正确。

## 3. 先解析再分块
run-docling.py 先生成 document.json，然后对该文档运行 HierarchicalChunker，保存 chunks.json。
```sh
# 与本页保存的 Fast 实测一致
python3 run-docling.py --fast
```

## 4. 检查标题与文档引用
比较实际 chunks 的 headings 与 PDF 章节。原始 Delivery 正文错误归在 2.2 Missing data 下；review-chunks.py 用人工核对的 self_ref→章节映射另存 reviewed-chunks.json，不改模型原始文档。

## 5. 检查全文覆盖
审核脚本保留原文本、文档 self_ref 和页码。check-output.py 读取 document.json 逐一解引用，检查五段正文与全部章节；原始 chunks 缺少章节会失败，审核版通过。

## 6. 读取文件检查而非只看截图
同时保留原始失败与人工审核成功记录。章节误判需对照原文处理，不能根据模型猜新标题或仅靠全文关键词验收。Docling 实际解析正文完整，但 2.1 Totals 与 3. Delivery 被标为 list_item，原始 chunks 缺少对应 headings。已按原 PDF 人工补核章节上下文，审核版通过；原始模型结构未改动。
```sh
python3 check-output.py chunks.json
python3 review-chunks.py
python3 check-output.py reviewed-chunks.json
```

## 7. 保存来源与错误样本
保留 source.pdf/source.png、原始 JSON、软件版本和人工核对记录。自动结构检查只验证本教材约定，仍需检查布局与语义。