Je souhaite trouver une similarité de chaîne entre deux chaînes. This page a des exemples de certains d'entre eux. Python a une implémnetation de Levenshtein algorithm. Y a-t-il un meilleur algorithme, (et espérons une bibliothèque python), sous ces contraintes.Métriques de similarité de chaîne en Python
- Je veux faire des correspondances floues entre les chaînes. par exemple, les correspondances ('Bonjour, Tout le monde', 'bonjour, tout le monde') devraient être vraies
- Les faux négatifs sont acceptables, les faux positifs, sauf dans des cas extrêmement rares, ne le sont pas.
- Ceci est fait dans un réglage non temps réel, donc la vitesse n'est pas (beaucoup) préoccupante.
- [Modifier] Je compare plusieurs chaînes de mots.
Quelque chose d'autre que la distance de Levenshtein (ou le rapport de Levenshtein) serait un meilleur algorithme pour mon cas?
voir: http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison –
visées au point 2: lire ceci: http://en.wikipedia.org/wiki/Receiver_operating_characteristic. Selon votre point 2, la meilleure mesure de similarité serait d'appeler seulement des chaînes identiques. Tout ce qui est flou au-delà aura des faux positifs. –
Umm .. Eh bien alors, l'intelligence proche de l'homme, aucune erreur n'est ce que je cherche. Par exemple. Un humain peut conclure que Appel est proabbaly même que Apple, mais Ape ne l'est pas. Probablement pas en train de préciser mon point de vue. – agiliq