PDF 与表格解析:RAG 数据入库最容易踩的坑与应对方法
在企业 RAG 项目中,有一个经常被低估的事实:输入的数据质量决定了系统效果的上限,而大量企业知识以 PDF 形式存在。 PDF 本质上是为打印和显示设计的格式,它记录的是“哪个字符出现在页面的哪个坐标”,而不是“这是一个标题、这是一段正文、这是一张表格”。把 PDF 还原为结构清晰的文本,比大多数人想象的要难。
常见问题清单
1. 阅读顺序错乱
双栏或多栏排版的论文、报告,如果简单按行提取文本,左右两栏的内容会被交错拼接,变成无法理解的句子。
2. 表格结构丢失
表格被提取成一串没有分隔的文字,行列关系完全丢失。例如财务报表中的数字与对应的科目、年份脱节,模型只能瞎猜。
3. 页眉页脚和页码混入正文
每页重复出现的公司名称、文档标题、页码插在正文中间,打断句子,也会在检索时制造噪声。
4. 扫描件没有文字层
扫描得到的 PDF 本质是图片,普通文本提取工具什么也拿不到,需要 OCR,相关技术见文档智能与 OCR。
5. 跨页断裂
一个段落或一张表格跨越两页,被切成两个不相关的部分。
6. 图表信息丢失
流程图、柱状图、示意图中的信息完全无法通过文本提取获得。
7. 特殊字符与公式
数学公式、化学式、特殊符号可能变成乱码,或者连字、断词导致词语被拆开。
分类处理策略
不同类型的文档适合不同的处理方式,不要指望一种工具解决所有问题。
文字型、排版简单的文档
使用常规的 PDF 文本提取工具即可,重点做好页眉页脚过滤和段落合并。
排版复杂的文档
使用具备版面分析能力的解析工具,它们能识别标题、段落、表格、图片等区域,并按正确的阅读顺序输出,部分工具可以直接输出 Markdown 格式,保留标题层级。
扫描件
先经过 OCR,再进行版面分析。对于质量较差的扫描件,识别准确率会明显下降,需要抽样人工校验。
表格密集的文档
表格要单独识别和处理,转换为 Markdown 表格或结构化数据。对于复杂的合并单元格表格,可以考虑用视觉语言模型直接读取表格图片并输出结构化结果。
图表
用视觉语言模型为图表生成文字描述,与正文一起入库;或者把图表本身作为可检索对象,参见多模态 RAG。
表格入库的技巧
- 小表格整体作为一个检索块,不要拆开;
- 大表格按行分组,每组都附带表头,确保每个块独立可读;
- 为表格生成一段自然语言摘要,描述表格的主题和关键结论,提高被检索到的概率;
- 数值型数据考虑另存为结构化表,需要精确计算时让模型通过查询工具获取,而不是从文本中读取。
更多切分细节可参考 RAG 文档切分策略。
建立解析质量检查
解析环节出错往往是“静默”的:系统不会报错,只是答案悄悄变差。建议:
- 抽样人工检查:每类文档随机抽取若干页,对比原文与解析结果;
- 自动规则检查:检测乱码比例、异常短的段落、表格行列数是否一致;
- 端到端测试:针对表格和图表中的信息设计专门的测试问题,确认能被正确回答;
- 保留原文链接:在回答中附上原始文档页码,方便用户核对。
小结
PDF 解析是 RAG 数据流水线中最脏最累、却最影响效果的环节。按文档类型选择处理方式,单独对待表格和图表,建立解析质量检查,往往比更换更强的模型带来更大的效果提升。