这个工具包使用PyMuPDF,将PDF页面转换成Markdown格式的文本。它会检测标准文本和表格,并按正确的阅读顺序整理,最后一起转换成与GitHub兼容的Markdown格式文本。
默认情况下,所有文档页面都会被处理。如果需要的话,可以通过指定一组从0开始的页面编号来指定特定的页面。
功能简介:pymupdf4llm.to_markdown("input.pdf", write_images=True)
。默认情况下,write_images
为 False
。"input.pdf-pno-index.扩展名"
的图片文件,存储在您选择的文件夹中。扩展名
可以是 PyMuPDF 支持的图片格式(例如 "png"
或 "jpg"
),其中 pno
是 0 基的页码编号,index
是序列号。dpi
来选择所需的分辨率,默认为 150
。force_text=False
更改此行为,使文本仅作为图片的一部分出现。支持分页处理:不再返回整个文档的大字符串,而是生成一个字典列表,每个字典对应一个页面。指定 data = pymupdf4llm.to_markdown("input.pdf", page_chunks=True)
。例如,data[0]
将包含第一个页面的字典,其中包含该页面的文本内容和部分元数据。
!pip install pymupdf4llm # 安装这个用于机器学习的PyMuPDF库
如果需要,此命令会自动安装PyMuPDF。
基础 Markdown (标记语言) 提取# 导入 pymupdf4llm 模块,用于将 PDF 转换为 Markdown import pymupdf4llm # 把 "foo.pdf" 转换成 Markdown 格式,并保存在 md_text 变量里 md_text = pymupdf4llm.to_markdown("foo.pdf")保存 Markdown 内容
# 现在操作 Markdown 文本,比如保存为 UTF8 编码的文件 import pathlib pathlib.Path("output.md").write_bytes(md_text.encode()) print("Markdown 已保存到 output.md")只提取特定的页面
md_text_pages = pymupdf4llm.to_markdown("patient_data_analysis.pdf", pages=[0]) print(md_text_pages)图片提取
md_text_images = pymupdf4llm.to_markdown( doc="patient_data_analysis.pdf", page_chunks=True, write_images=True, image_path="图片路径", image_format="图片格式", dpi="DPI" )数据分块与元数据提取
md_text_chunks = pymupdf4llm.to_markdown( doc="patient_data_analysis.pdf", pages=[0,1], page_chunks=True ) 打印md_text_chunks的第二个元素。 print(md_text_chunks[1])表格抽取
md_text_tables = pymupdf4llm.to_markdown( doc="foo.pdf" # 含有表格的 PDF 文件 ) print(md_text_tables)逐字提取
md_text_words = pymupdf4llm.to_markdown( doc="patient_data_analysis.pdf", pages=[0, 1], page_chunks=True, # 分页块 write_images=True, image_path="images", image_format="png", dpi=300, # 设置图片的分辨率 extract_words=True # 将文档转换为Markdown格式,同时提取图片和单词 ) # 打印第一个页面的前20个单词: print(md_text_words[0]['words'][:20])将数据提取为LlamaIndex文档
在LLM工作中,将PDF转换为兼容LlamaIndex的文档格式是一项重要任务。PyMuPDF4LLM简化了这一转换过程。
import pymupdf4llm llama_reader = pymupdf4llm.LlamaMarkdownReader() llama_docs = llama_reader.load_data("foo.pdf") print(f"LlamaIndex 文档数: {len(llama_docs)}") print(f"第一个文档的内容如下: {llama_docs[0].text[:500]}")
对于需要快速提取Markdown文本并且希望格式良好的情况,pymupdf4llm似乎是一个非常好的选择。
解析 PDF 的其他选项可以使用 marker-pdf、PyPDF2、PyMuPDF、pdfminer.six、Camelot、Tabula、Unstructured 和 Llama Parse 检查,这些工具可用于增强检索生成 (RAG) 系统。我将对上述所有工具的输出进行比较分析。
如果觉得有帮助,可以留言或鼓掌哦👏❤️🙏