Создание словаря с двоичным деревом поиска и хеширования

голоса
1

Я о том, чтобы создать «умный» словарь, который может генерировать подобные слова, если слово от пользователя не в словаре.

Словарь начинается с чтением файла со словами, слово должно быть добавлено к бинарному дереву и хэш-таблице. Хэш-таблица используется для определения, если слово или подобное слово в словаре, хэш-таблица будет иметь логическое действие, чтобы мы могли быстро посмотреть, если бинарное дерево поиска содержит слово. Хэш-таблица должна быть примерно в десять раз больше длины нашего словаря, потому что мы также включают в себя аналогичные слова в хэш-таблице. Как относительно новый для 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);
}
Задан 28/09/2010 в 16:44
источник пользователем
На других языках...                            


2 ответов

голоса
0

Google для 'Java Metaphone' и 'Java Soundex'.

Вы можете попробовать использовать результаты Metaphone кодирования в качестве хэш - ключа, например.

Ответил 28/09/2010 в 17:24
источник пользователем

голоса
0

Я полагаю , что вы должны использовать TRIE или Патриция-Trie .Я не знаю , что вы имеете в виду подобным words.But я предполагаю , что это что - то вроде Google suggest.I уже написал небольшую программу ранее , которая делает автозаполнение. Он имеет зависимость с Патрисией-синтаксического дерева , так будет включать it.You могут использовать его в качестве ссылки.

Ответил 29/09/2010 в 06:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more