textos para levenshtein distancia comparar comparacion cadenas algoritmos algoritmo fuzzy-search soundex algorithm

fuzzy search - para - Métodos basados ​​en la distancia de Levenshtein Vs Soundex



distancia de levenshtein en java (4)

Estoy de acuerdo con usted en Daitch-Mokotoff, Soundex es parcial porque los encuestadores originales estadounidenses querían nombres "americanizados".

Tal vez un ejemplo sobre la diferencia ayude:

Soundex pone valor de suma al comienzo de una palabra; de hecho, solo considera los primeros 4 sonidos fonéticos. Entonces, si "Schmidt" y "Smith" coincidirán con "Smith" y "Wmith" no lo harán.

El algoritmo de Levenshtein sería mejor para encontrar errores tipográficos: una o dos letras faltantes o reemplazadas producen una alta correlación, mientras que el impacto fonético de esas letras faltantes es menos importante.

No creo que ninguno sea mejor, y consideraría tanto un algoritmo de distancia como uno fonético para ayudar a los usuarios a corregir la entrada mecanografiada.

De acuerdo con este comentario en un hilo relacionado, me gustaría saber por qué los métodos basados ​​en la distancia de Levenshtein son mejores que Soundex.


Soundex es bastante primitivo: fue desarrollado originalmente para ser calculado a mano. Resulta en una clave que se puede comparar.

Soundex funciona bien con nombres occidentales, ya que fue desarrollado originalmente para datos del censo de EE. UU. Está destinado a la comparación fonética.

La distancia de Levenshtein examina dos valores y produce un valor basado en su similitud. Está buscando letras perdidas o sustituidas.

Básicamente Soundex es mejor para encontrar que "Schmidt" y "Smith" podrían ser el mismo apellido.

La distancia de Levenshtein es mejor para detectar que el usuario ha escrito mal "Levnshtein" ;-)


Sugeriría usar Metaphone , no Soundex. Como se señaló, Soundex se desarrolló en el siglo XIX con nombres estadounidenses. Metaphone le dará algunos resultados al verificar el trabajo de los deficientes deletreadores que están "sondeándolo" y deletreando fonéticamente.

La distancia de edición es buena para detectar errores tipográficos, como letras repetidas, letras transpuestas o presionar la tecla incorrecta.

Considere la aplicación para decidir cuál se adaptará mejor a sus usuarios, o utilice ambos juntos, con Metaphone complementando las sugerencias producidas por Levenshtein.

Con respecto a la pregunta original, he usado n-grams con éxito en aplicaciones de recuperación de información.


@Keith :

Como publiqué en la otra pregunta, Daitch-Mokotoff es mejor para nosotros los europeos (y yo diría que los EE. UU.).

También he leído la Wiki en Levenshtein. Pero no veo por qué (en la vida real) es mejor para el usuario que Soundex.