在企业 RAG 项目中,有一个经常被低估的事实:输入的数据质量决定了系统效果的上限,而大量企业知识以 PDF 形式存在。 PDF 本质上是为打印和显示设计的格式,它记录的是“哪个字符出现在页面的哪个坐标”,而不是“这是一个标题、这是一段正文、这是一张表格”。把 PDF 还原为结构清晰的文本,比大多数人想象的要难。

常见问题清单

1. 阅读顺序错乱

双栏或多栏排版的论文、报告,如果简单按行提取文本,左右两栏的内容会被交错拼接,变成无法理解的句子。

2. 表格结构丢失

表格被提取成一串没有分隔的文字,行列关系完全丢失。例如财务报表中的数字与对应的科目、年份脱节,模型只能瞎猜。

3. 页眉页脚和页码混入正文

每页重复出现的公司名称、文档标题、页码插在正文中间,打断句子,也会在检索时制造噪声。

4. 扫描件没有文字层

扫描得到的 PDF 本质是图片,普通文本提取工具什么也拿不到,需要 OCR,相关技术见文档智能与 OCR。

5. 跨页断裂

一个段落或一张表格跨越两页,被切成两个不相关的部分。

6. 图表信息丢失

流程图、柱状图、示意图中的信息完全无法通过文本提取获得。

7. 特殊字符与公式

数学公式、化学式、特殊符号可能变成乱码,或者连字、断词导致词语被拆开。

分类处理策略

不同类型的文档适合不同的处理方式,不要指望一种工具解决所有问题。

文字型、排版简单的文档

使用常规的 PDF 文本提取工具即可,重点做好页眉页脚过滤和段落合并。

排版复杂的文档

使用具备版面分析能力的解析工具,它们能识别标题、段落、表格、图片等区域,并按正确的阅读顺序输出,部分工具可以直接输出 Markdown 格式,保留标题层级。

扫描件

先经过 OCR,再进行版面分析。对于质量较差的扫描件,识别准确率会明显下降,需要抽样人工校验。

表格密集的文档

表格要单独识别和处理,转换为 Markdown 表格或结构化数据。对于复杂的合并单元格表格,可以考虑用视觉语言模型直接读取表格图片并输出结构化结果。

图表

用视觉语言模型为图表生成文字描述,与正文一起入库;或者把图表本身作为可检索对象,参见多模态 RAG。

表格入库的技巧

  • 小表格整体作为一个检索块,不要拆开;
  • 大表格按行分组,每组都附带表头,确保每个块独立可读;
  • 为表格生成一段自然语言摘要,描述表格的主题和关键结论,提高被检索到的概率;
  • 数值型数据考虑另存为结构化表,需要精确计算时让模型通过查询工具获取,而不是从文本中读取。

更多切分细节可参考 RAG 文档切分策略。

建立解析质量检查

解析环节出错往往是“静默”的:系统不会报错,只是答案悄悄变差。建议:

  1. 抽样人工检查:每类文档随机抽取若干页,对比原文与解析结果;
  2. 自动规则检查:检测乱码比例、异常短的段落、表格行列数是否一致;
  3. 端到端测试:针对表格和图表中的信息设计专门的测试问题,确认能被正确回答;
  4. 保留原文链接:在回答中附上原始文档页码,方便用户核对。

小结

PDF 解析是 RAG 数据流水线中最脏最累、却最影响效果的环节。按文档类型选择处理方式,单独对待表格和图表,建立解析质量检查,往往比更换更强的模型带来更大的效果提升。