`PyMuPDF4LLM`:提取PDF数据的神器
2024/11/16 3:03:45
本文主要是介绍`PyMuPDF4LLM`:提取PDF数据的神器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这个工具包使用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) 系统。我将对上述所有工具的输出进行比较分析。
如果觉得有帮助,可以留言或鼓掌哦👏❤️🙏
- https://pypi.org/project/pymupdf4llm/ (点击这里)
- 访问这篇文章,了解有关pymupdf4llm的介绍
这篇关于`PyMuPDF4LLM`:提取PDF数据的神器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南