大模型RAG应用开发之PDF解析工具对比
RAG
一 汇总
| 类型 | 名称 | 地址 | OCR | 提取表格内容 | 保留文本顺序 | 提取图片 | 保存成md格式 | 其他特性 |
|---|---|---|---|---|---|---|---|---|
| 传统PDF解析库 | pymupdf | https://github.com/pymupdf/PyMuPDF | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ● 表格提取<br>● 自定义字体 |
| 传统PDF解析库 | pdfminer | https://github.com/pdfminer/pdfminer.six | ❌ | ❌ | ✔️ | ❌ | ❌ | ● 版面分析 |
| 传统PDF解析库 | pdfplumber | https://github.com/jsvine/pdfplumber | ❌ | ✔️ | ❌ | ❌ | ❌ | ● 表格提取,但存在丢失列的问题 |
| 传统PDF解析库 | pypdf2 | https://github.com/py-pdf/pypdf | ❌ | ❌ | ✔️ | ❌ | ❌ | ● pdf合并与拆分<br>● 添加水印 |
| 基于模型的PDF解析一体库 | llama-parse | https://github.com/run-llama/llama_parse | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ● 付费API每天有免费额度 |
| 基于模型的PDF解析一体库 | open-parse | https://github.com/Filimoa/open-parse | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ● 文本支持保存markdown和html格式<br>●内置表格模型,可自由选择<br>●表格带markdown格式 |
| 基于模型的PDF解析一体库 | deepdoc | https://github.com/infiniflow/ragflow/tree/main/deepdoc | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ● 支持版面分析<br>●表格带html格式 |
| 基于模型的PDF解析一体库 | MinerU | https://github.com/opendatalab/MinerU/tree/master | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ● 文本带markdown格式<br>● 解析保留中间过程,可用于二次调优<br>● 表格提取非常慢,目前效果一般 |
二 总结
- 非扫描件无OCR要求直接使用
pymupdf(fitz)即可,能正确保留双列布局的文本顺序,同时能提取表格和图片,而且表格是以List的格式保留。 - 其余几个传统的PDF解析库倾向于对pdf进行编辑,比如添加水印,增加或者删除页面等。
llama-parse中文文档效果不好,而且还是通过API使用,但是每天有固定的免费额度,可以用于处理扫描件。deepdoc和MinerU是近期开源项目中比较强大的RAG解析工具。deepdoc优势点在于表格效果较好,亲测无边框的表格有大多数效果仍可圈可点,并且保留为html格式,因此允许合并单元格;MinerU优势在于识别的文本带有markdown格式,因此用于RAG切分文档中可以省去不少功夫。
推荐阅读

一文梳理RAG(检索增强生成)的现状与挑战
RAG是指在利用大语言模型回答问题之前,先从外部知识库检索相关信息,然后再让模型根据这些信息进行总结归纳,这样便能确保模型不会胡说八道,并且回答的内容是有所依据的。

Magic-PDF:端到端PDF文档解析神器 构建高质量RAG必备!
Magic-PDF是一个端到端的PDF解析工具,能够用于构建高质量的RAG系统。
