使用 EasyOCR 解析 RAG 的扫描 PDF:免费 OCR 为您提供文字,而不是文档

企业文档智能 [Vol.1 #5quinquies] - 相同的 1974 年扫描 PDF,两个引擎。 EasyOCR 恢复文本。 Docling 恢复文本+部分+图形。结构间隙使得一个输出可在下游使用,另一个输出为扁平字符串。使用 EasyOCR 解析 RAG 的扫描 PDF 后:免费 OCR 为您提供单词,而不是文档,该文章首先出现在 Towards Data Science 上。

来源:走向数据科学

,该系列由四块砖构建企业 RAG 系统。第 5 条(文档解析)使用 PyMuPDF (fitz) 构建解析器,该解析器在没有文本层的扫描页面上返回空。该伴侣将引擎替换为 EasyOCR,这是一个可以恢复该文本的免费 OCR 软件包。这是这个系列中的一个案例,新引擎为您提供的功能更少,而不是更多:它恢复了文本,但周围没有任何内容,而这个差距就是教训。

扫描的 PDF 无法通过“仅使用 OCR 解决”来解决。 OCR步骤恢复文本;这对于企业 RAG 管道来说是必要的,但还不够。管道还需要文本周围的所有内容:页面边界在哪里、哪些行是节标题、什么是图形、什么是表行与自由段落。“传统 OCR”(文本检测 + 文本识别引擎(如 EasyOCR、Tesseract、PaddleOCR)的艺术术语)为您提供文本。它没有给你任何其他的东西。剩下的就是布局问题,布局问题是更难的一半。

本文具体阐述了这一区别。传统的 OCR 引擎是 EasyOCR:最简单、最快、免费的 JaidedAI 文本检测 + 识别库(Apache 2.0,在项目的 LICENSE 文件中声明)。布局感知引擎是 Docling(第 5 条之三;MIT 许可证,在项目的许可证文件中声明)。两者都可以对扫描的页面进行 OCR。他们对结果的处理方式有所不同。整篇文章是第 5 节中对 1974 年真实公共领域扫描的正面交锋的设置。

1.“传统 OCR”做什么(不做什么)

2. EasyOCR:规范的传统 OCR

签名 kwargs 是唯一的旋钮:

  • 语言:ISO-639-1 代码元组(en、fr、de、zh、...)。多语言语料库为每种语言集加载一个 Reader; get_easyocr_reader 中的@lru_cache 在调用过程中将其中的一些内容保留在内存中。
  • gpu:CPU 是默认值,因此该模块可以在任何机器上运行。 CUDA 在文本较多的页面上可提供 3-5 倍的加速。
  • 3. line_df 是什么样的

    7. 结论