https://codeyuan.blog.csdn.net/article/details/144315141
在当前大模型(LLM)和自然语言处理(NLP)应用快速发展的背景下,如何高效地将 PDF 等非结构化文档转换为结构化数据,成为了构建高质量语料库和训练数据的关键步骤。本文将深入对比两款在该领域表现突出的开源工具:Marker 和 MinerU,帮助开发者和研究人员根据自身需求选择合适的工具。
项目概览
Marker
- 项目地址:https://github.com/VikParuchuri/marker
- 开发者:Vik Paruchuri
- 核心功能:
- 支持将 PDF、EPUB、MOBI 等文档快速转换为 Markdown 或 JSON 格式。
- 多语言支持,优化处理书籍和科研论文。
- 自动去除页眉、页脚等冗余信息,保留文档结构。
- 支持表格、代码块识别与格式化,提取图像并保存。
- 大部分公式可转换为 LaTeX 格式。
- 支持 GPU、CPU 和 MPS,支持并行处理。
- 内置 OCR 功能(默认使用 Surya 引擎,可切换为 OCRmyPDF)。
MinerU
- 项目地址:https://github.com/opendatalab/MinerU
- 开发者:OpenDataLab(上海人工智能实验室)
- 核心功能:
- 一站式高质量数据提取工具,支持 PDF、网页、电子书等多种格式。
- 集成先进的文档解析模型,支持复杂布局解析(多栏、图像、表格、公式等)。
- 内置 OCR,支持 84 种语言的识别。
- 支持多种输出格式:Markdown、JSON、LaTeX、HTML 等。
- 提供可视化结果,便于验证和调试。
功能对比
功能项 | Marker | MinerU |
---|---|---|
输入格式 | PDF、EPUB、MOBI 等 | PDF、网页、EPUB、MOBI、DOCX 等 |
输出格式 | Markdown、JSON、HTML | Markdown、JSON、LaTeX、HTML 等 |
结构化提取 | 支持段落、标题、列表等基本结构 | 支持段落、标题、列表、表格、图像、公式等复杂结构 |
OCR 支持 | 支持,默认使用 Surya,可选 OCRmyPDF | 支持,内置 OCR,支持 84 种语言 |
多栏布局 | 基本支持 | 强支持,适用于复杂多栏布局 |
公式识别 | 支持,转换为 LaTeX | 支持,自动识别并转换为 LaTeX |
表格识别 | 支持,格式化为 Markdown 或 HTML | 强支持,自动转换为 LaTeX 或 HTML |
图像提取 | 支持图像提取与保存 | 支持图像提取,附带图像描述功能 |
可视化工具 | 无 | 支持可视化布局和内容,便于验证输出 |
多语言支持 | 支持多语言,优化处理英语文档 | 支持 84 种语言,包括中、英、法、德、日等 |
处理速度 | 快,约 0.63 秒/页 | 较快,取决于文档复杂度与硬件配置 |
并行处理 | 支持 GPU 并行处理 | 支持 GPU 加速与多线程 |
资源占用 | GPU 内存约 4.1GB | GPU 内存需求高,建议 16GB 以上 |
适用场景 | 结构简单的文档,如技术手册、报告等 | 结构复杂的文档,如论文、科技文献、扫描文档等 |
开源协议 | GPL-3.0 | AGPL-3.0 |
性能对比
Marker
- 速度:每页处理时间约 0.63 秒,显著快于 Nougat 的 2.6 秒。
- 准确性:在非 arXiv 文档中,平均得分为 0.61,高于 Nougat 的 0.40。
- 资源使用:在 A6000 GPU 上的峰值内存使用约为 4.1GB。
MinerU
- 性能依赖:取决于文档复杂度和硬件配置,推荐使用高性能 GPU(16GB 以上)以达到最佳效果。
技术架构对比
Marker
- 语言:Python
- 依赖:
- 使用 PyMuPDF 进行 PDF 解析。
- 自定义文本提取和结构分析算法。
- 特点:
- 轻量级,易于部署。
- 适合快速集成到现有系统中。
MinerU
- 语言:Python
- 依赖:
- 集成 LayoutLMv3、YOLOv8、UniMERNet、PaddleOCR 等模型。
- 特点:
- 功能强大,支持复杂文档处理。
- 提供多种输出格式与可视化工具。
适用场景建议
- Marker:适合处理结构相对简单、需快速批量转换的文档,如技术手册、项目报告等。
- MinerU:适用于需要高精度、复杂结构提取的文档处理任务,如科研论文、学术书籍、扫描文献等。
总结
Marker 和 MinerU 各具优势,选择时应结合具体需求:
- 若需快速部署、追求效率,建议选择 Marker。
- 若需处理结构复杂的文档、支持多语言和高精度提取,建议选择 MinerU。