Android、Java - 实时将 OCR 字词修复为有效的英语词典字词

Android, Java - Fix an OCR-ed word to a valid english dictionary word in real time

我的应用程序涉及扫描 phone 摄像头和检测文本。我的应用程序唯一关心的是有效的英文单词。 我有一个包含 ~354,000 个有效英语单词的列表,我可以将我扫描的单词与这些单词进行比较。

由于我的应用程序不断检测文本,因此我需要此功能非常非常快。我已经应用了 Levenshtein 距离技术。对于每个单词,我:

  1. 使用 Scanner
  2. 将文本文件的内容存储到 Arraylist<String>
  3. 用354k个词中的每一个计算词的编辑距离
  4. Return最小距离值对应的单词

问题是它非常非常慢。如果不应用它,我的应用程序会在大约 70 到 100 毫秒内设法识别 20 多个单词。当我包含这个修复例程时,我的应用程序需要超过 1 整分钟(60000 毫秒)来处理一个单词。

我想知道这种技术是否适合我的情况。如果没有,我应该使用其他什么测试方法?任何帮助将不胜感激。我知道这是可能的,看看 android 键盘如何能够立即纠正我们输入错误的单词。

其他失败的尝试:

我的有效解决方案: 我创建了一个 MYSQL table 并在其中上传了有效英文单词列表。它解决了问题中提到的所有问题。

这是我的Android申请供参考: Optical Dictionary & Vocabulary Teacher