2014-03-31 68 views
2

我正在使用OCR輸出,並且正在搜索其中的特殊字詞。用於OCR的字距算法

由於輸出不乾淨,我根據低於特定閾值的單詞距離查找與我的輸入相匹配的元素。

但是,我覺得Levenshtein距離或漢明距離並不是最好的方式,因爲OCR總是會犯同樣的錯誤:I爲1,0,O爲O,Q爲O ......並且這些「例如,「經典」錯誤似乎不如「A for K」重要。因此,這些距離不關心字符外觀差異的大小(低/高)。

是否有任何字距離算法,專門爲OCR,我可以使用,將更好地適合我的情況?或者,我應該根據人物的視覺差異憑經驗實施我的自定義單詞距離嗎?

+0

如果你曾經閱讀過tesseract源代碼,你會發現它特殊的處理案例很多 –

+0

你在64位JVM上使用tesseract ocr嗎? – manu

+0

@manu不,我使用ABBYY FineReader。 – zenbeni

回答

2

Levenshtein距離允許您爲每個替換對指定不同的成本(http://en.wikipedia.org/wiki/Levenshtein_distance#Possible_modifications,第五項)。因此,您可以通過強調常見錯誤來調整您的需求。

+0

對於每個兩個字符串之間的每個levenshtein動作,取決於char值,我將嘗試使用0到1之間的代價。這應該給我一個雙倍的距離。 – zenbeni

+0

你解決了這個問題嗎?讓我知道你沒有。我爲ABBYY工作並隨時準備爲您提供幫助。 –

1

我想要的字母不匹配的自定義成本函數,你可以看看EMBOSS軟件包(NW)

+0

這是一個很好的閱讀。使用Needleman-Wunsch通過兩種不同的OCR輸出在第一遍中查找分類名稱。然後使用這些名稱在所有文檔的第二遍中查找這些難以處理的單詞。它可以工作。 – zenbeni