【问题标题】:OCR specific approximate string matching libraryOCR 特定的近似字符串匹配库
【发布时间】:2019-01-28 23:19:18
【问题描述】:

我有一个使用 OCR 从图像中提取的文本。文本中的某些单词无法正确识别如下:

'DRDER 0F OFF1CE RESTAURAUT,QNE THO...'

从视觉上可以看出,有些字符很容易与其他字符混合:1 -> I、O -> D -> Q、H -> W、U -> N 等等。

问题:除了像 Levenshtein 距离这样的标准算法外,是否有 Java 或 Python 库实现了 OCR 特定算法,可以帮助将单词与预定义的字典进行比较并给出分数,同时考虑到可能的 OCR字符混淆?

【问题讨论】:

    标签: java python ocr string-matching


    【解决方案1】:

    我不知道任何特定于 OCR 的内容,但您也许可以使用 Biopython 来完成这项工作,因为使用一个矩阵比较一个字符串与另一个字符串的基本问题是,该矩阵对每个字符与每个其他字符的相似度进行评分在生物信息学中很常见。我们称之为序列对齐问题。

    看看Biopython提供的pairwise2 module;您将能够使用具有所有成对字符相似性的字典将每个输入单词与每个字典单词与pairwise2.align.globaldx 进行比较。那里还有对删除/插入的字符进行评分的功能。

    计算成对的字符相似度将是您必须自己完成的事情,可能通过以您选择的字体渲染每个字符并比较图像,或者通过手动评估哪些字符看起来与您相似。您还可以查看this other SO answer,其中字符根据笔划的存在/不存在分为几类。

    如果您想要比 O(input * dictionary) 更好的东西,则必须从蛮力比较切换到某种基于种子匹配的算法。例如,如果您假设您总是有一个 2 个字符的完美匹配,您可以根据包含每个长度为 2 字符串的单词来索引您的字典,并且仅将输入单词与共享长度为 2 字符串的字典单词进行比较和他们一起。

    【讨论】:

    猜你喜欢
    • 2011-05-11
    • 2013-07-10
    • 1970-01-01
    • 2010-09-08
    • 2016-03-28
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多