pdf 的机械化数据提取和文本识别

Mechanized data extraction and text recognition from pdfs

我有一些高度结构化的 pdf 文件,它们是我拥有的一些历史技术记录的扫描副本。涉及大约几千页(约 2K 页),我试图自动提取所涉及的信息。

下面的 link 包含一张我在 google 上找到的图片。我不拥有图像,但出于说明目的,我试图提取存储在类似于此的结构化 "block" 中的信息,并以编程方式处理提取的信息。

所有文本都是printed/type-written文本,理论上应该有很好的准确性。我愿意根据需要学习以完成这项工作,但我不确定从哪里开始。我想知道

  1. 是否有真正自动执行此操作的付费程序?
  2. 有没有一种简单的方法可以让我通过使用某些公开可用的代码库进行文本识别等来简单地自己编程?我知道很多不同的 OCR 工具,但我只是不知道如何以编程方式使用它们从像这样的块中包含的东西中提取东西(并且块在扫描后位置可能会有所不同)
  3. 如果我需要雇人来做这件事,那么为了生成实现这一目标的脚本,实际需要付出多少努力?

这是一次性练习,这意味着它使事情 "pretty" 和 "dumb-proof"(即不需要 GUI)并不重要。

谢谢!!

这可以通过结合使用两种工具来实现。 iText 和 Tesseract OCR。 伪代码:

  1. 实现 IEventListener(一个 iText 接口),每次处理一条信息(文本、线条、图像)时都会调用此接口。
  2. 分离出 ImageRenderInfo 事件(这些事件负责在页面上绘制图像)
  3. 将每个图像提供给 Tesseract(或者更准确地说,java 包装器,tess4j)
  4. 以文本形式检索内容,并(使用 iText)将内容放回 pdf 文档中。 iText 允许您对文档进行低级访问。因此允许您将任意字符串放置在精确位置。
  5. 现在要么使用 iText 核心库处理(增强的)pdf 文档
  6. 或者使用 pdf2Data 处理(增强的)pdf 文档,pdf2Data 是一个 iText 插件,专门用于处理将文档与模板匹配并检索内容的情况。 (将它们变成 XML)

有用的链接:
http://itextpdf.com/itext7/pdf2Data
http://tess4j.sourceforge.net/