LLMs之PDF:MinerU(将PDF文件转换成Markdown和JSON格式)的简介、安装和使用方法、案例应用之详细攻略

news2024/12/24 16:26:48

LLMs之PDF:MinerU(将PDF文件转换成Markdown和JSON格式)的简介、安装和使用方法、案例应用之详细攻略

目录

MinerU的简介

0、日志

1、MinerU 的主要特点

2、已知问题

MinerU 安装和使用方法

1、MinerU的三种体验方式

T1、在线演示

T2、快速CPU演示

T3、GPU 使用

2、命令行使用

3、Python API 使用

MinerU的案例应用

科学文献处理

数据预处理

知识图谱构建

文档摘要

其他文本挖掘任务


MinerU的简介

2024年7月5日,MinerU是一个高质量的开源工具,用于将PDF文件转换成Markdown和JSON格式。它提供了一站式解决方案,能够高精度地提取PDF文档中的各种信息。

MinerU 项目诞生于InternLM的预训练过程中,旨在解决科学文献中的符号转换问题,并为大模型时代的技术发展做出贡献。 它致力于提供高质量的PDF内容提取,目标是将PDF转换为机器可读的格式,例如Markdown和JSON,方便后续处理和应用。 与商业产品相比,MinerU 仍在发展中,如果遇到问题或结果不理想,建议在GitHub issue中提交问题并附上相关的PDF文件。

MinerU是一个功能强大且易于使用的PDF转换工具,它能够高效地将PDF转换为Markdown和JSON格式,并支持多种高级功能,例如公式识别、表格识别和OCR。 虽然还存在一些已知问题,但其不断更新迭代,并积极吸纳社区反馈,未来有望成为一个更加完善和强大的PDF处理工具。

GitHub地址:GitHub - opendatalab/MinerU: A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。

0、日志

2024年11月22日发布0.10.0版本。引入了混合OCR文本提取功能,显著提高了在复杂文本分布场景(如密集公式、不规则跨度区域和图像表示的文本)中的解析性能。结合了文本模式中准确内容提取和更快速度的优势,以及在OCR模式中更精确的跨度/行区域识别。 
2024年11月15日发布0.9.3版本。集成了RapidTable进行表格识别,将单表格解析速度提高了10倍以上,同时准确性更高,GPU内存使用率更低。 
2024年11月6日发布0.9.2版本。集成了StructTable-InternVL2-1B模型以实现表格识别功能。 
2024年10月31日发布0.9.0版本。这是一个主要的新版本,进行了广泛的代码重构,解决了许多问题,提高了性能,降低了硬件要求,并增强了可用性: 重构了排序模块代码,使用layoutreader进行阅读顺序排序,确保在各种布局中保持高准确性。 重构了段落拼接模块,实现了跨列、跨页、跨图形和跨表格场景的良好效果。 重构了列表和目录识别功能,显著提高了列表块和目录块的准确性,以及相应文本段落的解析。 重构了图形、表格和描述文本的匹配逻辑,大大提高了将标题和脚注与图形和表格匹配的准确性,并将描述文本的丢失率降低到接近零。 为OCR添加了多语言支持,支持检测和识别84种语言。支持的语言列表请参见OCR语言支持列表。 添加了内存回收逻辑和其他内存优化措施,显著降低了内存使用。启用所有加速功能(不包括表格加速(布局/公式/OCR))的内存需求从16GB降低到8GB,启用所有加速功能的内存需求从24GB降低到10GB。 优化了配置文件功能开关,添加了独立的公式检测开关,在不需要公式检测时可以显著提高速度和解析结果。 集成了PDF-Extract-Kit 1.0: 添加了自研的doclayout_yolo模型,与原始解决方案相比,处理速度提高了10倍以上,同时保持了类似的解析效果,并且可以通过配置文件与layoutlmv3自由切换。 将公式解析升级到unimernet 0.2.1,提高了公式解析的准确性,同时显著降低了内存使用。 由于PDF-Extract-Kit 1.0的仓库变更,您需要重新下载模型。请参阅如何下载模型以获取详细步骤。 
2024年9月27日发布0.8.1版本,修复了一些错误,并提供了在线演示和前端界面的本地化部署版本。 
2024年9月9日:发布0.8.0版本,支持使用Dockerfile快速部署,并在Huggingface和Modelscope上推出演示。
2024年8月30日:发布0.7.1版本,添加了paddle tablemaster表格识别选项 
2024年8月9日:发布0.7.0b1版本,简化了安装过程,添加了表格识别功能 
2024年8月1日:发布0.6.2b1版本,优化了依赖冲突问题和安装文档
2024年7月5日:首次开源发布

1、MinerU 的主要特点

去除页眉、页脚、脚注、页码等干扰信息;以人类可读的顺序输出文本,适应单列、多列和复杂布局;保留原始文档结构,包括标题、段落、列表等;提取图像、图像描述、表格、表格标题和脚注;自动识别并转换公式为LaTeX格式;自动识别并转换表格为HTML格式;自动检测扫描版PDF和乱码PDF并启用OCR功能;OCR支持84种语言的检测和识别;支持多种输出格式,例如多模态和NLP Markdown、按阅读顺序排序的JSON以及丰富的中间格式;支持多种可视化结果,包括布局可视化和跨度可视化,方便确认输出质量;支持CPU和GPU环境;兼容Windows、Linux和Mac平台。

>> 高质量PDF提取工具:MinerU 是一款高质量的工具,能够将PDF文件转换成机器可读的格式,例如Markdown和JSON。这使得数据提取和进一步处理变得非常容易。

>> 多格式输出:支持多种输出格式,包括多模态和NLP Markdown、按阅读顺序排序的JSON以及丰富的中间格式。

>> 结构化保留:能够保留原始文档的结构,包括标题、段落、列表等,保证语义连贯性。

>> 全面信息提取:不仅提取文本,还能够提取图像、图像描述、表格、表格标题和脚注等信息。

>> 公式和表格转换:自动识别并转换文档中的公式为LaTeX格式,表格为HTML格式。

>> OCR支持:自动检测扫描版PDF和乱码PDF,并启用OCR功能,支持84种语言的检测和识别。

>> 布局处理能力强:能够处理单列、多列和复杂布局的文档,并按人类可读的顺序输出文本。 针对复杂的文本分布场景(如密集公式、不规则跨度区域和图像表示的文本)的解析性能也有显著提升。

>> 多种优化:进行了大量的代码重构,解决了诸多问题,提升了性能,降低了硬件要求,并增强了易用性。 包括内存优化,支持多种模型选择,并针对公式检测、表格识别等功能提供了独立开关,方便用户根据需求调整。

>> 多种运行环境支持:支持CPU和GPU环境,兼容Windows、Linux和Mac平台。

>> 开源且持续更新:项目开源,并持续更新和维护,不断改进性能和功能。

2、已知问题

>> 复杂的布局可能会导致阅读顺序错误。

>> 不支持垂直文本。

>> 对一些不常见的列表格式识别可能存在问题。

>> 只支持一级标题。

>> 代码块目前不支持。

>> 漫画书、艺术画册、小学课本和练习题等类型的PDF解析效果可能较差。

>> 复杂的表格识别可能出现行/列识别错误。

>> 对于一些小众语言的PDF,OCR识别可能存在误差。

>> 部分公式在Markdown中可能无法正确渲染。

MinerU 安装和使用方法

1、MinerU的三种体验方式

在线演示(无需安装)、快速CPU演示(Windows、Linux、Mac)和GPU加速(需要CUDA环境)。

T1、在线演示

提供了稳定版和测试版两个版本,无需任何安装,可以直接在网页上进行测试。

T2、快速CPU演示

安装 magic-pdf:使用conda创建名为MinerU的Python 3.10虚拟环境,激活环境后,使用pip安装 magic-pdf[full] 包,并指定额外的索引URL(--extra-index-url https://wheels.myhloli.com)。

下载模型权重文件:参考项目文档中的“如何下载模型文件”部分进行下载。

修改配置文件:脚本会自动生成 magic-pdf.json 文件,用户可以修改该文件中的配置来启用或禁用某些功能,例如表格识别。 配置文件中包含对 layoutlmv3 和 doclayout_yolo 模型、公式识别和表格识别的配置选项,用户可以根据需要进行调整。

T3、GPU 使用

如果设备支持CUDA并满足GPU要求,可以使用GPU加速。 项目提供了Ubuntu 22.04 LTS + GPU和Windows 10/11 + GPU的详细指南。 也提供了使用Docker进行快速部署的方法,但需要至少8GB VRAM的GPU,所有加速功能默认启用。

2、命令行使用

MinerU可以通过命令行进行使用,具体使用方法请参考项目文档中的“命令行”部分。

3、Python API 使用

MinerU 也提供了Python API,方便用户在自己的程序中集成使用,具体使用方法请参考项目文档中的“API”部分。

MinerU的案例应用

MinerU 主要应用于需要从PDF文档中提取结构化数据的场景,例如:

科学文献处理

MinerU最初是为了解决科学文献中的符号转换问题而开发的,可以用于提取文献中的公式、表格、文本等信息,方便后续的分析和处理。

数据预处理

MinerU可以作为数据预处理工具,将PDF文档转换为结构化的数据,用于训练大型语言模型或其他机器学习模型。

知识图谱构建

MinerU可以用于提取PDF文档中的实体关系信息,用于构建知识图谱。

文档摘要

MinerU可以提取PDF文档中的关键信息,用于生成文档摘要。

其他文本挖掘任务

MinerU可以用于各种文本挖掘任务,例如文本分类、情感分析等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单工厂模式和策略模式的异同

文章目录 简单工厂模式和策略模式的异同相同点:不同点:目的:结构: C 代码示例简单工厂模式示例(以创建图形对象为例)策略模式示例(以计算价格折扣策略为例)UML区别 简单工厂模式和策…

脑肿瘤检测数据集,对9900张原始图片进行YOLO,COCO,VOC格式的标注

脑肿瘤检测数据集,对9900张原始图片进行YOLO,COCO,VOC格式的标注 数据集分割 训练组 70% 6930图片 有效集 20% 1980图片 测试集 10% 990图片 预处理 静态裁剪: 24-82&…

YOLOv8 | 训练自定义数据集

目录 1 处理数据集1.1 数据集格式介绍1.2 划分数据集1.3 在 YOLOv8 中配置数据集 2 训练 YOLOv8 模型2.1 模型训练代码2.2 开启 TensorBoard 若尚未部署 YOLOv8,则可参考这篇博客: YOLOv8 | Windows 系统下从零开始搭建 YOLOv8 项目环境 1 处理…

Java设计模式 —— 【结构型模式】外观模式详解

文章目录 概述结构案例实现优缺点 概述 外观模式又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这…

可编辑99PPT | 智能工厂整体规划方案及实施细部方案

荐言分享:智能工厂是利用物联网、大数据、人工智能等先进技术,实现生产过程自动化、智能化和柔性化的现代工厂。本整体规划方案旨在通过整合信息技术、自动化技术、人工智能技术和物联网技术,构建一个高效、灵活、绿色、可持续的生产环境&…

Allegro17.4创建异形焊盘速通

Allegro17.4创建异形焊盘速通 打开Padstack Editor 17.4,新建焊盘,以标贴焊盘为例: 该标贴焊盘是在底面,选择END LAYRE ,选择 Shape symbol Geometry,Shape symbol选择框右边有选择键,跳到Library Shape S…

多行为级联24|多行为推荐的超图增强级联图卷积网络

挂到arxiv上的,多行为级联超图加对比学习,超图是针对单个行为的,而不是针对多个行为的。参考的类似工作是CRGCN加MBSSL。这两篇我都做了论文阅读,(CRGCN正在路上,MBSSL是我的第一篇论文阅读帖子)推荐系统论…

利用.NET Upgrade Assitant对项目进行升级

本教程演示如何把WPF程序从 <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>升级到<TargetFramework>net8.0-windows</TargetFramework>. 下载并安装.NET Upgrade Assistant - Visual Studio Marketplace Supported .NET upgrades: .NET Frame…

Vue2四、 scoped样式冲突,data是一个函数,组件通信-父传子-子传父-非父子

组件通信 1. 父组件通过 props 将数据传递给子组件 2. 子组件利用 $emit 通知父组件修改更新 父--->子 子--->父

第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ

Q1、统计符合条件长度为3的子数组数目 1、题目描述 给你一个整数数组 nums &#xff0c;请你返回长度为 3 的子数组&#xff0c;满足第一个数和第三个数的和恰好为第二个数的一半。 子数组 指的是一个数组中连续 非空 的元素序列。 2、解题思路 我们需要在给定的数组 nums…

PSDK的编译与ROS包封装

本文档讲述在NIVIDIA开发板上使用大疆提供的Payload SDK获取无人机实时GPS信息的方法&#xff0c;以及基于Payload SDK发布ROS GPS话题信息的方法。 文章目录 0 实现目标1 Payload SDK1.1 PSDK 源码的编译1.2 PSDK 的使用 2 遥测数据的读取2.1 示例代码结构2.2 读取机载GPS信息…

铝电解电容使用寿命

铝电解电容寿命问题 铝电解电容为什么会失效&#xff1f;铝电解电容失效与那些因素有关&#xff1f;电解电容寿命如何计算&#xff1f; 1铝电解电容为什么会失效&#xff1f; 电容都是由两个导电板并排放到一起就构成了。正极是铝&#xff08;阳极箔&#xff09;&#xff0c;…

用Python PySide6 复刻了两软件UI 做下练习

图样 1 代码 1&#xff1a; # -*- coding: utf-8 -*-import sys from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect, QDate) from PySide6.QtGui import QIcon, QPixmap, QColor from PySide6.QtWidgets import (QApplication, QDialog, QLineEdit, QPushBut…

安装MongoDB,环境配置

官网下载地址&#xff1a;MongoDB Shell Download | MongoDB 选择版本 安装 下载完成双击打开 点击mongodb-windows-x86_64-8.0.0-signed 选择安装地址 检查安装地址 安装成功 二.配置MongoDB数据库环境 1.找到安装好MongoDB的bin路径 复制bin路径 打开此电脑 -> 打开高级…

Spring学习(一)——Sping-XML

一、Spring的概述 (一)什么是Spring? Spring是针对bean对象的生命周期进行管理的轻量级容器。提供了功能强大IOC、AOP及Web MVC等功能。Spring框架主要由七部分组成&#xff1a;分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 S…

重温设计模式--职责链模式

文章目录 职责链模式的详细介绍C 代码示例C示例代码2 职责链模式的详细介绍 定义与概念 职责链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它旨在将请求的发送者和多个接收者解耦&#xff0c;让多个对象都有机会处理请求&a…

easegen将教材批量生成可控ppt课件方案设计

之前客户提出过一个需求&#xff0c;就是希望可以将一本教材&#xff0c;快速的转换为教学ppt&#xff0c;虽然通过人工程序脚本的方式&#xff0c;已经实现了该功能&#xff0c;但是因为没有做到通用&#xff0c;每次都需要修改脚本&#xff0c;无法让客户自行完成所有流程&am…

高考志愿填报:如何制定合理的志愿梯度?

高考志愿填报中常见的避雷行为&#xff0c;深入分析了专业选择、招生政策了解、学校选择、备选方案准备以及防诈骗等方面的关键问题&#xff0c;并提出了针对性的建议与策略。旨在为考生和家长提供实用的指导&#xff0c;助力考生科学合理地填报高考志愿&#xff0c;避免陷入各…

如何查看vivado项目所使用的版本

在我们提供的各类教程中vivado使用的版本都不同&#xff0c;而使用不同版本的vivado打开项目时可能会产生一些其它错误&#xff0c;所有最好使用对应的vivado版本打开&#xff0c;本例主要演示如何查看项目所示使用的vivado版本。 如下图所示&#xff0c;为vivado2023.1版本创建…

ue5 pcg(程序内容生成)真的简单方便,就5个节点

总结&#xff1a; 前情提示 鼠标单击右键平移节点 1.编辑-》插件-》procedural->勾选两个插件 2.右键-》pcg图表-》拖拽进入场景 3.先看点point 右键-》调试(快捷键d)->右侧设置粒子数 3.1调整粒子数 可以在右侧输入框&#xff0c;使用加减乘除 4.1 表面采样器 …