Ped*_*dro 5 algorithm ocr tesseract error-correction
我正在使用tesseract进行OCR并注意到,有时会出现分段错误,"明显"属于一起的字符会被拆分为分段字符串.
基于在一个文本行中找到的字符列表及其边界框以及建议的主要OCR结果,这些字符属于哪一个字,我可以应用哪些算法来纠正分段错误或验证结果?
所以这个数据可用:
List<Word> words;
for(Word word : words){
for(Char c : word.getChars()){
char ch = c.getValue();
Rectangle rect = c.getRect();
}
}
Run Code Online (Sandbox Code Playgroud)
对于考虑到字符和单词的OCR后置校正,但不可否认的是边界框,一种常见的做法是
为了实现这一点,您需要准备字典实现,以便搜索类似的字符串,也称为近似字符串匹配或模糊字符串匹配.
我所知道的两个主要方法是
这些方法以及一般的近似字符串匹配方法(例如搜索尝试,q-gram匹配和n-gram匹配)都固有地使用某种编辑距离测量,或多或少类似于Levenshtein距离.在分析了您正在处理的特定OCR错误之后,您可能希望根据您的特定需求调整编辑距离算法和其他资源.这可能涉及以下内容:
此外,您可以尝试使用语法和/或统计语言模型,例如隐马尔可夫模型或条件随机场模型 - 类似于POS标记器使用的模型 - 在上下文中进行单词校正.