0

私は軽量のライブラリを探していました。これにより、一連の単語をフィードし、特定の単語に類似した一致があるかどうかを尋ねることができます.z

基礎となるアルゴリズムには特に関心はありません (自分でタスクを実行する場合、単純なハミング距離アルゴリズムでおそらく十分であると思います)。

私は小さな言語を開発しているだけで、「未定義のクラス」エラーが検出されたときにユーザーに提案するのは気の利いたことだと思いました (多くの場合、スペルミスの単語です)。しかし、私はこの問題で多くの時間を失いたくありません。

ありがとう

4

2 に答える 2

1

レーベンシュタイン距離は、それを処理する一般的な方法です。すべての単語をリストに追加してから、力ずくで反復処理を行い、最小距離を返します。これは、レーベンシュタイン関数を備えたライブラリの 1 つです: http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringUtils.html

多数の単語があり、高速に実行したい場合は、ngrams を使用する必要があります。各単語をバイグラムにこぼしてから、(バイグラム、単語) をマップに追加します。マップを使用してターゲット単語のバイグラムを検索し、候補を反復処理します。ただし、それはおそらくあなたがやりたいよりも多くの作業です。

于 2012-12-04T04:09:51.967 に答える
1

必ずしもライブラリではありませんが、この記事は本当に役立つと思います。それは主にPythonでスペル修正プログラムがどのように機能するかの一般的な仕組みを説明していますが、それがあなたが特に探しているものである場合に使用できるJava実装へのリンクもあります(以前にJava実装を具体的に使用したことがないことに注意してください)

于 2012-12-04T04:07:52.467 に答える