原贴链接

我有数百页关于特定主题的PDF文档,我希望将数据提取到一个干净格式中,以便微调一个小模型。大部分是嵌入式文本,所以不需要纯OCR,但有一些图像和表格是有用的,但不是必须包含的。由于格式怪异或来自重复的页眉、页脚、标志、页码等的垃圾数据,可能需要进行清理。我熟悉Python,并且愿意使用API或服务,只要成本合理,只是想了解一下现在有哪些好的选择。

讨论总结

本次讨论主要聚焦于如何从PDF文档中高效提取数据,特别是针对包含嵌入文本、图像和表格的复杂文档。参与者分享了多种Python库和工具的使用经验,包括PyMuPDF、Tabula-py、Camelot、PDFMiner、pdfplumber等,以及新兴的OCR和AI技术,如Google AI Studio的Gemini模型和Mathpix OCR服务。讨论中还涉及了数据清理、格式问题处理和时间效率等关键点。

主要观点

  1. 👍 现有的Python库在处理复杂PDF文件时存在局限性
    • 支持理由:许多库在处理包含表格、方程式和图表的PDF内容时效果不佳。
    • 反对声音:一些用户分享了使用特定库的成功经验,如PyMuPDF。
  2. 🔥 结合VLMs和传统OCR技术可以更有效地提取PDF内容
    • 正方观点:这种结合能够处理更复杂的PDF文件,提取更多类型的数据。
    • 反方观点:尚未有广泛的应用案例,实际效果有待验证。
  3. 💡 开发了一个新的库来解决上述问题
    • 解释:Confident-Honeydew66分享了他们开发的库,能够更有效地提取PDF内容。
  4. 👀 arXiv上的论文提供了LaTeX格式,便于数据提取
    • 解释:_supert_提供了关于arXiv上可用LaTeX的额外提示,便于数据提取。
  5. 🚀 推荐使用Mathpix OCR服务进行PDF数据提取
    • 解释:trajo123推荐Mathpix OCR服务,认为其性价比高,能够高效地将PDF转换为LaTeX或Markdown格式。

金句与有趣评论

  1. “😂 Confident-Honeydew66:I found none of them provided both the ability to do clean & consistent OCR while also capturing tables, equations, charts, etc so I made this library.”
    • 亮点:展示了用户在遇到技术局限时的创新解决方案。
  2. “🤔 supert:As a side-hack, note that many papers are on arXiv which has latex available.”
    • 亮点:提供了关于arXiv上可用LaTeX的额外提示,增加了数据提取的灵活性。
  3. “👀 trajo123:https://mathpix.com ocr is Amazing, they can convert a pdf to latex or markdown, works extremely well.”
    • 亮点:强调了Mathpix OCR服务的高效性和实用性。

情感分析

讨论的总体情感倾向较为积极,多数用户分享了他们在PDF数据提取方面的成功经验和推荐工具。争议点主要集中在不同工具的适用性和效果上,但整体上用户对新技术和工具持开放和探索的态度。

趋势与预测

  • 新兴话题:结合VLMs和传统OCR技术的新工具可能会成为未来的趋势。
  • 潜在影响:这些新工具和技术的发展将极大提高PDF数据提取的效率和准确性,对数据科学和机器学习领域产生积极影响。

详细内容:

从 PDF 中提取数据的最新最佳方法引发热烈讨论

在 Reddit 上,一则题为“Current SOTA for extracting data from PDFs?”的帖子引起了众多关注。该帖子的作者表示有数百页关于特定主题的 PDF 文档,希望将数据提取为干净格式以微调小模型,其中大多是嵌入文本,也有一些图像和表格,还提到需要清理因格式怪异或重复的页眉、页脚、徽标、页码等产生的无用数据,并熟悉 Python,愿意使用成本合理的 API 或服务,想了解当前有哪些好的选择。此帖获得了大量的点赞和众多评论。

讨论焦点与观点分析:

有人提到已经研究过 PyMuPDF (fitz)、PyPDF2、Tabula-py、Camelot、PDFMiner、marker 和 pdfplumber 等工具,但发现没有一个能同时实现干净一致的 OCR 并捕获表格、方程、图表等,于是自制了一个库[https://github.com/emcf/thepipe],它结合了 VLM 和传统 OCR 来提取复杂的 PDF,只需一行 Python 代码。

有用户提出作为一个侧面技巧,指出许多论文在 arXiv 上有可用的 LaTeX 格式,还可以通过 https://arxiv.org/e-print/{arxiv id here} 编程下载 LaTeX 。

有人推荐使用 pymupdf,并提供了相关链接:https://github.com/pymupdf/PyMuPDF ,同时针对 LLMs 也给出了链接:https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/ 。

有人表示在特定用例中从 Gemini 模型在 Google AI Studio 中获得了出色的结果。

还有人提到可以尝试 Marker,并给出了相关链接:https://github.com/VikParuchuri/marker 。

有人提到 Google 曾有“Document AI”API,认为现在 Gemini Pro 可能做得更好但自己未尝试。

有人推荐 grobid ,但也有人表示不喜欢处理其 xml 文件。

有人推荐自家初创公司正在开发的 PDF 分割模型,并提供了链接:https://www.aryn.ai/post/announcing-the-aryn-partitioning-service 。

有人称赞 https://mathpix.com 的 OCR 服务,称其能将 PDF 转换为 LaTeX 或 Markdown ,效果极佳,虽然是付费服务但物有所值,还对被点踩表示不解。

有人呼吁后续给出小报告。

有人分享使用 gpt4o 的成功经验,还提供了相关脚本链接:https://github.com/kkaarrss/extractor/blob/main/extractor.py 。

有人表示自己使用 Cloud Vision API 效果不错,并介绍了应用背景。

有人提到 Docprompt 。

有人指出很多开源项目实际上只是某些云 API 的花哨包装,只是调用了 Anthropic 或 OpenAI 。

有人提供了链接:https://docs.llamaindex.ai/en/stable/llama_cloud/llama_parse/ 。

在这场讨论中,大家分享了各自的经验和建议,既有推荐具体工具的,也有分享技巧和相关链接的,为有类似需求的人提供了丰富的参考。