Vytvoření slovník s binárního vyhledávacího stromu a zatřiďování

hlasů
1

Chystám se vytvořit „inteligentní“ slovník, který by mohl generovat podobná slova v případě, že slovo od uživatele není ve slovníku.

Slovník začíná čtení souboru se slovy, je třeba se slovo přidá do binárního stromu a hashovací tabulky. Hash tabulky se používá k určení, zda je slovo nebo podobné slovo ve slovníku, hash tabulka bude mít logický účinek, takže můžeme rychle podívat, pokud je binární vyhledávací strom obsahuje slovo. Hash tabulka musí být kolem desetinásobku délky našeho slovníku, protože jsme také zahrnovat podobná slova do hash tabulky. Jako relativně nový Java, chtěl bych tipy a návrhy na to, jak vytvořit funkce hash, který by byl vhodný pro mé situaci.

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);
}
Položena 28/09/2010 v 16:44
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Google pro 'java metaphone' a 'java soundex'.

Mohli byste zkusit pomocí výsledky metaphone kódování jako křížek, například.

Odpovězeno 28/09/2010 v 17:24
zdroj uživatelem

hlasů
0

Domnívám se, že byste měli používat Trie nebo patricia-trie .I nevím, co máte na mysli s podobnou words.But Hádám, že je to něco jako Google suggest.I si napsal malý program, do předchozího které dělá auto-kompletní. má závislost Patricia-trie tak budou muset zahrnovat it.You jej použít jako referenci.

Odpovězeno 29/09/2010 v 06:18
zdroj uživatelem

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