一个开源的快速准确地将 PDF 转换为 markdown工具

news2024/10/5 21:25:40

大家好,今天给大家分享的是一个开源的快速准确地将 PDF 转换为 markdown工具。

Marker是一款功能强大的PDF转换工具,它能够将PDF文件快速、准确地转换为Markdown格式。这款工具特别适合处理书籍和科学论文,支持所有语言的转换,并且能够去除页眉、页脚等干扰元素,格式化表格和代码块,提取并保存图像和Markdown文件,并将大部分方程式转换为LaTeX格式。

功能简介

Marker:重新定义 PDF 到 Markdown 的转换效率。

•Marker 满足了将复杂的 PDF 文档转换为 markdown 以便于管理的日益增长的需求。

•传统的文本转换器难以维持原始布局、格式和内容的准确性。

•Marker 擅长准确地保存表格、代码块和数学方程式等复杂元素。

•自动去除文档中的非主要元素,如页眉和页脚。

•它能够以优化的处理速度和资源使用率有效地处理大量数据。

•Marker 的定制方法减少了数字 PDF 对 OCR 的依赖,从而实现了更快、更精确的转换。

•可以在GPU、CPU或MPS上运行。

实现原理

Marker的工作原理基于深度学习模型。它首先通过OCR技术(如果需要的话)提取文本(采用启发式算法和 tesseract 工具),然后检测页面布局并确定阅读顺序(使用 布局分割器[1] 和 列检测器[2])。接下来,Marker会对每个文本块进行清洁和格式化处理(运用启发式算法和 nougat[3]),最后将所有块合并并进行后处理,生成完整的Markdown文本(利用启发式算法和 pdf后处理器[4])。Marker只在必要时使用模型,从而提高了转换速度和准确性。

性能表现

通过查找具有 pdf 版本和 latex 源的书籍和科学论文创建了一个测试集。将 latex 转换为文本,并将参考与文本提取方法的输出进行比较。

基准测试表明 marker 比 nougat 快 4 倍,而且在 arXiv 之外更准确(nougat 是在 arXiv 数据上训练的)

速度
MethodAverage ScoreTime per pageTime per document
marker0.6137210.63199158.1432
nougat0.4066032.59702238.926
准确性

前 3 篇是非 arXiv 书籍,后 3 篇是 arXiv 论文。

Methodmulticolcnn.pdfswitch_trans.pdfthinkpython.pdfthinkos.pdfthinkdsp.pdfcrowd.pdf
marker0.5361760.5168330.705150.7106570.6900420.523467
nougat0.440090.5889730.3227060.4013420.1608420.525663

基准测试期间,nougat的 GPU 内存使用峰值为 4.2GB,而marker的 GPU 内存使用峰值为 4.1GB。 基准测试在 A6000 Ada 上运行。

使用

安装

您需要 Python 3.9+ 和 PyTorch。如果您使用的不是 Mac 或 GPU 机器,则可能需要先安装 CPU 版本的 torch。请参阅此处[5]了解更多详细信息。

安装方式:

pip install marker-pdf
转换单个文件
marker_single /path/to/file.pdf /path/to/output/folder --batch_multiplier 2 --max_pages 10 --langs English

•--batch_multiplier是如果您有额外的 VRAM,默认批处理大小要乘以的数值。数字越大,占用的 VRAM 越多,但处理速度越快。默认设置为 2。默认批处理大小将占用约 3GB 的 VRAM。

•--max_pages是要处理的最大页数。忽略此项可转换整个文档。

•--langs是文档中用于 OCR 的语言的逗号分隔列表

转换多个文件
marker /path/to/input/folder /path/to/output/folder --workers 10 --max 10 --metadata_file /path/to/metadata.json --min_length 10000

•--workers是一次要转换的 PDF 数量。默认情况下,此值设置为 1,但您可以增加此值以增加吞吐量,但代价是增加 CPU/GPU 使用率。INFERENCE_RAM / VRAM_PER_TASK如果您使用 GPU,则并行度不会增加。

•--max是要转换的 PDF 的最大数量。省略此项可转换文件夹中的所有 PDF。

•--min_length是需要从 PDF 中提取的最少字符数,然后才会考虑进行处理。如果您要处理大量 PDF,我建议设置此项以避免对大部分是图像的 PDF 进行 OCR。(这会减慢一切速度)

•--metadata_file是包含有关 pdf 元数据的 json 文件的可选路径。如果您提供它,它将用于设置每个 pdf 的语言。如果没有,DEFAULT_LANG将使用。格式为:

{  "pdf1.pdf": {"languages": ["English"]},  "pdf2.pdf": {"languages": ["Spanish", "Russian"]},  ...}
在多个 GPU 上转换多个文件
MIN_LENGTH=10000 METADATA_FILE=../pdf_meta.json NUM_DEVICES=4 NUM_WORKERS=15 marker_chunk_convert ../pdf_in ../md_out

•METADATA_FILE是包含 pdf 元数据的 json 文件的可选路径。请参阅上文了解格式。

•NUM_DEVICES是要使用的 GPU 数量。应大于2或等于。

•NUM_WORKERS是每个 GPU 上运行的并行进程数。每个 GPU 的并行度不会超过INFERENCE_RAM / VRAM_PER_TASK。

•MIN_LENGTH是需要从 PDF 中提取的最少字符数,然后才会考虑进行处理。如果您要处理大量 PDF,我建议设置此项以避免对大部分是图像的 PDF 进行 OCR。(这会减慢一切速度)

项目地址

https://github.com/VikParuchuri/marker

References

[1] 布局分割器: https://huggingface.co/vikp/layout_segmenter
[2] 列检测器: https://huggingface.co/vikp/column_detector
[3] nougat: https://huggingface.co/facebook/nougat-base
[4] pdf后处理器: https://huggingface.co/vikp/pdf_postprocessor_t5
[5] 此处: https://pytorch.org/get-started/locally/

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

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

相关文章

Android系统上Bootchart的使用

Android系统的启动细节分析,可以用工具bootchart来进行 一、Bootchart简介 官网地址:https://www.bootchart.org/ Google推荐bootchart作为开机优化的首选工具:https://source.android.com/devices/tech/perf/boot-times#bootchart bootc…

Vulhub——Log4j、solr

文章目录 一、Log4j1.1 Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)1.2 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 二、Solr2.1 Apache Solr 远程命令执行漏洞(CVE-2017-12629)2.…

ORA-25153 错误处理

一、问题描述 执行update语句时,出现如下错误: 二、原因分析 如果临时表空间不存在或者已经为空,就会抛出这个错误。 三、解决方法 1.确认临时表空间是否存在:检查数据库中是否存在你尝试指定的临时表空间。 SELECT TABLES…

MathType软件安装包下载+详细安装教程

数学公式编辑器(MathType)是一款专业的数学公式编辑工具,理科生专用的工具。Mathtype公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号。可以轻松输入各种复杂的公式和符号,与Office文档完美结合,显示效果超好,比Offi…

储能电站监控运维管理系统的全面指南

近年来,储能电站在能源行业中扮演着越来越重要的角色。随着可再生能源的快速发展,储能电站监控运维管理系统的有效运用变得至关重要。本文将深入探讨储能电站监控运维管理系统,在这个日益重要的领域中给出一些宝贵建议和见解。 引言 随着全…

使用volta管理前端开发环境

背景:公司有新老不同的产品,使用的node版本不一样,每次都要手动切换node版本,对应的项目才能运行。这样很麻烦,有没有好的解决方法,就找到了volta。 1.为什么是volta? 管网介绍:使用…

基于 VITA57.1 标准的 2 收 2 发射频子卡(国产 ADRV9009子卡)

FMC159 是一款基于 VITA57.1 标准规范,实现 2 收 2 发的射频子模块,该板卡基于国产化 ADRV9009 射频收发器,涵盖了50MHz~6GHz 频段,并集成了双通道收发链路,发送最大实时带宽可到 450MHz,接收最大带宽可以到…

网络层只懂路由?这9个知识点被严重低估了

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 网络层想必你已经耳熟能详,它的作用自然是不容小觑。 它负责将数据从源头准确地投递到目的地&am…

SaaS案例分享:成功构建销售渠道的实战经验

面对SaaS产品推广的难题,你是否曾感到迷茫,不知如何选择有效的销售渠道?Shopify独立站联盟营销或许能为你提供新的思路。Shopify作为领先的电商解决方案提供商,其独立站功能为众多商家提供了强大的在线销售平台。而联盟营销&#…

洗地机怎么选?洗地机哪个品牌比较好?四款实力超牛的单品推荐

随着生活节奏的加快,家庭清洁已经成为许多人面临的一大挑战。传统的扫地和拖地方式不仅耗时耗力,还难以彻底清洁每一个角落。家用洗地机的出现,为人们的家庭提供了一个全新的清洁解决方案。然而,在选择合适的洗地机时,…

企业内网是如何禁用U盘的?电脑禁用U盘有哪些方法?

在当今企业环境中,数据安全和信息保护至关重要。 为了防止数据泄露和恶意软件传播,很多企业选择在内网中禁用U盘,以控制数据的物理传输。 小编这就来给大家总结一份详细指南!! 关于企业内网如何禁用U盘的指南&#x…

聚焦现代商贸物流愿景 构筑供应链金融服务体系|第二届京津冀现代商贸物流金融创新发展百人大会成功举办

6月16日,以“链产业筑高地赢未来——聚焦现代商贸物流愿景、构筑供应链金融服务体系”为主题的第二届京津冀现代商贸物流金融创新发展百人大会(以下简称“百人大会”),在2024中国廊坊国际经济贸易洽谈会(以下简称“廊坊经洽会”)开…

示例:WPF中DataGrid简单设置合并列头

一、目的&#xff1a;应用DataGridTemplateColumn列模板&#xff0c;去拆分列头和单元格布局的方式设置列头合并样式 二、实现 效果如下 三、环境 VS2022 四、示例 应用DataGridTemplateColumn自定义列头信息和单元格信息 <DataGrid AutoGenerateColumns"False"…

强化安全保障:广东新能源工厂可燃气体报警校验流程解析

近年来&#xff0c;随着国家对清洁能源和可持续发展战略的高度重视&#xff0c;新能源产业迅速崛起&#xff0c;广东作为我国经济发展的重要引擎&#xff0c;其新能源工厂的建设与运营也走在了全国前列。 这些工厂大多涉及光伏、风能、生物质能等多个领域&#xff0c;生产过程…

VxeBasicTable 右侧工具按钮不显示的检测与处理

1、先上张图&#xff1a; 操作区&#xff0c;按钮不显示。 检查了代码都是正常的。 2、代码检查 这个其实不用检查&#xff0c;因为这个区域是显示出来了&#xff0c;但是上面的actionItem没有显示。 3、检查action item&#xff1a; 发现也挺好的&#xff0c;里面也写了 /…

HQChart实战教程73-仿tradingview指标MACD

HQChart实战教程73-仿tradingview指标MACD MACD![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/84d180b5620940f6b9fe08c6f10eb0f3.png)麦语法脚本实心MACD指标脚本效果 空心MACD指标脚本效果图 自定义指标添加到系统指标里HQChart插件源码地址 MACD tradingview中…

【AI大模型】Transformers大模型库(十):repetition_penalty惩罚系数

目录​​​​​​​ 一、引言 二、惩罚系数repetition_penalty 2.1 概述 2.2 使用说明 2.3 使用示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服务。 &#x1f917; T…

智能室内空气质量监测预警系统小程序设计说明书

智能室内空气质量监测预警系统小程序设计说明书 一、应用功能与系统设计 &#xff08;一&#xff09; 应用功能 该小程序设计的目的是为了配合环境监测吸顶灯,Mini空气监测仪等硬件设备实时数据展示与远程设备控制等功能&#xff0c;系统框架图如图1-1所示。用户可以从小程序…

第二证券:新股“肉签”不断,今日两只申购!光伏巨头小伙伴来了

本周&#xff08;6月17日—6月21日&#xff09;&#xff0c;A股商场将迎来两只新股&#xff0c;分别为沪市主板的永臻股份和创业板的爱迪特&#xff0c;均将于本周一进行申购。 资料显现&#xff0c;永臻股份是国内领先的铝合金光伏结构件制造商&#xff0c;公司发行价为23.35…

数据结构之“双向链表”

前言 前面我们介绍了单向链表&#xff0c;我们这里的双向链表是为了弥补单向链表只能从头节点开始单向遍历&#xff0c;插入和删除节点时需要更多的操作&#xff0c;因为无法直接访问前一个节点。 目录 前言 一、双向链表的结构 二、实现双向链表 2.1符号定义 2.2节点创…