Tesseract OCR引擎有时输出没有意义的文本,我想设计一个忽略任何文本或单词的算法,下面是我想忽略的输出文本,我的简单解决方案是计算被“”分隔的识别文本中的单词,有太多单词的文本将是垃圾(提示:我正在扫描最多包含40个单词的图像)任何想法都将是有帮助的,谢谢。
wo:>"|axnoA1wvw\
ldflfig
°J!9O‘ !P99W M9N 6 13!-|15!Cl ‘I-/Vl
978 89l9 Z0 3+ 3 'l9.l.
97 999 VLL lLOZ+ 3 9l!q°lN
wo0'|axno/(@|au1e>1e: new;
1=96r2a1ey\1 1uauud0|e/\e(]
|8UJB){ p8UJL|\7'发布于 2012-04-17 04:11:02
将输出文本分成单词。把单词分成三元组。计算三倍的频率,并与已知良好的文本语料库的文本的三倍频率进行比较(从某个邮件列表中讨论您打算进行OCR的所有文章,减去标题行)。
当我说“三重”时,我的意思是:
whe,hen,i,say,tri,rip,ipl,ple,les,i,mea,ean
在这个简短的例子中,...so "i“的频率是2,而其他的都是频率1。
如果您对目标语言的大型文档的这三个三元组中的每一个进行了频率计数,那么就可以相当准确地猜测字符串是否使用相同的语言。
诚然,这是启发式的。
我在密码更改程序中使用了类似的方法来检测英文密码。它工作得很好,尽管没有完美的“明显的密码拒绝”这样的东西。
发布于 2012-04-17 03:44:11
用字典查单词吗?
当然,这会对外语短语或代码产生误报。一般来说,这个问题很难解决(例如:是代码还是胡言乱语?:) )。唯一(近乎)完美的方法是使用它作为启发式标记某些部分以供人类审查。
https://stackoverflow.com/questions/10180032
复制相似问题