1

ユーザーからの単語が辞書にない場合に同様の単語を生成できる「スマート」辞書を作成しようとしています。

辞書は、単語を含むファイルを読み取ることから始まります。単語はバイナリ ツリーとハッシュ テーブルに追加する必要があります。ハッシュ テーブルは、単語または類似の単語が辞書にあるかどうかを判断するために使用されます。ハッシュ テーブルにはブール効果があるため、バイナリ サーチ ツリーに単語が含まれているかどうかをすばやく調べることができます。ハッシュ テーブルには類似した単語も含まれているため、ハッシュ テーブルは辞書の約 10 倍の長さにする必要があります。Java は比較的新しいので、私の状況に最適なハッシュ関数を作成する方法についてのヒントと提案をお願いします。

public String [] similarOne(String word) {

    char [] word_array = word.toCharArray();
    char [] tmp;

    String [] words = new String[word_array.length-1];

    for(int i = 0; i < word_array.length - 1; i++) {
        tmp = word_array.clone();
        words[i] = swap(i, i+1, tmp);
    }
    return words;
}

public String swap(int a, int b, char [] word) {
    char tmp = word[a];
    word[a] = word[b];
    word[b] = tmp;

    return new String(word);
}
4

2 に答える 2

0

「java metaphone」および「java soundex」は Google で検索してください。

たとえば、 Metaphoneエンコーディングの結果をハッシュ キーとして使用してみることができます。

于 2010-09-28T16:24:55.513 に答える
0

Trieまたはpatricia-trieを使用することをお勧めします。似たような言葉で何を意味しているのかわかりませんが、Google の提案のようなものだと思います。オートコンプリートを行う小さなプログラムを以前に作成しました。 patricia-trie との依存関係があるため、含める必要があります。参照として使用できます。

于 2010-09-29T05:18:03.110 に答える