一款一站式、开源、高质量的数据提取工具,支持: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, S3Configs3_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博客 - 在线工具软件,为开发者提供方便

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/392777.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABAP+json格式数据转换时参数为空没传值

CALL METHOD /UI2/CL_JSON>SERIALIZE 我们在ABAP传输json格式数据到外围系统时,会用到这个类方法 /UI2/CL_JSON>SERIALIZE CALL METHOD /UI2/CL_JSON>SERIALIZEEXPORTINGDATA LO_DATACOMPRESS XPRETTY_NAME /UI2/CL_JSON>PRETTY_M…

【Linux】网络基础_3

文章目录 十、网络基础5. socket编程socket 常见APIsockaddr结构简单的UDP网络程序 未完待续 十、网络基础 5. socket编程 socket 常见API // 创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服…

tcpdump使用指南

tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。 # 1. 基于IP地址过滤 # 根据源ip进行过滤 $ tcpdump -i eth2 src 192.168.10.100# 根据目标ip进行过滤 $ tcpdump -i eth2 dst 192.16…

江协科技51单片机学习- p33 PWM呼吸灯和直流驱动电机调速

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

还在花大几千定制 AI Agent ?来这里分分钟让你实现 Agent 自由!海量模板任你挑选!

大家好,又见面了,最近很多人都对 AI Agent 感兴趣,有的朋友想花大几千进行 Agent 定制,当时就被我劝住了,我想这不是免费了吗?怎么还花钱呢?纯纯的信息差呀! 同时我也收到了几位伙伴…

VTK8.2.0编译(Qt 5.14.2+VS2017)

VTK8.2.0编译(Qt 5.14.2VS2017) 关于Qt和MSVC的安装,可以参考文章(QtMSVC2017)。 本篇VTK在QtMSVC的配置下的编译。VTK 以8.2.0为例。 一、环境变量的配置 我们打开电脑的环境变量,可以看到没有Qt相关的…

C#串口通信的实现

1、实现代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO.Ports; using System.Linq; using System.Security.Cryptography; using System.Security.Policy; using System.Text…

人工智能时代,程序员如何保持核心竞争力?

在人工智能时代,程序员如何保持核心竞争力? 在今天这个人工智能迅速发展的时代,程序员面临着前所未有的机遇和挑战。随着AIGC(如ChatGPT、MidJourney、Claude等)大语言模型的兴起,以及AI辅助编程工具的普及…

Axure八大优质Web端系统框架模版

在当今数字化转型的浪潮中,Axure作为一款强大的原型设计工具,以其快速、直观和易用的特点,成为了众多设计师和产品经理的首选。本文将详细介绍六套基于Axure制作的智慧系统原型框架模版,包括智慧园区、智慧社区、智慧乡村、智慧驾…

Oracle SQL Developer 连接第三方数据库

首先Oracle SQL Developer除了支持连接Oracle数据库外,还支持连接第三方数据库,包括: Amazon RedshiftHiveIBM DB2MySQLMicrosoft SQL ServerSybase Adaptive ServerPostgreSQLTeradataTimesTen 首先,你需要在菜单Tools > Pr…

C++笔试练习笔记【5】:最小花费爬楼梯(有题目链接) 初识动态规划

文章目录 题目思路代码 动态规划简介**一、什么是动态规划****二、动态规划的应用场景****三、动态规划的基本步骤****四、动态规划的优缺点** 题目 题目链接:https://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e?tpld230&tpld39751&ru/…

IT课程学习搭子

各种IT课程齐全可学,价格你绝对想不到,相比于培训班有以下优势: 1、避免被割韭菜,避免踩坑,避免交智商税,最低的成本学最有价值的课,同时又能达到比培训班更好的效果 2、收徒,带你学…

【Linux课程学习】:对于权限的理解(粘滞位)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 这篇文章主要理解权限的概念,以及如何更改…

KubeVirt虚拟机存储及网络卸载加速解决方案

1. 方案背景 1.1. KubeVirt介绍 随着云计算和容器技术的飞速发展,Kubernetes已成为业界公认的容器编排标准,为用户提供了强大、灵活且可扩展的平台来部署和管理各类应用。然而,在企业的实际应用中,仍有许多传统应用或遗留系统难…

AOP学习

AOP概述 AOP(Aspect Oriented Programming):⾯向切⾯编程,它是⼀种思想,它是对某⼀类事情的集中处理。 什么是SpringAOP? ⽽ AOP 是⼀种思想,⽽ Spring AOP 是⼀个框架,提供了⼀种对 AOP 思…

【Vue3】element-plus中el-tree的递归处理赋值回显问题

由于项目是从0-1开始构建的rbac都需要重新构建对接 所以涉及到了权限管理和菜单管理 整体思路很简单:初始化树 -> 处理 el-tree 回显 -> 递归处理所有层级菜单选中的id 不处理情况下: 只要勾选一个子节点,回来接收到的父节点数据 会…

Java面试题——第三篇(JVM)

1. 什么情况下会发生栈内存溢出 栈是线程私有的,他的生命周期和线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧…

剪映怎么剪辑视频?2024年视频剪辑新手必读指南!

在快节奏的工作里,掌握快速剪辑视频的技巧真的很有用。不管是要做个产品展示、录制培训材料,还是制作社交媒体上的内容,有一款好用的视频剪辑软件,工作效率立马提升好几个档次。咱们今天就先来聊聊剪映怎么剪辑视频?如…

如果忘了Linux密码如何重置?

忘记密码是我们常会遇到的情况之一,无论是在操作系统、网站账户、手机、电子邮件还是其他渠道上。 忘记密码是我们常会遇到的情况之一,无论是在操作系统、网站账户、手机、电子邮件还是其他渠道上。有时候如果密码需要符合特定的复杂性要求,…

哈佛大学单细胞课程|笔记汇总 (三)

哈佛大学单细胞课程|笔记汇总 (一) 哈佛大学单细胞课程|笔记汇总 (二) 听哈佛大神讲怎么做单细胞转录组GSEA分析 (三)Single-cell RNA-seq: Quality control set-up 在生成count矩阵后,我们需…