文档解析是AI落地最难的一公里:从PDF到结构化数据

📅 2026/9/28 ✍️ 小文 📖 约 1 分钟

合同、报表、扫描件——企业数据八成困在文档里。讲清版面分析、OCR、表格抽取、版面还原的完整流水线和选型思路。

被低估的一公里

企业里 80% 的信息,锁在 PDF、扫描件、图片、Excel 里。想让 AI 用上这些数据,第一关就是把非结构化文档变成结构化数据。

大家往往直奔”用大模型读文档”,结果发现:模型读得懂语义,却读不准版面和数字。文档解析,才是 AI 落地真正的、最难的一公里。

为什么难

  1. 版面复杂:多栏、页眉页脚、图文混排、跨页表格
  2. 扫描质量参差:倾斜、模糊、印章遮挡、手写
  3. 表格是重灾区:合并单元格、无边框、跨页续表
  4. 数字必须精确:金额、日期、编号错一位就是事故
  5. 格式繁多:PDF、图片、Word、Excel 各有一套处理逻辑

难点不在”看懂文字”,而在”还原结构”。

完整流水线

一条靠谱的文档解析流水线,通常分五步:

文件 → 格式识别 → 版面分析 → 文本/表格抽取 → 结构还原 → 校验

第一步:格式识别与预处理

  • 判断是原生 PDF(含文字层)还是扫描件
  • 扫描件需要图像预处理:去噪、纠偏、二值化
  • 页分割:把多页文档拆成单页处理

原生 PDF 优先用文字层,别急着 OCR——直接抽文字比 OCR 准得多。

第二步:版面分析(Layout Analysis)

识别页面上的区域类型:标题、正文、表格、图片、页眉页脚。

这是决定成败的一步。把多栏文档按单栏顺序读,句子会错乱;把表格当正文读,结构全丢。

输出通常是每个区域的边界框 + 类型标签:

{"type": "table", "bbox": [72, 300, 540, 480]}
{"type": "title", "bbox": [72, 60, 400, 90], "level": 1}

第三步:文本与表格抽取

  • 文本:按区域 OCR 或提取文字层
  • 表格:这是硬骨头,要处理边框、无边框、合并单元格

表格抽取主流做法:

  • 结构化识别模型:直接输出表格的 HTML/Markdown 结构
  • 后处理修复:补全合并单元格、对齐行列
  • 关键:表格绝不能按字符切碎,要整体保留结构

第四步:结构还原

把抽出的碎片,还原成有逻辑的文档结构:

  • 按阅读顺序排列区域(注意多栏的正确顺序)
  • 重建层级(标题—小节—段落)
  • 表格转成 Markdown/JSON
  • 保留页码、来源等元数据

输出成 Markdown 是最实用的格式——既能给模型读,又能人审。

第五步:校验与兜底

  • 数字校验:金额、日期做格式与范围检查
  • 完整性校验:页数、表行数是否对得上
  • 低置信度标记:OCR 置信度低的部分标出来转人工
  • 关键字段二次确认:涉及金额的字段,必要时走规则或人工

自动化越高,兜底越重要。

技术选型

需求方案方向
原生 PDF 抽文字直接用解析库,无需 OCR
通用扫描件版面分析 + OCR 模型
复杂表格专用表格识别模型
高精度关键字段大模型辅助 + 人工复核
大批量归档流水线自动化 + 抽样质检

不要迷信单一方案:通用大模型适合理解语义,专用模型适合精确抽取,两者常需配合。

常见陷阱

  1. 跳过版面分析:多栏文档读成一锅粥
  2. 表格切碎:行列关系丢失,数据失去意义
  3. 无视数字精度:模型”看起来对”的结果里藏着小错
  4. 忽略阅读顺序:跨栏、跨页内容顺序错乱
  5. 没有置信度机制:低质量抽取直接进下游,污染整个系统

落地清单

  • 是否区分原生 PDF 与扫描件分别处理?
  • 是否做了版面分析(含多栏处理)?
  • 表格是否整体保留结构?
  • 是否保留页码、来源等元数据?
  • 关键数字是否有校验与兜底?
  • 是否有低置信度标记转人工?
  • 是否有抽样质检机制?

结语

文档解析不性感,但它是所有文档类 AI 应用的地基。RAG、合同审查、财报分析、发票识别——上游解析错了,下游全错。与其在检索和提示上反复折腾,不如回头把这一公里走扎实。结构还原得准,后面的模型才能发挥真正的价值。

📤 分享到