Quiero encontrar la similitud de cadenas entre dos cadenas. This página tiene ejemplos de algunos de ellos. Python tiene una implementación de Levenshtein algorithm. ¿Hay algún algoritmo mejor (y, con suerte, una biblioteca de Python) bajo estas restricciones?Métricas de similitud de cadenas en Python
- Quiero hacer coincidencias difusas entre cadenas. Por ejemplo, las coincidencias ('Hola, toda tu gente', 'hola, todo tu pueblo') deberían devolver verdadero
- Los falsos negativos son aceptables, falsos positivos, excepto en casos extremadamente raros, no.
- Esto se realiza en un ajuste no en tiempo real, por lo que la velocidad no es (mucho) motivo de preocupación.
- [Editar] Estoy comparando cadenas de varias palabras.
¿Sería algo mejor que la distancia Levenshtein (o la relación Levenshtein) un mejor algoritmo para mi caso?
véase: http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison –
relativa al punto 2: leer esto: http://en.wikipedia.org/wiki/Receiver_operating_characteristic. Según su punto 2, la mejor métrica de similitud sería llamar a cadenas idénticas similares. Cualquier cosa difusa más allá tendrá falsos positivos. –
Umm .. Bueno, entonces lo que estoy buscando es un casi error de inteligencia humana. P.ej. Un humano puede concluir que Appel es probablemente lo mismo que Apple, pero Ape no lo es. Probablemente no estoy aclarando mi punto. – agiliq