RAG 场景中复杂 PDF 解析工具对比:PyMuPDF、Nougat 与 TextIn
在 AI 领域,高效处理 PDF 文档是提升知识管理效率的关键。随着检索增强生成(RAG)技术的普及,从朴素 RAG 到高级 RAG,再到 GraphRAG 的快速演进,如微软的 GraphRAG 和 LightRAG 等框架不断涌现。这些框架提升了 RAG 的精度,但大多不支持 PDF 格式,而企业内部却存在大量 PDF 文档。因此,将这些资料有效整合进内部知识库成为技术挑战。
然而,各种开源 PDF 解析和商用 PDF 解析工具到底性能怎么样?是否能够精确地处理好一直被诟病的图表转换问题?最近新出的论文《A Comparative Study of PDF Parsing Tools Across Diverse Document Categories》评测了 10 种流行的 PDF 解析工具。
我们使用 Google NotebookLLM 对该论文进行分析,它推荐适用性更强的 PDF 解析器 PyMuPDF 和更适用于论文解析的 Nougat。本文在此基础上,加入商业 PDF 解析工具 TextIn(通用文档解析器)和国内某商用产商的文档解析器,并以该论文作为样本,探索它们在文本提取、表格检测、图像提取、易用性中的真实表现。
注:
- 当前多模态嵌入模型已经出现,准确提取图像也是重要的因素之一,RAG 未来的发展应该不仅仅是文本,也应包括图像。
- 文本识别和段落完整性,采用大模型进行综合评价,而图表处理则使用肉眼直接对比。
1. 安装与使用
1.1 PyMuPDF
PyMuPDF 是一个高性能的 Python 库,用于从 PDF(以及其他)文档中进行数据提取、分析、转换和操作。它支持快速处理 PDF 文件,提供了灵活的接口来提取文本、图像、表格等内容,并且可以进行页面操作、格式转换等多种功能,广泛应用于文档处理、自然语言处理(NLP)任务及数据分析等领域。为了输出 Markdown,这里需要使用它的另外一个版本 PyMuPDF4LLM。API 很简单,非常容易集成到 RAG 应用流程。
使用方法:
pip install pymupdf4llm
import pymupdf4llm
import pathlib
md_text = pymupdf4llm.to_markdown("/path/to/your/document.pdf")
pathlib.Path("output.md").write_bytes(md_text.encode())
1.2 TextIn
TextIn 平台提供智能文档处理服务。在平台注册后,即可领取免费测试额度。打开 TextIn 的通用文档解析工作台,点击左侧上传文件即可。
速度非常快,几乎瞬间转换完成,并且可以逐个段落点击进行高亮对比,如果发现错误也可以手工进行修正,这一点能极大提升文档转换和校正的效率。校正完成后,点击右下角的导出结果按钮即可导出 markdown 文件。
除此之外,TextIn 也支持像 PyMuPDF 一样通过 API 调用。在平台获取 Token 之后,按照如下同步代码,即可转换 PDF 为 Markdown。
# 读取文件内容
file_path = '/path/to/your/document.pdf'
with open(file_path, 'rb') as fp:
pdf = fp.read()
# 初始化 TextIn
app_id = 'YOUR_APP_ID'
app_secret = 'YOUR_SECRET_CODE'
# 发送请求
url = "https://api.textin.com/ai/service/v1/pdf_to_markdown"
headers = {
: app_id,
: app_secret
}
resp = requests.post(url, data=pdf, headers=headers)
result = resp.json()
(, , encoding=) fw:
json.dump(result, fw, indent=, ensure_ascii=)














