Javaに辞書ベースの文字列一致アルゴリズムはありますか?
辞書に基づいて 2 つの文字列の類似度を示すものはありますか?
お気に入り
public double getSimilarity(String str1, String str2);
次のような実装:
getSimilarity("Professor", "Teacher")
非常に高いパーセンテージを与えるでしょうか?
前もって感謝します :)
Javaに辞書ベースの文字列一致アルゴリズムはありますか?
辞書に基づいて 2 つの文字列の類似度を示すものはありますか?
お気に入り
public double getSimilarity(String str1, String str2);
次のような実装:
getSimilarity("Professor", "Teacher")
非常に高いパーセンテージを与えるでしょうか?
前もって感謝します :)
シャウル・マルコビッチとエフゲニー・ガブリロビッチによる素晴らしい仕事があり、彼らの記事で説明されています: Wikipedia-based Semantic Interpretation for Natural Language Processing .
アイデアは次のとおりです: ウィキペディア (またはその他のコンテキスト ソース) をインデックス化します。
各用語 (単語) のマッピングの作成: term -> articles in which the term appears in
.
各用語は基本的にベクトルで表されます。簡単にするために、バイナリ ベクトルとしましょう。したがって、用語t
のエントリは、その用語がドキュメントに表示されるd
場合にのみ「1」になります。t
d
ここで、これらのベクトルが与えられた場合 - 2 つの項が類似しているかどうかを調べるには、 と を表す 2 つのベクトルのt1
ベクトル類似性を取得する必要があります。t2
t1
t2
注: バイナリ ベクトルは簡略化したものです。実際、この記事では、用語がドキュメントにあるtf-idfスコアを使用しています。t
d