RAG之PDF文件中多种格局数据解析通常
RAG 检索增强生成由2局部导致:一是离线对异构的数据启动数据工程解决成常识,并存储在常识库中,二是基于用户的提问启动常识库的检索增强。如下图所示:
其中最关键的一个过程是 PDF 格局的文件如何提取成常识,上方具体剖析。
1、PDF 文件中文本数据如何提取?
能够解决文本提取的 Python 库有多个,其中较为出名的包括 pdfminer.six、PyMuPDF、PyPDF2 和pdfplumber。在这些库中,PyMuPDF 因其杰出的文本提取才干而备受推崇。特意是在解决双栏规划等复杂格局的 PDF文件时,PyMuPDF 能够最大水高山保管 PDF 的阅读顺序,这关于确保文本内容的准确性和完整性至关关键。
上方咱们将以双栏规划的 PDF 文件为例,展现经常使用 PyMuPDF 库启动文字提取的成果。
启动文本提取的代码如下所示:
打印的结果如下所示:
2、PDF 文件中表格数据如何提取?
在解决表格提取义务时,camelot 和 tabula 是两个备受推崇的库。它们各自在提取有线表和少线表(即含有较少分隔线的表格)方面展现出了良好的成果。接上去,我将区分以有线表为例,简明引见camelot库的经常使用。
camelot 是一个弱小的 Python 库,专门用于从 PDF 文件中提取表格数据。关于有线表,即表格中蕴含明白分隔线的表格,camelot体现杰出。经过指定 PDF 文件门路和表格所在的页面区域,camelot 能够准确地识别并提取出表格中的数据,比如有线表原始数据:
经常使用 camelot 提取有线表的示例代码如下:
表格数据的打印结果如下所示:
3、扫描 PDF 的文本数据如何提取?
在从扫描的 PDF 文件中提取文本时,经常使用开源的 PaddleOCR,并且用 PPStructure 做版面的剖析。咱们还是以上方的 PDF 文件为例,不过这是 PDF 文件的扫描版。
提取文本的代码如下:
获取的结果如下所示:
图中的左边是依据给出的版面剖析结果画进去的,可以看出对双栏 PDF 做了正确的解析。左边是依据识别进去的文本以及文本的坐标画进去的,可以看出基本上和左边的版面以及内容是分歧的。
原文链接: