【问题标题】:String-matching algorithm for noisy text噪声文本的字符串匹配算法
【发布时间】:2014-11-02 01:21:37
【问题描述】:

我使用 OCR(光学字符识别)从图像中获取文本。图像包含书籍封面。由于图像噪声太大,导致某些字符被误识别,或者某些噪声被识别为字符。

例子:

  1. “w COMPUTER Nnwonxs i I”(计算机网络)
  2. “s.ll NEURAL NETWORKS C”(神经网络)
  3. “1llllll INFRODUCIION ro PROBABILITY ti iitiiili My”(概率简介)

我用单词构建了一个字典,但我想以某种方式将识别的文本与字典匹配。我尝试了 LCS(最长公共子序列),但效果不佳。

这类问题最好的字符串匹配算法是什么? (所以字符串的一部分只是噪音,但字符串的重要部分也可能有一些误识别的字符)

【问题讨论】:

  • 也许 Levenshtein 距离对于将“小破碎”单词与您的字典匹配有用吗?

标签: string substring ocr


【解决方案1】:

这真是一个大问题。以下是我所知道的。更多细节可以阅读相关论文。

对于单个单词,使用汉明距离计算OCR识别的单词与字典中的单词的相似度;

此步骤用于修正OCR已识别但不存在的字词。

例如: 如果 OCR 的结果是 INFRODUCIION 并且在您的字典中不存在,您可以发现单词“INRODUCTION”的汉明距离为 2。因此它可能被误识别为“INFRODUCIION”。 但是,同一个词可能会被识别为不同的词,它们之间的汉明距离相同。

例如:如果OCR的结果是CAY,你可能会发现CAR和CAT的汉明距离都是1,这样会混淆。

在这种情况下,有几个东西可以用来分析:

  1. 对于单个单词,CAT 和 CAY 之间的图像差异小于 CAR 和 CAY。因此,出于这个原因,CAT 似乎更有可能是正确的词。

  2. 然后让我们根据上下文来计算另一个概率。如果整个句子是“我今天早上开着我的新 CAY”,那么对于人们通常开 CAR 而不是 CAT,我们更有机会将 CAY 这个词视为 CAR 而不是 CAT。

  3. 同类文章中的词频使用TF-TDF。

【讨论】:

    【解决方案2】:

    你是说你有一本定义所有可以接受的词的字典吗?

    如果是这样,那么在字典中查找每个单词并找到最接近的匹配项应该是相当简单的。设置匹配阈值,如果没有达到阈值则丢弃该单词。

    我会尝试使用Soundex and Metaphone algorithmsLevenshtein Distance algorithm

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 2016-07-19
      • 2021-11-06
      • 2012-07-24
      • 2010-09-08
      • 1970-01-01
      相关资源
      最近更新 更多