一款一站式、开源、高质量的数据提取工具,支持:PDF 文档、网页和电子书提取

大家好,今天给大家分享的是一款一站式、开源、高质量的数据提取工具MinerU,主要包含以下功能:

  • Magic-PDF PDF 文档提取

  • Magic-Doc 网页与电子书提取

项目介绍

Magic-PDF

简介

Magic-PDF 是一款将 PDF 转化为 markdown 格式的工具。支持转换本地文档或者位于支持 S3 协议对象存储上的文件。

主要功能包含:

  • 自动识别 PDF 文档的语言,并选择合适的语言模型进行处理,提高转换准确率
  • 准确识别并处理 PDF 中的引用、脚注、参考文献等
  • 保留原文档的结构和格式,包括标题、段落、列表等
  • 智能识别各种复杂的表格、图表、代码块等,并将其准确转换为 Markdown 格式
  • 支持多种前端模型输入、公式转换、乱码识别等
  • 支持 CPU 和 GPU 加速,提升转换速度
  • 多平台支持: 兼容 Windows、Linux、Mac 等主流操作系统

复杂布局版面分析

多模态信息转换

数学及超长公式准确解析

项目架构

流程图

Magic-Doc

简介

Magic-Doc 是一款支持将网页或多格式电子书转换为 markdown 格式的工具。

主要功能包含:

  • Web 网页提取,跨模态精准解析图文、表格、公式信息
  • 电子书文献提取,支持 epub,mobi 等多格式文献,文本图片全适配
  • 语言类型鉴定,支持 176 种语言的准确识别

安装使用

Magic-PDF

1. 安装 Magic-PDF

使用 pip 安装完整功能包:

受 pypi 限制,pip 安装的完整功能包仅支持 cpu 推理,建议只用于快速测试解析能力。

如需在生产环境使用 CUDA/MPS 加速请参考使用 CUDA 或 MPS 加速推理

pip install magic-pdf[full-cpu]

❗️ 已收到多起由于镜像源和依赖冲突问题导致安装了错误版本软件包的反馈,请务必安装完成后通过以下命令验证版本是否正确

magic-pdf --version

如版本低于 0.6.x,请提交 issue 进行反馈。

完整功能包依赖 detectron2,该库需要编译安装,如需自行编译,请参考:detectron2 自行编译说明

或是直接使用我们预编译的 whl 包:

❗️ 预编译版本仅支持 64 位系统(windows/linux/macOS)+pyton 3.10 平台;不支持任何 32 位系统和非 mac 的 arm 平台,如系统不支持请自行编译安装。

pip install detectron2 --extra-index-url https://myhloli.github.io/wheels/
2. 下载模型权重文件

详细参考 如何下载模型文件

下载后请将 models 目录移动到空间较大的 ssd 磁盘目录

3. 拷贝配置文件并进行配置

在仓库根目录可以获得 magic-pdf.template.json 配置模版文件

❗️ 务必执行以下命令将配置文件拷贝到用户目录下,否则程序将无法运行

cp magic-pdf.template.json ~/magic-pdf.json

在用户目录中找到 magic-pdf.json 文件并配置"models-dir"为下载模型权重文件中下载的模型权重文件所在目录

❗️ 务必正确配置模型权重文件所在目录,否则会因为找不到模型文件而导致程序无法运行

{
  "models-dir": "/tmp/models"
}
4. 使用 CUDA 或 MPS 加速推理

如您有可用的 Nvidia 显卡或在使用 Apple Silicon 的 Mac,可以使用 CUDA 或 MPS 进行加速

CUDA

需要根据自己的 CUDA 版本安装对应的 pytorch 版本

以下是对应 CUDA 11.8 版本的安装命令,更多信息请参考 Start Locally | PyTorch

pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118

同时需要修改配置文件 magic-pdf.json 中"device-mode"的值

{
  "device-mode":"cuda"
}
MPS

使用 macOS(M 系列芯片设备)可以使用 MPS 进行推理加速

需要修改配置文件 magic-pdf.json 中"device-mode"的值

{
  "device-mode":"mps"
}
5. 通过命令行使用
直接使用
magic-pdf pdf-command --pdf "pdf_path" --inside_model true

程序运行完成后,你可以在"/tmp/magic-pdf"目录下看到生成的 markdown 文件,markdown 目录中可以找到对应的 xxx_model.json 文件

如果您有意对后处理 pipeline 进行二次开发,可以使用命令

magic-pdf pdf-command --pdf "pdf_path" --model "model_json_path"

这样就不需要重跑模型数据,调试起来更方便

更多用法
magic-pdf --help
6. 通过接口调用
本地使用
image_writer = DiskReaderWriter(local_image_dir)
image_dir = str(os.path.basename(local_image_dir))
jso_useful_key = {"_pdf_type": "", "model_list": model_json}
pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer)
pipe.pipe_classify()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
在对象存储上使用
s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint)
image_dir = "s3://img_bucket/"
s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir)
pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN)
jso_useful_key = {"_pdf_type": "", "model_list": model_json}
pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli)
pipe.pipe_classify()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")

Magic-Doc

1. 安装

前置依赖: python3.10

安装依赖

linux/osx

apt-get/yum/brew install libreoffice

windows

安装 libreoffice
添加 "install_dir\LibreOffice\program" to 环境变量 PATH

安装 Magic-Doc

pip install fairy-doc[cpu] # 安装 cpu 版本
或
pip install fairy-doc[gpu] # 安装 gpu 版本
2. 使用示例
# for local file
from magic_doc.docconv import DocConverter, S3Config
converter = DocConverter(s3_config=None)
markdown_content, time_cost = converter.convert("some_doc.pptx", conv_timeout=300)

# for remote file located in aws s3
from magic_doc.docconv import DocConverter, S3Config

s3_config = S3Config(ak='${ak}', sk='${sk}', endpoint='${endpoint}')
converter = DocConverter(s3_config=s3_config)
markdown_content, time_cost = converter.convert("s3://some_bucket/some_doc.pptx", conv_timeout=300)

项目地址

https://github.com/opendatalab/MinerU

一款一站式、开源、高质量的数据提取工具,支持:PDF 文档、网页和电子书提取 - BTool博客 - 在线工具软件,为开发者提供方便

相关推荐
是我知白哒8 分钟前
pdf转换文本:基于python的tesseract
python·pdf·ocr
小奥超人11 小时前
PDF无法打印!怎么办?
windows·经验分享·pdf·办公技巧·pdf加密解密
m0_748241231 天前
ElasticPDF-新国产 PDF 编辑器开发框架(基于 pdf.js Web PDF批注开发,实现高亮多边形橡皮擦历史记录保存注释文字)
前端·pdf·编辑器
ComPDFKit1 天前
开源 JS PDF 库比较
pdf
杨浦老苏1 天前
开源PDF翻译工具PDFMathTranslate
人工智能·docker·ai·pdf·群晖·翻译
LostSpeed1 天前
在福昕(pdf)阅读器中导航到上次阅读页面的方法
pdf
旭久1 天前
SpringBoot的Thymeleaf做一个可自定义合并td的pdf表格
pdf·html·springboot
神色自若2 天前
Net9为PDF文字替换,使用Spire.PDF版本10.12.4.1360
pdf
机器懒得学习2 天前
解析交通事故报告:利用 PDF、AI 与数据标准化技术构建智能分析系统
pdf
合合技术团队3 天前
高效准确的PDF解析工具,赋能企业非结构化数据治理
人工智能·科技·pdf·aigc·文档