MinerU
PDF转化为机器可读格式的工具
项目简介
MinerU是一款将PDF转化为机器可读格式的工具 (如markdown、json),可以很方便地抽取为任意格式。
项目地址:
https://github.com/opendatalab/MinerU/tree/master
主要功能
- 删除页眉、页脚、脚注、页码等元素,保持语义连贯
- 对多栏输出符合人类阅读顺序的文本
- 保留原文档的结构,包括标题、段落、列表等
- 提取图像、图片标题、表格、表格标题
- 自动识别文档中的公式并将公式转换成latex
- 自动识别文档中的表格并将表格转换成latex
- 乱码PDF自动检测并启用OCR
- 支持CPU和GPU环境
- 支持windows/linux/mac平台
由于本人使用win11, 32G内存,睿频3.7G,显存只有6G,使用CPU快速体验。我将146个页面的教学指南转为markdown超1个小时。
最后结果:
看上去还不错。
使用步骤
1. 安装magic-pdf
Anaconda 创建虚拟环境,最新版本国内镜像源同步可能会有延迟,请耐心等待。
bash
conda create -n MinerU python=3.10
conda activate MinerU
pip install magic-pdf[full]==0.7.0b1 --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 下载模型权重文件
我是直接在E盘运行git,拉到E:\PDF-Extract-Kit
注意:最后这个目录有11个多G
bash
git lfs install # 安装 Git 大文件存储插件 (Git LFS)
git lfs clone https://huggingface.co/wanderkid/PDF-Extract-Kit # 从 Hugging Face 下载 PDF-Extract-Kit 模型
模型下载后请务必检查模型文件是否下载完整,请检查目录下的模型文件大小与网页上描述是否一致,如果可以的话用certutil校验证一下。不校验应该没有问题。
3. 拷贝配置文件并进行配置
将项目拉到E盘
bash
git https://github.com/opendatalab/MinerU.git
在MinerU当前目录下可以获得magic-pdf.template.json配置模版文件,执行以下命令将配置文件拷贝到【你的用户】目录下,否则程序将无法运行。例如:以下命令,将magic-pdf.template.json 复制到"C:\Users\你的用户名"下,并重命名为magic-pdf.json。
bash
# PowerShell 中执行
cp magic-pdf.template.json C:\Users\你的用户名\magic-pdf.json
编辑magic-pdf.json文件,设置models目录,请正确配置模型权重文件所在目录的【绝对路径】,否则会因为找不到模型文件而导致程序无法运行。windows系统中此路径应包含盘符,且需把路径中所有的"\"
替换为"/"
,否则会因为转义原因导致json文件语法错误。
例如:模型放在E:/PDF-Extract-Kit/models,则model-dir的值应为"E:/PDF-Extract-Kit/models"
json
{
"bucket_info":{
"bucket-name-1":["ak", "sk", "endpoint"],
"bucket-name-2":["ak", "sk", "endpoint"]
},
"models-dir":"E:/PDF-Extract-Kit/models",
"device-mode":"cpu",
"table-config": {
"is_table_recog_enable": false, //表格识别默认关闭,如果需要可以true
"max_time": 400
}
}
接下来运行magic-pdf,这个可执行文件在MinerU虚拟环境的scripts下,运行magic-pdf --help可以查看帮助
shell
magic-pdf --help
Usage: magic-pdf [OPTIONS]
Options:
-v, --version display the version and exit
-p, --path PATH local pdf filepath or directory [required]
-o, --output-dir TEXT output local directory
-m, --method [ocr|txt|auto] the method for parsing pdf.
ocr: using ocr technique to extract information from pdf,
txt: suitable for the text-based pdf only and outperform ocr,
auto: automatically choose the best method for parsing pdf
from ocr and txt.
without method specified, auto will be used by default.
--help Show this message and exit.
## show version
magic-pdf -v
## command line example
magic-pdf -p {some_pdf} -o {some_output_dir} -m auto
## 其中 {some_pdf} 可以是单个pdf文件,也可以是一个包含多个pdf文件的目录。 运行完命令后输出的结果会保存在{some_output_dir}目录下,
例如:执行以下命令,将当前scripts目录下的demo.pdf 自动选择解析方式,输出到e:\pdf_totxt_out
cd D:\ProgramData\Anaconda3\envs\MinerU\scripts>
.\magic-pdf.exe -p .\demo.pdf -o e:\pdf_totxt_out -m auto
在本文中,我们探讨了使用 MinerU 项目将 PDF 文件转换为机器可读格式的有效方法。尽管由于电脑配置较低,转换过程可能会耗费较长时间,但该工具在解析效果方面表现良好,能够有效地提取信息并转换为实用的 Markdown 格式。这种转换方式不仅提升了文本的可读性,还为后续的数据处理与分析提供了便利。借助 MinerU,我们可以更轻松地从 PDF 文档中提取关键内容,从而大大增强了信息获取的效率。