Lage ordliste med binært søketre og hashing

stemmer
1

Jeg er i ferd med å lage en smart ordbok som kan generere lignende ord hvis ordet fra brukeren er ikke i ordboken.

Ordboken starter med å lese en fil med ord, bør ordet legges til binærtreet og en hash table. Hash table brukes til å avgjøre om ordet eller lignende ord i ordboka, vil hash tabell har en boolsk effekt, slik at vi kan raskt se om det binære søketre inneholder ordet. Hash tabell er å være rundt ti ganger lengden på vår ordbok, fordi vi har også tilsvarende ord til hash tabell. Som relativt ny i Java, vil jeg gjerne tips og forslag til hvordan å lage en hash-funksjon som ville være ideelt for min situasjon.

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);
}
Publisert på 28/09/2010 klokken 15:44
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Google etter 'java metaphone' og 'java soundex'.

Du kan prøve å bruke resultatene av en Metaphone koding som firkanttasten, for eksempel.

Svarte 28/09/2010 kl. 16:24
kilden bruker

stemmer
0

Jeg foreslår at du bør bruke en Trie eller patricia-trie .jeg vet ikke hva du mener med lignende words.But jeg gjetter det er noe sånt som google suggest.I har skrevet et lite program tidligere som gjør autofullfør. den har en avhengighet med patricia-trie så vil måtte inkludere it.You kan bruke den som en referanse.

Svarte 29/09/2010 kl. 05:18
kilden bruker

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