我正在开发一个Android应用程序,它可以拍摄照片并将其翻译成文本。我在Windows上使用tesseract 3.
我设法让大部分翻译工作正常(在进行重新缩放,二值化,增强之后),但是某些字符仍然没有被翻译成应有的(ri - > m,le - > Ie等。 )。
为了纠正这个问题,我正在考虑强迫tesseract查看我的语言词典(在我的案例中是法语)并使用最可能的词来进行翻译。当我打开法语词典时,我也很惊讶地看到每个英语单词。
有没有办法强制tesseract找到适当语言中最可能的单词?
另外,我没有在网上找到很多安卓代码示例,我不确定我是否正在进行最有效的图像预处理。这就是我目前正在做的事情,你知道我怎么能更好地改进这个吗?
photo = WriteFile.writeBitmap(Scale.scale(ReadFile.readBitmap(bitmap), 3, 3));
photo = WriteFile.writeBitmap(AdaptiveMap.backgroundNormMorph(ReadFile.readBitmap(photo)));
photo = WriteFile.writeBitmap(Binarize.otsuAdaptiveThreshold(ReadFile.readBitmap(photo)));
photo = WriteFile.writeBitmap(Enhance.unsharpMasking(ReadFile.readBitmap(photo), 3, (float) 0.5));
感谢您的帮助
编辑:例如,这是我的结果和文字结果:
Les actions sociales
Les actions sociales regroupentlesactivités suivantes:Heureuxévenements+ Aide disap +Aidescolarité+ aide étudiante+ Aide de secours,Malgréunnombredebénéficiaires plus 2012年,重要的联合国大学生活动,加上élevequ'en2012年 预算2013年allouécouvrebigment les besoins d'ou l'excédent constatéLaC.F.T.C. ne peut que regretter la suppression en 2013 de I'activité«abonnement enfant»car son fi nancement auraitpuétre couvert par l'excédentconstaté
谢谢:)
答案 0 :(得分:0)
Tesseract有user.dawg文件,您可以在其中添加要添加到词典中的单词。
但我要做的是通过额外的检查来运行输出。编写一个程序,按空格分割文本,删除标点,然后检查字典中的每个单词 - 如果单词是完全匹配,那么这是真正的单词,如果没有,则使用Levenshtein距离将其与其他单词进行比较。
我假设您的字典将是一个数据库,因此您可以做其他聪明的事情,您可以编写一个搜索确切单词的查询(显然),但是当找不到该单词时,请在SQL中使用LIKE operator以您选择的方式找到相似的单词(例如所有以相同字母开头的单词),这样您只能在以相同字母开头的单词上运行您的Levenstein距离(或者以您的方式看起来像您单词的单词)选择了),从而节省了不必要的比较。