Qual è l'algoritmo migliore per la parola più vicina.Qual è l'algoritmo migliore per la parola più vicina
Possibile dizionario di parole e i primi caratteri nella parola di input possono essere errati.
Qual è l'algoritmo migliore per la parola più vicina.Qual è l'algoritmo migliore per la parola più vicina
Possibile dizionario di parole e i primi caratteri nella parola di input possono essere errati.
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.
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
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.
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
Perché solo i primi caratteri possono essere errati? – Leonid
Puoi prima dare la tua definizione di "più vicino"? – FrustratedWithFormsDesigner
Voglio dire che i primi caratteri possono essere sbagliati. – Avinash