2012-06-16 12 views
13

私は文字列照合アルゴリズムに関するいくつかの研究を行っています。一番使い易かったのは私の携帯電話が使っていたものです(SE xPeria neo vのandroid 2.3.4)。スクリーンショットで見られるようにAndroidのスペルチェッカーで使用されているアルゴリズムはどれですか?

enter image description here

、私は私が望んでいたし、それが正しく提案近いものです文字jiwを押しました。

アルゴリズムはlevenstein distance(私の入力と辞書との距離)に似ているようです。何とか近くの文字はの文字列一致の値を持っています。

使用されているアルゴリズムについてのご意見はありますか?

+5

近くの有権者の何人かは、なぜこれが非建設的だと思うかを説明することができますか?質問は非常に正確です(「どのようなアルゴリズムが使用されていますか?」)、そのシステムのソースコードが公開されているので、質問に答えることができます。 –

+4

+1簡潔で、答えることができ、面白い質問です。 – goat

+2

非常に面白いプログラミングの質問、あなたのプロジェクトのための+1票と幸運 – mm24

答えて

3

私はAndroid source codeを引いてスペルチェックを探しました。私は、あなたが探している情報源が含まれているように見えるこのディレクトリが見つかりました:

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

ファイルspellcheck/AndroidSpellCheckerService.javaは、すべての重い仕事をしているもののように見えますが、Suggest.javaも何らかの形で関与しているようです。

2

このexcellent information retrieval bookは、Levenstein distanceの詳細セクションを持ちます。次に、キーパッド上のキー間の距離となるようにウェイトをとることができます。

+0

ありがとう@phs。この記事では、多くの情報を提供して、Levensteinの距離がAndroidでの文字列比較の指標であるという私の最初の疑念を指摘しています。しかし、疑いだけは.. – Odys

関連する問題