gptpdf 是一个利用VLLM解析PDF为Markdown的工具,几乎完美支持数学公式、表格等。

GPTPDF 是一个使用视觉大模型(如 GPT-4o)将 PDF 文件解析成 Markdown 文件的工具。它主要用于高效地解析 PDF 文档中的排版、数学公式、表格、图片、图表等内容,并将这些内容转换为结构化的 Markdown 格式。其显著特点是简单且成本低,每页平均费用为 $0.013。
地址:https://github.com/CosmosShadow/gptpdf
Marker是一款将PDF快速精准转换为Markdown的工具,支持多种文档格式和语言。

Marker是一款能够快速且准确地将PDF转换为Markdown的工具。它支持多种类型的文档(针对书籍和科学论文进行了优化),支持所有语言,并且能够去除页眉、页脚及其他杂乱信息。此外,它还能正确格式化表格和代码块,并提取图像保存为Markdown。同时,Marker将大多数的公式转换为LaTeX格式,适用于GPU、CPU或MPS环境。
地址:https://github.com/vikparuchuri/marker https://gitcode.com/gh_mirrors/ma/marker/overview
marker的原理是利于深度学习模型,检测页面布局,阅读顺序,然后格式化文本块并且对完整的文本再进行处理。这里说一下 marker 的特点:
这里说来说一下 marker 的安装方法 安装 Python,需要注意的需要安装的 Python 版本必须大于等于 3.9 安装 Pytorch 首先,访问 PyTorch官网 查找适合你的操作系统、Python版本和硬件支持(如GPU、CUDA)的安装命令。
例如,如果你在Linux系统上使用CUDA 10.2,安装命令如下:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu102)如果你的系统没有CUDA支持或不打算使用GPU加速,则可以安装CPU版本:
pip install torch torchvision torchaudio然后**安装 marker **,执行命令 pip install marker-pdf
marker_single --input /path/to/file.pdf --output /path/to/output/folder --batch_multiplier 2 --max_pages 10 --langs English--batch_multiplier用于根据GPU内存大小放大默认批量尺寸,数值越大意味着更多内存被占用,但同时也会加速处理过程,默认值为2倍;标准批量尺寸大约占据3GB的GPU内存。--max_pages定义了最大转换页数。如省略此项,则整个文档都会被转换。--langs是以逗号隔开的语言列表,指明文档中所含的语言信息以便于OCR识别。确认DEFAULT_LANG设置与您的文档相符。OCR支持的语言清单位于surya,如有额外需求,可通过Tesseract支持的任一语言来补充,只要OCR_ENGINE设为ocrmypdf即可。若根本不需进行OCR识别,标记器就能适用于任何语言的文档。
--input:指定要转换的PDF文件路径。--output:指定转换后的Markdown文件存储路径。--language:设置文档语言,如果处理的是非英文文档,可以指定语言代码(如zh表示中文)。--gpu:如果安装了CUDA并希望利用GPU加速,可以加上--gpu选项。--no-images:如果不希望提取PDF中的图片,可以添加这个参数来避免生成额外的图片文件。CODE_TO_LANGUAGE = {
"_math": "Math",
'af': 'Afrikaans',
'am': 'Amharic',
'ar': 'Arabic',
'as': 'Assamese',
'az': 'Azerbaijani',
'be': 'Belarusian',
'bg': 'Bulgarian',
'bn': 'Bengali',
'br': 'Breton',
'bs': 'Bosnian',
'ca': 'Catalan',
'cs': 'Czech',
'cy': 'Welsh',
'da': 'Danish',
'de': 'German',
'el': 'Greek',
'en': 'English',
'eo': 'Esperanto',
'es': 'Spanish',
'et': 'Estonian',
'eu': 'Basque',
'fa': 'Persian',
'fi': 'Finnish',
'fr': 'French',
'fy': 'Western Frisian',
'ga': 'Irish',
'gd': 'Scottish Gaelic',
'gl': 'Galician',
'gu': 'Gujarati',
'ha': 'Hausa',
'he': 'Hebrew',
'hi': 'Hindi',
'hr': 'Croatian',
'hu': 'Hungarian',
'hy': 'Armenian',
'id': 'Indonesian',
'is': 'Icelandic',
'it': 'Italian',
'ja': 'Japanese',
'jv': 'Javanese',
'ka': 'Georgian',
'kk': 'Kazakh',
'km': 'Khmer',
'kn': 'Kannada',
'ko': 'Korean',
'ku': 'Kurdish',
'ky': 'Kyrgyz',
'la': 'Latin',
'lo': 'Lao',
'lt': 'Lithuanian',
'lv': 'Latvian',
'mg': 'Malagasy',
'mk': 'Macedonian',
'ml': 'Malayalam',
'mn': 'Mongolian',
'mr': 'Marathi',
'ms': 'Malay',
'my': 'Burmese',
'ne': 'Nepali',
'nl': 'Dutch',
'no': 'Norwegian',
'om': 'Oromo',
'or': 'Oriya',
'pa': 'Punjabi',
'pl': 'Polish',
'ps': 'Pashto',
'pt': 'Portuguese',
'ro': 'Romanian',
'ru': 'Russian',
'sa': 'Sanskrit',
'sd': 'Sindhi',
'si': 'Sinhala',
'sk': 'Slovak',
'sl': 'Slovenian',
'so': 'Somali',
'sq': 'Albanian',
'sr': 'Serbian',
'su': 'Sundanese',
'sv': 'Swedish',
'sw': 'Swahili',
'ta': 'Tamil',
'te': 'Telugu',
'th': 'Thai',
'tl': 'Tagalog',
'tr': 'Turkish',
'ug': 'Uyghur',
'uk': 'Ukrainian',
'ur': 'Urdu',
'uz': 'Uzbek',
'vi': 'Vietnamese',
'xh': 'Xhosa',
'yi': 'Yiddish',
'zh': 'Chinese',
}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资源。如果使用GPU,并行度不会超过内存分配允许的最大值(INFERENCE_RAM / VRAM_PER_TASK)。--max 设定要转换的PDF文件最大数量。省略此参数将以转换文件夹内的所有PDF。--min_length 是从PDF中提取字符的最小数量,达到这个限制后PDF才会被考虑处理。处理大量PDF时,推荐设置以避免对主要由图像组成的PDF进行OCR(这会减慢处理速度)。--metadata_file 是一个可选的JSON文件路径,包含有关PDF的元数据。提供它将用来设置每个PDF的语言。否则,将使用默认语言DEFAULT_LANG。格式如下:{
"pdf1.pdf": {"languages": ["英语"]},
"pdf2.pdf": {"languages": ["西班牙语", "俄语"]},
...
}PDF-Extract-Kit 提供高质量PDF内容提取,支持布局检测、公式识别和OCR功能

地址:https://github.com/opendatalab/PDF-Extract-Kit
Zerox OCR 是一种经济高效且准确的文档OCR工具,适用于AI数据处理。

Zerox OCR 是一种极其简便的方法,用于将文档进行光学字符识别(OCR)并方便人工智能进行后续处理。鉴于文档往往包含复杂布局、表格、图表等,视觉模型在处理这些内容时尤其有效。
基本逻辑如下: 提供一个 PDF 文件(URL 或文件缓冲区)。 将 PDF 转换成一系列图像。 将每个图像传给 GPT,让其生成 Markdown 格式的文本。 聚合所有响应,并返回 Markdown 格式的结果。
地址:https://github.com/getomni-ai/zeroX
OmniParse是一个将各种非结构化数据转换为结构化、适用于生成式AI(LLM)应用的平台。

OmniParse 是一个数据解析平台,旨在将各种非结构化数据转换为适用于生成式AI(GenAI)应用的结构化数据。无论是文档、表格、图像、视频、音频文件,还是网页,OmniParse 都能对其进行处理,使其变得干净、结构化,并为诸如 RAG(Retrieval-Augmented Generation)和细调等AI应用做好准备。
地址:https://github.com/adithya-s-k/omniparse
MinerU 是一个开源的高质量数据提取工具,支持多种文件格式

MinerU 是一个一站式、开源的高质量数据提取工具,主要包括以下两个核心功能模块:
Magic-PDF
Magic-Doc
地址:https://github.com/opendatalab/MinerU
更多AI工具,参考国内AiBard123,Github-AiBard123 公众号:每日AI新工具
参考:https://blog.csdn.net/weixin_40425640/article/details/140765933 https://cloud.tencent.com/developer/news/1472013 https://zhuanlan.zhihu.com/p/712512565 https://post.smzdm.com/p/a2xzn3z2/
TextIn在线api转换:https://www.textin.com/document/pdf_to_markdown https://www.textin.com/console/recognition/robot_markdown?service=pdf_to_markdown
目前一路用下来,开源的方案用来做原型验证还不错,但要达到生产标准总是差一截。marker也试了,paddle也试了,最后还是转向了闭源付费api。省心多了。国内的textin,国外的google document ai,都还挺top的