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);
}
4

2 回答 2

0

谷歌搜索“java metaphone”和“java soundex”。

例如,您可以尝试使用Metaphone编码的结果作为哈希键。

于 2010-09-28T16:24:55.513 回答
0

我建议你应该使用Triepatricia-trie。我不知道你所说的相似词是什么意思。但我猜它就像谷歌建议之类的东西。我之前写过一个小程序,它可以自动完成。它与 patricia-trie 有依赖关系,因此必须包含它。您可以将其用作参考。

于 2010-09-29T05:18:03.110 回答