【问题标题】:Word distance algorithm for OCROCR 的字距算法
【发布时间】:2023-04-01 15:39:01
【问题描述】:

我正在处理 OCR 输出,我正在其中搜索特殊单词。

由于输出不干净,我根据低于特定阈值的字距查找与我的输入匹配的元素。

但是,我觉得 Levenshtein 距离或 Hamming 距离并不是最好的方法,因为 OCR 似乎总是犯同样的错误:I 代表 1,0 代表 O,Q 代表 O……以及这些“经典” 例如,错误似乎不如“A for K”重要。因此,这些距离不关心角色外观的差异量(低/高)。

是否有任何专门为 OCR 制作的字距算法,我可以使用它更适合我的情况?还是我应该根据字符的视觉差异经验性地实现我的自定义词距?

【问题讨论】:

  • 如果你读过 tesseract 源代码,你会看到它特别处理了很多这样的情况
  • 你在 64 位 JVM 上使用 tesseract ocr 吗?
  • @manu 不,我使用 ABBYY FineReader。
  • 那么您正在使用试用版
  • @manu 不,这不是试用版。为什么问?付费版有什么我应该知道的隐藏内容吗?

标签: algorithm ocr levenshtein-distance hamming-distance


【解决方案1】:

Levenshtein 距离允许您为每个替换对指定不同的成本(http://en.wikipedia.org/wiki/Levenshtein_distance#Possible_modifications,第五项)。因此,您可以通过或多或少地强调常见错误来调整它以适应您的需求。

【讨论】:

  • 我将根据 char 值对两个字符串之间的每个 levenshtein 操作的成本在 0 和 1 之间进行尝试。那应该给我一个双倍的距离。
  • 这个问题你解决了吗?让我知道你没有。我为 ABBYY 工作,随时准备为您提供帮助。
【解决方案2】:

如果您想要一个用于字母不匹配的自定义成本函数,您可以查看 Needleman–Wunsch 算法 (NW)

【讨论】:

  • 这是一本好书。使用 Needleman-Wunsch 在具有两个不同 OCR 输出的第一遍中查找分类名称。然后使用这些名称在所有文档的第二遍中找到这些难词。它可以工作。
猜你喜欢
  • 2011-02-11
  • 2012-06-13
  • 2013-11-22
  • 2013-02-17
  • 2011-08-05
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多