介绍
最近发现了一款工具大语言语料处理神器-MinerU, 非常适合在RAG等应用场景中使用, 开源免费
MinerU其中的一个功能是将 PDF 转化为 markdown 格式的工具, 对PDF文档提取的效果目前是市面上效果比较好的, 最新的版本还支持了PDF中表格的识别
MinerU 官方仓库: https://github.com/opendatalab/MinerU
MinerU 版本更新记录
- 2024/11/22 0.10.0发布,通过引入混合OCR文本提取能力,
- 在公式密集、span区域不规范、部分文本使用图像表现等复杂文本分布场景下获得解析效果的显著提升
- 同时具备文本模式内容提取准确、速度更快与OCR模式span/line区域识别更准的双重优势
- 2024/11/15 0.9.3发布,为表格识别功能接入了RapidTable,单表解析速度提升10倍以上,准确率更高,显存占用更低
- 2024/11/06 0.9.2发布,为表格识别功能接入了StructTable-InternVL2-1B模型
- 2024/10/31 0.9.0发布,这是我们进行了大量代码重构的全新版本,解决了众多问题,提升了性能,降低了硬件需求,并提供了更丰富的易用性:
- 重构排序模块代码,使用 layoutreader 进行阅读顺序排序,确保在各种排版下都能实现极高准确率
- 重构段落拼接模块,在跨栏、跨页、跨图、跨表情况下均能实现良好的段落拼接效果
- 重构列表和目录识别功能,极大提升列表块和目录块识别的准确率及对应文本段落的解析效果
- 重构图、表与描述性文本的匹配逻辑,大幅提升 caption 和 footnote 与图表的匹配准确率,并将描述性文本的丢失率降至接近0
- 增加 OCR 的多语言支持,支持 84 种语言的检测与识别,语言支持列表详见 OCR 语言支持列表
- 增加显存回收逻辑及其他显存优化措施,大幅降低显存使用需求。开启除表格加速外的全部加速功能(layout/公式/OCR)的显存需求从16GB降至8GB,开启全部加速功能的显存需求从24GB降至10GB
- 优化配置文件的功能开关,增加独立的公式检测开关,无需公式检测时可大幅提升速度和解析效果
- 集成 PDF-Extract-Kit 1.0
- 加入自研的
doclayout_yolo
模型,在相近解析效果情况下比原方案提速10倍以上,可通过配置文件与layoutlmv3
自由切换 - 公式解析升级至
unimernet 0.2.1
,在提升公式解析准确率的同时,大幅降低显存需求 - 因
PDF-Extract-Kit 1.0
更换仓库,需要重新下载模型,步骤详见 如何下载模型
- 加入自研的
- 2024/09/27 0.8.1发布,修复了一些bug,同时提供了在线demo的本地化部署版本和前端界面
- 2024/09/09 0.8.0发布,支持Dockerfile快速部署,同时上线了huggingface、modelscope demo
- 2024/08/30 0.7.1发布,集成了paddle tablemaster表格识别功能
- 2024/08/09 0.7.0b1发布,简化安装步骤提升易用性,加入表格识别功能
- 2024/08/01 0.6.2b1发布,优化了依赖冲突问题和安装文档
- 2024/07/05 首次开源
装环境相对麻烦, 为此我制作了Windows系统的环境一键整合包, 下面就介绍下这个环境一键包的使用
下载地址
MinerU环境一键整合包下载地址
链接: https://pan.quark.cn/s/f57a7b0f0232
搞不定环境的可以用这个 里面有使用说明文档(在Windows11正常运行, 其他系统未测, 如有问题, 可以留言)
使用
使用很简单, 无需复杂的安装部署, 下载后解压即可使用, 已经包含了模型, 整合了Python单独的环境以及所需的包, 独立不干扰系统环境, 小白也可以用, 也可以用于开发
使用之前需要安装里面的cuda, 安装cuda的教程自行百度, 如果已经安装请忽略
如果之前安装有cuda这个报错的, 可以卸载之前的cuda, 安装里边的cuda11.8版本
解压后即可运行
但要注意: 解压的路径最好不要带中文, 或者带空格的文件夹, 以免导致各种疑难杂症
点击运行Gradio简易版界面.bat
, 运行Gradio简易版界面, 页数限制改成了100000
和 https://www.modelscope.cn/studios/OpenDataLab/MinerU 功能一样
点击Gradio完整版界面.bat, 运行Gradio完整版界面, 把页数限制改成了100000
点击运行web版.bat
运行web网页版
功能和 https://opendatalab.com/OpenSourceTools/Extractor/PDF 一样
文件说明
目录python为嵌入版的环境, 已经安装了所有依赖
想深入使用, 可以配合官方说明文档使用, 下面是一些简要说明
magic-pdf.json
为配置文件, 使用的方式和官方一样
small_ocr.pdf
为测试用pdf文件
app.py
为gradio网页在线版 和 https://www.modelscope.cn/studios/OpenDataLab/MinerU 功能一样
运行方式, 在MinerU目录右键启动cmd, 或者启动cmd切换到MinerU目录, 运行下列命令
./python/python.exe app.py
demo.py
为官方运行示例
运行方式, 在MinerU目录右键启动cmd, 或者启动cmd切换到MinerU目录, 运行下列命令
./python/python.exe demo.py
如果要对Python环境里边的包进行操作的, 将原有的
pip install xxx
换成
./python/python.exe -m pip install xxx
就可以了
扩展使用
命令行使用
官方的命令使用
magic-pdf -p {some_pdf} -o {some_output_dir} -m auto
在MinerU目录右键启动cmd, 或者启动cmd切换到MinerU目录, 运行下列命令
./python/Scripts/magic-pdf.exe -p {some_pdf} -o {some_output_dir} -m auto
例如
./python/Scripts/magic-pdf.exe -p small_ocr.pdf
或者路径填magic-pdf.exe所在的绝对路径, 例如
G:/MinerU/python/Scripts/magic-pdf.exe -p small_ocr.pdf
如果包损坏了, 可以通过下面两个命令进行重新下载更新
./python/python.exe -m pip install -U magic-pdf[full]
./python/python.exe -m pip install -r ./projects/web_demo/requirements.txt
开发使用
在pycharm里环境变量填python/python.exe
所在目录
更新版本
更新命令
./python/python.exe -m pip install --upgrade magic-pdf
更新后需修改文件
python/Lib/site-packages/magic_pdf/libs/config_reader.py
把13-14行红框替换为如下代码
# 获取当前目录
current_dir = os.getcwd()
print("当前目录为: ", current_dir)
# 定义配置文件名常量
CONFIG_FILE_NAME = os.path.join(current_dir, "magic-pdf.json")
print("配置路径为: ", CONFIG_FILE_NAME)
在69行最用红框处插入如下代码
models_dir = os.path.join(current_dir, models_dir)
print(f"模型目录为: {models_dir}")
这样路径才不会报错