摘要:引言MinerU是一款开源的智能文档解析工具,专注于将PDF等文档高效转换为Markdown和JSON等结构化格式。在当前大语言模型(LLM)蓬勃发展的时代,高质量的结构化数据对于训练和微调LLM至关重要。MinerU通过其强大的智能文档解析能力,不仅可以为L
引言MinerU是一款开源的智能文档解析工具,专注于将PDF等文档高效转换为Markdown和JSON等结构化格式。在当前大语言模型(LLM)蓬勃发展的时代,高质量的结构化数据对于训练和微调LLM至关重要。MinerU通过其强大的智能文档解析能力,不仅可以为LLM提供清晰的训练语料,还能作为AI应用的重要数据预处理工具。与传统PDF处理工具不同,MinerU的智能解析能力涵盖了文本、图片、表格和公式等多模态内容,尤其适用于多语言文档和复杂布局的PDF文件批量处理。本文将重点介绍MinerU的核心特点、环境配置,以及详细的使用教程。
MinerUMinerU在文档解析方面具有以下关键特点:
语义一致性:支持移除页眉、页脚、脚注、页码等内容,确保语义连贯。
人类可读性:输出文本按照人类阅读顺序排列,支持单列、多列及复杂布局。
结构保留:保留原始文档的结构,包括标题、段落、列表等。
多样化内容提取:支持提取图像、图像描述、表格、表格标题和脚注。
公式转换:自动识别文档中的公式并转换为LaTeX格式。
表格转换:自动识别文档中的表格并转换为HTML格式。
OCR功能:自动检测扫描版PDF和乱码PDF,并启用OCR功能。
多语言支持:OCR功能支持84种语言的检测和识别。
多种输出格式:支持多模态和NLP Markdown、按阅读顺序排序的JSON以及丰富的中间格式。
可视化结果:支持布局可视化和跨度可视化,便于高效确认输出质量。
多种运行环境:支持纯CPU环境运行,并支持GPU(cuda)/NPU(CANN)/MPS加速。
跨平台兼容性:兼容Windows、Linux和Mac平台。
系统与硬件要求为了确保MinerU的稳定运行,官网建议在以下环境中部署:
操作系统:Linux(2019年后版本)、Windows 10/11、macOS 11+
内存:至少16GB,推荐32GB以上
存储:至少20GB,推荐使用SSD
Python版本:3.10(请使用conda创建python虚拟环境)
硬件加速支持CPU模式:支持所有现代x86_64或ARM64架构的CPU。
GPU模式:支持NVIDIA显卡(8GB显存及以上),需要安装CUDA 11.8及cuDNN v8.7.0。
NPU模式:支持华为Ascend NPU(Ascend 910b),需要安装CANN 8.0+。
安装步骤这里所列的安装步骤,以我自己的使用环境为例,仅供参考。
1. 创建Python虚拟环境使用conda创建一个独立的Python 3.10虚拟环境:
conda create -n MinerU python=3.10conda activate MinerU
2. 安装MinerU
使用pip安装MinerU及其依赖:
pip install -U "magic-pdf[full]"--extra-index-url https://wheels.myhloli.com3. 下载模型文件
MinerU需要预训练的模型文件来解析PDF内容。以下是下载模型文件的步骤:
a. 安装所需工具:
pip install huggingface_hubb. 下载模型文件的Python脚本:
wget https://github.com/opendatalab/MinerU/raw/master/scripts/download_models_hf.py -O download_models_hf.pyc. 执行下载脚本:
python download_models_hf.py该脚本会自动从Hugging Face下载模型文件,并将其配置到用户目录下的配置文件中。
下载完成后,模型文件的路径会自动更新到用户目录下的magic-pdf.json配置文件中。您可以手动检查配置文件以确认模型路径是否正确。注意,如果只想使用CPU模式,安装到这里就可以了,如果想使用GPU加速,请继续往下看。
4. 使用GPU加速(Colab环境)因为本人的笔记本GPU较为孱弱,所以这里使用Google Colab来演示GPU加速。
在完成前述步骤后,请执行以下步骤:
a. 修改配置文件,将设备从cpu切换为:!sed -i 's|cpu|cuda|g'~/magic-pdf.jsonb. 安装PaddlePaddle的GPU版本(适配CUDA 11.8):
!pip install https://paddle-whl.bj.bcebos.com/stable/cu118/paddlepaddle-gpu/paddlepaddle_gpu-3.0.0b1-cp310-cp310-linux_x86_64.whl5. 验证安装
安装完成后,运行以下命令检查安装是否成功:
MinerU在PDF解析方面的功能强大且灵活,支持文本模式(Text Mode)和OCR模式(OCR Mode),能够根据PDF的内容类型自动选择最佳解析方法。一般有两种方式调用MinerU,一种是基于API的PDF解析,另一种是基于命令行的PDF解析。
基于API的PDF解析MinerU提供了强大的Python API,用户可以通过代码调用其功能。以下是一个解析本地PDF文件的示例:
示例:解析本地PDF文件importosfrommagic_pdf.data.data_reader_writerimportFileBasedDataWriter, FileBasedDataReader
frommagic_pdf.data.datasetimportPymuDocDataset
frommagic_pdf.model.doc_analyze_by_custom_modelimportdoc_analyze
frommagic_pdf.config.enumsimportSupportedPdfParseMethod
# 输入PDF文件路径
pdf_file_name ="example.pdf"
local_image_dir, local_md_dir ="output/images""output"
# 创建输出目录
os.makedirs(local_image_dir, exist_ok=True)
image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir)
# 读取PDF内容
reader = FileBasedDataReader("")
pdf_bytes = reader.read(pdf_file_name)
# 创建数据集实例并进行分类
ds = PymuDocDataset(pdf_bytes)
ifds.classify == SupportedPdfParseMethod.OCR:
infer_result = ds.apply(doc_analyze, ocr=True)
pipe_result = infer_result.pipe_ocr_mode(image_writer)
else:
False)
pipe_result = infer_result.pipe_txt_mode(image_writer)
# 输出Markdown文件
pipe_result.dump_md(md_writer,f"{os.path.splitext(pdf_file_name)[0]}.md", local_image_dir)
结果说明
运行上述代码后,MinerU会生成以下文件:
Markdown文件:包含PDF内容的结构化文本。
图片目录:存储PDF中的图片。
布局可视化PDF:展示PDF的布局解析结果。
基于命令行的PDF解析MinerU的命令行工具(CLI)提供了一种快速解析PDF的方法,适合非开发者用户。以下是常用命令参数及示例:
命令参数magic-pdf --helpUsage: magic-pdf [OPTIONS]
Options:
-p, --path PATH 输入文件路径或目录,支持PDF、PPT、DOC等格式 [必需]
-o, --output-dir PATH 输出目录 [必需]
-m, --method [ocr|txt|auto] 选择解析方法,默认为auto
-l, --lang TEXT 指定OCR语言,支持多语言
-s, --start INTEGER 起始页码
-e, --end INTEGER 结束页码
示例:解析PDF文件magic-pdf -p example.pdf -o output_dir -m auto
执行上述命令后,MinerU会自动选择最佳解析方法并将结果保存到指定的输出目录中。
OCR模式解析对于扫描版PDF或图片形式的PDF,MinerU会自动启用OCR模式。通过指定语言参数(如--lang zh),可以进一步提高OCR的准确性。文档内容输出MinerU支持多种输出格式,包括:
Markdown:适合人类阅读的文本格式,保留文档的结构化信息。
JSON:包含丰富的中间处理结果,便于进一步处理和分析。
其他高级功能MinerU在解析PDF时,还提供以下高级功能:
公式解析:自动将PDF中的公式转换为LaTeX格式,便于科学计算和排版。
表格解析:将表格内容转换为HTML格式,支持复杂表格结构。
可视化结果:生成布局和跨度可视化结果,帮助用户快速验证解析效果。
MinerU的智能PDF解析功能适用于多个领域,以下是三个主要的应用场景及其具体实践:
学术研究文献综述与分析:
批量提取研究论文中的实验数据和结果
自动识别和提取数学公式,转换为LaTeX格式
提取文献引用信息,建立参考文献数据库
数据集构建:
从多篇论文中提取表格数据,构建研究数据集
提取图表及其说明文字,用于对比分析
企业文档管理合同文档处理:
自动提取合同关键条款和数据
将扫描版合同转换为可搜索的电子文档
技术文档转换:
将产品手册转换为在线文档
提取技术规范和参数表
报告自动化:
批量处理财务报表和业务报告
生成结构化的分析报告
教育培训教材资源数字化:
将纸质教材转换为数字课件
提取习题和答案
学习资料管理:
建立知识点索引
生成学习笔记和复习材料
每个应用场景都可以根据具体需求,灵活运用MinerU的文本模式和OCR模式,实现高效的PDF文档处理。
MinerU是一款功能强大且灵活的智能文档解析工具,通过其API和命令行工具,用户可以高效地将PDF转换为结构化数据格式。在AI和大语言模型快速发展的今天,MinerU的价值不仅体现在传统的文档处理领域,更在于其为LLM提供高质量训练数据的能力。通过与大语言模型的深度结合,MinerU可以实现更智能的文档理解和知识提取,为未来的AI应用打开更多可能性。无论是在学术研究还是企业应用中,MinerU都展现出了卓越的性能和广泛的适用性。随着LLM技术的不断进步,MinerU这样的智能文档解析工具将在AI生态系统中扮演越来越重要的角色。
“如需要文中的Colab Notebook做参考,可给我留言。
来源:opendotnet