2010-08-30 16 views

risposta

7

Una possibilità è BK-alberi -. Vedi il mio blog post su loro here. Un'altra opzione più veloce ma più complessa è Levenshtein Automata, di cui ho anche parlato, here.

+0

Sto usando Hunspell, e restituisce 10 risultati come "hole", "hello", "help", "hero" ecc quando inserisco "helo". Mi aspetto solo "buongiorno", qualcosa che fa Google quando cerco "helo". Ora questo è basato anche su dati statistici, o semplicemente modificare la distanza può bastare a suggerire solo "ciao"? – SexyBeast

4

Esistono strumenti come HunSpell (controllo ortografico open source ampiamente incluso OpenOffice) che hanno affrontato il problema da più punti di vista. Un criterio ampiamente utilizzato per decidere quanto siano vicine le parole è Levenshtein distance che viene utilizzato anche in HunSpell.

3

Si potrebbe utilizzare BLAST

e modificarlo usare il fatto che le parole in un dizionario sono unità discrete che rende il processo di corrispondenza più specifica differenza di una stringa di DNA lunga.

BLAST ha già incorporato in esso la nozione di modifica delle distanze.

In alternativa, è possibile utilizzare alberi suffisso (Dan Gusfeld ha un ottimo libro su algoritmi di base string matching) e costruire nell'idea di modificare le distanze in

Problemi correlati