原文地址:advanced-rag-02-unveiling-pdf-parsing
2024 年 2 月 3 日
对于RAG,从文档中提取信息是一个不可避免的场景。确保从源头提取内容的有效性对于提高最终输出的质量至关重要。重要的是不要低估这个过程。在实现RAG时,解析过程中的信息提取不佳可能导致对PDF文件中包含的信息的理解和利用受到限制。
Parsing过程在RAG中的位置如图1所示:
图1:通过过程在RAG中的位置(红框)。
在实际工作中,非结构化数据要比结构化数据丰富得多。如果这些海量的数据不能被解析,它们的巨大价值就无法实现。在非结构化数据中,PDF文档占多数。有效地处理PDF文档还可以极大地帮助管理其他类型的非结构化文档
本文主要介绍解析PDF文件的方法。它提供了有效解析PDF文档和提取尽可能多的有用信息的算法和建议。
解析PDF的挑战
PDF文档是非结构化文档的代表,但是,从PDF文档中提取信息是一个具有挑战性的过程。
与其说PDF是一种数据格式,不如将其描述为打印指令的集合更为准确。PDF文件由一系列指令组成,这些指令指示PDF阅读器或打印机在屏幕或纸张上显示符号的位置和方式。这与HTML和docx等文件格式形成对比,后者使用<p>
、<w:p>、<table>
和 <w:tbl>
>来组织不同的逻辑结构,如图2所示:
图2:Html与PDF。
解析PDF文档的挑战在于准确地提取整个页面的布局,并将内容(包括表格、标题、段落和图像)翻译成文档的文本表示形式。该过程涉及处理文本提取、图像识别和表中行-列关系的混淆中的不准确性。
如何解析PDF文档
- 基于规则的方法:根据文件的组织特征确定每个部分的风格和内容。然而,这种方法不是很通用,因为pdf有许多类型和布局,因此不可能用预定义的规则覆盖它们。
- 基于深度学习模型的方法:如目前流行的结合物体检测和OCR模型的解决方案。
- 基于多模态大模型传递复杂结构或提取pdf中的关键信息。
基于规则的方法
最具代表性的工具之一是pypdf,它是一种广泛使用的基于规则的解析器。它是Langchain和LlamaIndex中解析PDF文件的标准方法。
下面是尝试使用pypdf解析“(Attention Is All You Need)”论文的第6页。原始页面如图3所示。
图3:“Attention Is All You Need”论文的原始第6页。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 1 |