首页 > 其他分享 >一个开源的快速准确地将 PDF 转换为 markdown工具

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

时间:2024-06-21 10:56:34浏览次数:20  
标签:markdown 转换 -- 开源 GPU Marker PDF pdf

大家好,今天给大家分享的是一个开源的快速准确地将 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/

标签:markdown,转换,--,开源,GPU,Marker,PDF,pdf
From: https://blog.csdn.net/my565548320/article/details/139751089

相关文章

  • 开源MES优秀博文整理
    PyScada的相关资料PyScada的相关资料|同欣数字化落地(txodoo.cn)树莓派设置开机启动指定打开应用树莓派设置开机启动指定打开应用|同欣数字化落地(txodoo.cn)物联网IoT\IoE\边缘计算软件平台物联网IoT\IoE\边缘计算软件平台|同欣数字化落地(txodoo.cn)如何应......
  • 复旦发布开源版本的EMO,只需输入一段音频和一张照片就可以让人物开始说话。
    之前和大家介绍过阿里的EMO,用户只需要提供一张照片和一段任意音频文件,EMO即可生成会说话唱歌的AI视频。最长时间可达1分30秒左右。感兴趣的小伙伴可以点击下面链接阅读。近日,复旦发布了一个开源版本的EMO。通过输入音频让面部照片开始说话,并且有对于的表情。看起来效果很自......
  • 热门开源项目推荐
    以下是一些近年来非常受欢迎的开源项目,这些项目涵盖了多种编程语言和应用领域,适合不同需求和兴趣的开发者参与和学习。1. TensorFlow描述:一个用于机器学习的开源库,广泛应用于深度学习和人工智能项目。语言:Python,C++地址:TensorFlowGitHub2. React描述:由Facebook开发的......
  • PDFFactory&FinePrint软件安装包下载+详细安装教程
    简介:pdfFactoryPro(虚拟打印机)是一个无须Acrobat创建AdobePDF文件的打印机驱动程序。pdffactorypro虚拟打印机提供了比其他程序提供得更简单、更有效率和更少的花费的创建PDF文件的解决方案。用于需要安全的PDF(法律文档、公司信息等)和其他高级功能的用户。安......
  • 博客园相关-Markdown设置插入图片对齐方式
    在博客园中,插入图片的默认方式为:![](https://img2024.cnblogs.com/blog/3466488/202406/3466488-20240620171406631-1366059752.png)效果如下:想要设置插入图片的尺寸,可以用<img>元素的style="zoom:20%"属性实现,如下:<imgsrc="https://img2024.cnblogs.com/blog/3466488/202......
  • 【劲爆消息】GLM4 开源了!!!人工智能大模型又一大进步
    在人工智能领域,开源项目总是能够激发社区的创新活力。今天,我们要分享一个令人震撼的消息:智谱AI推出的最新一代预训练模型GLM-4系列中的开源版本——GLM-4-9B,现已全面开源!GLM-4-9B不仅仅是一个模型,它是智谱AI对深度学习和自然语言处理能力的一次全新探索。在语义理......
  • H5移动端加载预览pdf文件——demo
    前言:正常情况下需要在HTML中嵌入本地docx或pdf文件时,我们会有以下解决办法:1.使用<iframe>标签2.使用<embed>标签3.使用<object>标签4.使用第三方库(如PDF.js)当实际操作时,会发现前三种方式在pc端支持,但在移动端不支持,因为这些标签在移动端浏览器中的支持并不统一。为了兼容移......
  • 一书即可通关LLM大模型!成功通关大模型,看这1本足够了... (附PDF)
    哈喽大家好!最近有粉丝朋友喊我推荐一些大模型的学习书籍,我给大家推荐这么一本书,基于gbt3、gbt4等transform架构的自然语言处理。这是一本对transform工作原理感兴趣的人必读的书籍。亚马逊的评分是九点七分,内行人在睡不着的时候恨不得把全书都背诵完毕。本书的写作目的是......
  • 这是我见过最全的支付系统!一套适合互联网企业使用的开源支付系统
    大家好,我是Java陈序员。今天,给大家介绍一套开源的支付系统,兼容多渠道支付!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍Jeepay——计全支付,一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。......
  • 博客园相关-Markdown设置插入图片尺寸
    应用场景:在博客园的Markdown编辑器中,插入图片的尺寸是默认保持图片原尺寸的,这就导致有些图插入后,在页面中占用篇幅过大。如下图片(原尺寸:1028x1028):默认的Markdown插入代码为:![](https://img2024.cnblogs.com/blog/3466488/202406/3466488-20240620093649135-252360226.png)......