Firecrawl 打开 pdf-inspector:PDF 在 Markdown 毫秒内,没有 OCR
Firecrawl,一家来自 Y Combinator 的初创公司,专门制作从网站提取数据的工具,它已经开放了 pdf-inspector 的来源:一个 Rust 库,可以在几毫秒内确定你面前的文本是PDF还是扫描件,并将文本文档转换为纯粹的Markdown,根本没有OCR。根据团队的估计,实际问题中大约 54% 的 PDF 是基于文本的,通过缓慢而昂贵的 OCR 来运行它们根本没有意义。
如果你曾经喂过神经网络PDF——一份合同、一份报告、一本书——你就会知道这种感觉:文件似乎打开了,但其中的文本没有被复制或被复制到粥里。经典的解析器要么被表阻塞,要么通过 OCR 运行每个页面,浪费时间和金钱。 pdf-inspector 正是解决了这个问题:首先,它快速查看它是什么类型的文件,并且仅当它是真实扫描时才连接 OCR。
先分类,再提取
在一次传递中,库将 PDF 分配给四种类型之一 - TextBased、Scanned、ImageBased 或 Mixed - 并给出从 0 到 1 的置信度以及页面路由:哪个作为文本读取,哪个发送到 OCR。分类需要 10-50 毫秒。接下来,对于文本页面,提取坐标、字体和阅读顺序,输出为Markdown,包含标题、列表、表格和链接。
令人印象深刻的数字
在 opendataloader-bench 上,200 个 PDF pdf-inspector 在 0.47 秒内拆解了整个案例。作为比较:pymupdf4llm - 17 秒,markitdown - 16 秒。同时,它的质量也是最高的:总体得分为 0.875,而 pymupdf4llm 为 0.735,markitdown 为 0.589。它能更好地识别表格 - 0.814 对比 0.401 和 0.273。
他还能做什么?
多栏报纸布局、从右到左文本、CID 字体、损坏的编码检测。单独 - 选择性OCR:如果单个扫描页面卡在PDF中,您只能通过OCR本地运行它们,通过PP-OCRv6小,而不是整个文档。
问题在哪里?
老实说:对于文档的真实扫描和照片,仍然需要 OCR,这里 pdf-inspector 并不神奇 - 它只是不会在不需要它的东西上花费 OCR。公式和布局与文本混合的复杂布局也可以使用。这是一个库,而不是现成的服务:要使用它,您必须编写一些代码。

有针对 Python、Node.js 和基于浏览器的 WASM 的绑定 - 相同的 Rust 解析器直接在浏览器中工作,无需服务器。 GitHub 上的存储库已经获得了近 17,000 颗星。如果你经常在神经网络中携带PDF,那么值得一看。