Я собираюсь создать «умный» словарь, который мог бы генерировать похожие слова, если слова пользователя нет в словаре.
Словарь начинается с чтения файла со словами, слово должно быть добавлено в двоичное дерево и хеш-таблицу. Хеш-таблица используется для определения, находится ли слово или подобное слово в словаре, хеш-таблица будет иметь логический эффект, поэтому мы можем быстро посмотреть, содержит ли слово двоичное дерево поиска. Хеш-таблица должна быть примерно в десять раз длиннее нашего словаря, потому что мы также включаем слова, аналогичные хеш-таблице.
Будучи относительно новым для 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);
}