我们希望有一个易于安装又尽可能简单易用的工具,可以将任何PDF文件解析成机器和LLM可读的markdown格式,无论PDF有多复杂(包括带有文本/表格/图片的文档),并保存在本地文件系统中。
支持从非结构化文档中提取表格
1. 我们在实际工作中都面临的PDF困境?
ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);">”想象一下:你正在从事一个项目,该项目涉及针对特定领域的任务(例如,法律文件或科学论文)微调 LLM。您需要在保持结构的同时提取文本,提取一些表格,并获取高质量的图像以进行模型训练。听起来很简单,对吧?ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);">但使用大多数 PDF 工具,您要么得到丢失上下文的乱码文本,要么更糟糕的是,图像更像是“低质量”而不是有用的数据。甚至有些工具完全错过表格或弄乱了单词对齐。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);">这就是 PyMuPDF4LLM 的用武之地。它灵活、快速,几乎可以处理任何数据提取任务。无论您是在构建基于 LLM 的应用程序,还是只需要准备数据以进行微调,此工具都能满足您的需求。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;text-align: justify;font-size: 15px;-webkit-tap-highlight-color: transparent;outline: 0px;color: rgb(0, 82, 255);letter-spacing: 0.034em;">2. 为什么PyMuPDF4LLM在LLM任务中效果如此好?
3. 如何提取精确的数据及使用用例?
pipinstallpymupdf4llm
importpymupdf4llm#ExtractPDFcontentasMarkdownmd_text=pymupdf4llm.to_markdown("input.pdf")print(md_text[:500])#Printfirst500charactersimportpymupdf4llm#Extractonlypages10and11md_text=pymupdf4llm.to_markdown("bengio03a.pdf",pages=[10,11])print(md_text[:500])#Printfirst500charactersimportpymupdf4llmllama_reader=pymupdf4llm.LlamaMarkdownReader()llama_docs=llama_reader.load_data("bengio03a.pdf")print(f"NumberofLlamaIndexdocuments:{len(llama_docs)}")print(f"Contentoffirstdocument:{llama_docs[0].text[:500]}")当处理包含大量视觉数据的技术文档或报告时,这是完美的选择,即使对于高分辨率图像也能很好地工作。另外表格通常包含关键数据,尤其是在技术文档中,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)
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |