Android的拼写检查程序中使用了哪种算法?

时间:2012-06-16 19:00:48

标签: algorithm string-matching

我正在研究字符串匹配算法。我遇到的最有用的是我的手机使用的一个(SE xPeria neo v上的android 2.3.4)。

enter image description here

如屏幕截图中所示,我按下附近的字符jiw,我想要的是正确的。

似乎算法类似于levenstein distance(输入和字典之间的距离)。不知何故,近字符在字符串匹配中具有某些值。

有关正在使用的算法的任何想法吗?

2 个答案:

答案 0 :(得分:3)

我拉了Android source code并寻找拼写检查。我发现这个目录似乎包含了你要找的来源:

packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/

文件spellcheck/AndroidSpellCheckerService.java看起来像是做了所有繁重工作的人,但Suggest.java似乎也在某种程度上有所涉及。

答案 1 :(得分:2)

excellent information retrieval book有一个关于Levenstein distance的详细部分,包括加权变体。然后可以将权重视为键盘上按键之间的距离。