所以,我正在做一个简单的移动应用程序项目(主要是为了好玩),它使用android上的ocr库(tesseract)扫描相机图片,对文本做一些处理,然后返回给用户。
我想知道的是,是否有人知道如何通过编程(或统计)来判断一个字符串是否构成了实际的单词,或者这只是一派胡言。(仅供参考,目前我只针对英语)
例如,ocr可以读取图片并返回
String returned = "The quick brown fox."
或者,它可能读到另一张图片然后返回
String returned = "$. _- %/ hj @;+__~"
显然,返回的第一个字符串生成单词,第二个字符串只是胡言乱语。我想知道是否有人有办法区分好的回报和无意义的回报。

最佳答案

运行一些字符频率和一些其他统计数据。我会查找空白的频率和位置、单词的大小和符号的频率,这些是我希望和不希望在我希望用户拍照的内容中找到的。
如果你期待大量的文本,可以检查字母表上的频率,看看它们是否与英语中已知的字符频率相匹配。如果你在等收据,找比平时多得多的数字。
最后,你可以让用户决定这是否是他们真正想要的。所有的分析都可以用一个“我们不相信这是你想要的”警告警告用户他们可以忽略。
我使用这些概念来解决a Project Euler problem关于知道文本何时被正确解密的问题。

08-28 14:43