ユーザーからの単語が辞書にない場合に同様の単語を生成できる「スマート」辞書を作成しようとしています。
辞書は、単語を含むファイルを読み取ることから始まります。単語はバイナリ ツリーとハッシュ テーブルに追加する必要があります。ハッシュ テーブルは、単語または類似の単語が辞書にあるかどうかを判断するために使用されます。ハッシュ テーブルにはブール効果があるため、バイナリ サーチ ツリーに単語が含まれているかどうかをすばやく調べることができます。ハッシュ テーブルには類似した単語も含まれているため、ハッシュ テーブルは辞書の約 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);
}