Python 最快的 PDF 读取工具。

01
概述
PyMuPDF4LLM是一个全新的便利库,以提升PyMuPDF在RAG/LLM解决方案方面的表现,让RAG的典型操作变得更加迅速。
它能够在Python环境下轻松地从PDF及其他类型的文件中提取信息。同时这个库具备以下特点:
  • 安装过程简单快捷
  • 使用起来极为方便
  • 为人工智能社区提供他们所需的RAG与LLM的精确API支持

图片

02

PyMuPDF4LLM特征

PyMuPDF4LLM 基于经过验证的 PyMuPDF 构建,并在后台使用该库来实现以下功能:
  • 支持多栏页面
  • 支持图像和矢量图形的提取(并在MD文本中包含引用)
  • 支持页面分块输出
  • 直接支持以 LlamaIndex 文档格式输出
 
多栏页面
文本提取功能已优化,能够轻松应对多栏排版的文档,例如“报纸”风格的布局。同时,生成的Markdown文件将精确反映原始文档的阅读顺序。

图片

图片支持
PyMuPDF4LLM在请求写入图片时,还会同时输出图像文件以及Markdown。
import pymupdf4llmoutput = pymupdf4llm.to_markdown("input.pdf", write_images=True)
生成的输出将生成一份Markdown格式的文本文件,其中包含了文档中所有可能发现的图像的引用。这些图像将被保存在您执行Python脚本的同一目录下,并且Markdown文件会按照正确的图像引用语法,逻辑性地指向这些图像。

页面分块 

如果请求页面分块(page_chunks),可以获取到带有丰富语义信息的输出。

import pymupdf4llmoutput = pymupdf4llm.to_markdown("input.pdf", page_chunks=True)

这会提供文档每一页的字典对象列表,遵循以下结构:

  • metadata — 包含文档元数据的字典。
  • toc_items — 指向页面的目录项列表。
  • tables — 该页面上的表格列表。
  • images — 该页面上的图像列表。
  • graphics — 该页面上的矢量图形矩形列表。
  • text — 页面内容,以Markdown文本形式。
通过这种方式,页面分块能够为您的LLM输入提供更结构化的结果。

LlamaIndex 文档格式输出

PyMuPDF4LLM实现了与LlamaIndex的无缝对接,具体细节如下:

import pymupdf4llmllama_reader = pymupdf4llm.LlamaMarkdownReader()llama_docs = llama_reader.load_data("input.pdf")

03

支持文档格式

PyMuPDF4LLM 支持以下文件类型进行文本提取:

图片

  • 此包利用PyMuPDF将文档页面转换为Markdown格式文本。
  • 它能够识别标准文本和表格,确保它们按照正确的阅读顺序排列,然后统一转换为符合GitHub标准的Markdown文本。
  • 标题行通过字体大小区分,并在前面加上一个或多个#号作为标题标记。
  • 加粗、斜体、等宽文本以及代码块均能被准确识别,并按照相应的格式进行转换。有序列表和无序列表也遵循相同的处理逻辑。
  • 默认情况下,会对文档的所有页面进行处理。如果需要,您也可以通过提供一个从0开始的页码列表来指定要处理的页面子集。

图片

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/88164.html

Like (0)
guozi的头像guozi
Previous 2024年6月3日 下午4:01
Next 2024年6月3日 下午4:03

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注