7

基本的に、私は(必ずしも正確ではない)最も近い一致を見つける方法を見つけようとしています。String

たとえば"delicous"{"pie", "delicious", "test"}

これは非常に明白ですが、配列内の値は必ずしもそれほど明確ではない場合があります。

誰かがこれを達成する方法を手伝ってくれませんか。

4

3 に答える 3

18

「最も近い」の定義方法によって異なりますが、一般的な方法の1つは、レーベンシュタイン距離スコアを使用することです。Apache Commonsには、StringUtilsにそのようなメソッドがあります。

そこから、検索方法は基本的に次のようになります。特定の入力に対して最小のレーベンシュタイン距離を持つコレクション内の文字列を検索します。

于 2012-05-31T02:33:08.890 に答える
2

そのためにJavaに組み込まれているものはありません。SecondStringFREJなどのサードパーティ製ライブラリを試すことができます。

于 2012-05-31T02:33:51.330 に答える
2

レーベンシュタイン距離と組み合わせて使用​​できる別のアプローチは、最初に単語の音声表現を取得することです。これを行うための1つのアルゴリズムはMetaphoneです。

Apache Commons Codecのユーザーガイドには、このエンコーダーと他のいくつかのエンコーダーの詳細が記載されています。

于 2012-05-31T02:34:53.527 に答える