本文来源公众号“码科智能”,仅用于学术分享,侵权删,干货满满。
原文链接:为什么它是从PDF中解析数据的最佳工具?PDF文件解析新选择,构建LLM 大模型数据基础

支持复杂PDF解析的工具PyMuPDF
我们希望有一个易于安装又尽可能简单易用的工具,可以将任何PDF文件解析成机器和LLM可读的markdown格式,无论PDF有多复杂(包括带有文本/表格/图片的文档),并保存在本地文件系统中。
但老实说:并非所有 PDF 提取工具都能胜任上述任务。我们都知道处理 PDF 时的情况,尤其是当这些 PDF 是密集的研究论文或包含表格、图像和元数据的文档时,一些常规的PDF解析工具直接GG了。直到我发现了 PyMuPDF4LLM — 一个很快成为我处理 PDF 所有内容的首选工具。

支持从非结构化文档中提取表格
1. 我们在实际工作中都面临的PDF困境?
”想象一下:你正在从事一个项目,该项目涉及针对特定领域的任务(例如,法律文件或科学论文)微调 LLM。您需要在保持结构的同时提取文本,提取一些表格,并获取高质量的图像以进行模型训练。听起来很简单,对吧?
但使用大多数 PDF 工具,您要么得到丢失上下文的乱码文本,要么更糟糕的是,图像更像是“低质量”而不是有用的数据。甚至有些工具完全错过表格或弄乱了单词对齐。
这就是 PyMuPDF4LLM 的用武之地。它灵活、快速,几乎可以处理任何数据提取任务。无论您是在构建基于 LLM 的应用程序,还是只需要准备数据以进行微调,此工具都能满足您的需求。
2. 为什么PyMuPDF4LLM在LLM任务中效果如此好?
多功能 Markdown 提取 :无论提取基本文本还是对其进行结构化以进行微调,PyMuPDF4LLM 都以易于阅读的 Markdown 格式提供所有内容。它快速、高效,并确保所有内容(文本、图像、表格和元数据)都以 LLM 可以直接使用的格式捕获。
应用灵活性 : 不仅适合文本提取。还可以按页提取数据,将其保存为 RAG 任务所需的格式,或直接将其管道传输到 LlamaIndex(用于嵌入和文档搜索)等框架中。

综合提取 :这个工具不仅仅是抓取纯文本,它还提供图像提取、逐字分块 、 表格提取等。支持图像和矢量图形提取(以及在 MD 文本中包含参考资料)。
3. 如何提取精确的数据及使用用例?
首先使用 pip 安装
pip install pymupdf4llm
用例 1:基本 Markdown 提取
在这个例子中,使用 PyMuPDF4LLM 将研究论文的内容提取成 Markdown 格式,可以提取文本,包括标题、列表和其他格式。为什么选择 Markdown?它非常适合微调模型,因为它保留了结构和格式,这对于从 LLM 生成连贯的响应至关重要。

代码如下:
import pymupdf4llm# Extract PDF content as Markdownmd_text = pymupdf4llm.to_markdown("input.pdf")print(md_text[:500]) # Print first 500 characters
用例 2:提取特定页面
可以准确定位要提取的页面,从而节省时间和资源。此功能在处理大量文档时特别有用。例如,提取特定的章节或章节可以很容易地只使用最相关的信息来训练 LLM。
import pymupdf4llm# Extract only pages 10 and 11md_text = pymupdf4llm.to_markdown("bengio03a.pdf", pages=[10, 11])print(md_text[:500]) # Print first 500 characters
用例 3:将 Markdown 保存到文件
将提取的数据存储在 Markdown 中可以轻松协作或审查,尤其是在为 LLM 微调准备数据时。保存的灵活性使其非常适合以增量方式构建数据集。
import pymupdf4llmllama_reader = pymupdf4llm.LlamaMarkdownReader()llama_docs = llama_reader.load_data("bengio03a.pdf")print(f"Number of LlamaIndex documents: {len(llama_docs)}")print(f"Content of first document: {llama_docs[0].text[:500]}")
用例 4:图像和表格提取
当处理包含大量视觉数据的技术文档或报告时,这是完美的选择,即使对于高分辨率图像也能很好地工作。另外表格通常包含关键数据,尤其是在技术文档中,PyMuPDF4LLM 确保这些数据被准确提取,为下游分析做好准备。

代码如下:
import pymupdf4llmimport jsonmd_text_images = pymupdf4llm.to_markdown(doc="bengio03a.pdf",pages=[1, 11],page_chunks=True,write_images=True,image_path="images",image_format="jpg",dpi=200)print(md_text_images[0]['images']) # Print image information from the first chunkmd_text_tables = pymupdf4llm.to_markdown(doc="bengio03a.pdf",pages=[12], # Specify pages containing tables)print(md_text_tables)
在多个项目中广泛使用 PyMuPDF4LLM 之后,我可以自信地说它是用于 LLM 任务的最通用和最可靠的 PDF 数据提取工具。无论您是在构建 RAG 系统、微调 LLM,还是只需要一个可靠的PDF 提取工具,都可以尝试一下 PyMuPDF4LLM。它精简、高效,而且根据我的经验,它就是有效的。
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

18万+

被折叠的 条评论
为什么被折叠?



