Calculateur de distance de Levenshtein | Distance d'édition avec détail des opérations
Un calculateur qui indique l'écart entre deux chaînes sous forme d'un nombre minimal d'éditions (distance de Levenshtein), puis décompose ce nombre en insertions, suppressions et substitutions, avec un pourcentage de similarité et une valeur normalisée de 0 à 1.
💡 À propos de cet outil
Combien d'éditions transforment « calculer » en « calculé » ? Quand vous développez un correcteur orthographique, une recherche floue ou une autocorrection, ce nombre minimal d'éditions sert de base à votre seuil de correspondance. La plupart des calculateurs s'arrêtent à la distance brute : vous ne voyez donc jamais si l'écart vient surtout des substitutions ou des insertions et suppressions, ce qui est précisément l'information utile lors du réglage.
La distance de Levenshtein compte chaque insertion, suppression et substitution comme une édition et renvoie le plus petit nombre d'éditions transformant une chaîne en une autre. Cet outil calcule la distance par programmation dynamique, puis remonte le chemin optimal pour séparer les décomptes de chaque opération. Vous pouvez coller des chaînes réelles tirées de vos données et observer l'évolution du détail, afin de choisir un seuil pertinent avant de l'intégrer au code. Il compare jusqu'à 2000 caractères par côté.
🧐 Questions fréquentes
Comment le pourcentage de similarité est-il calculé ?
Par (1 - distance / max(longA, longB)) * 100. Des chaînes identiques obtiennent 100 % et le score baisse vers 0 % à mesure que la distance approche la longueur de la chaîne la plus longue.
À quoi sert la distance normalisée ? C'est la distance d'édition divisée par la longueur de la chaîne la plus longue, soit une valeur de 0 à 1. Utilisez-la pour comparer équitablement des paires de longueurs différentes : une distance de 3 n'a pas le même sens entre une paire de 7 caractères et une de 70.
Quand préférer Levenshtein à Jaro-Winkler ? Levenshtein pondère chaque édition de caractère de façon égale, ce qui convient aux adresses et aux longs noms d'entreprise. Jaro-Winkler récompense un préfixe commun et convient mieux aux noms de personne courts ; choisissez selon la nature de vos données.
En quoi diffère-t-il de Damerau-Levenshtein ? Le Levenshtein classique compte l'échange de deux caractères adjacents (une transposition) comme deux éditions. Pour traiter « conversion » et « convresion » comme une seule faute, utilisez la variante Damerau-Levenshtein, qui admet les transpositions.
Comment la casse et les emojis sont-ils gérés ? Désactiver l'option de casse rend A et a équivalents. La comparaison travaille par unités de code, donc un emoji en paire de substitution est compté en interne comme deux unités, ce qui peut gonfler la distance pour un texte riche en emojis.
Que se passe-t-il au-delà de 2000 caractères ? La saisie est tronquée à 2000 caractères par chaîne. L'étape de programmation dynamique croît avec le produit des deux longueurs, donc cette limite garde le calcul praticable dans le navigateur.
📚 Le saviez-vous
Le mathématicien soviétique Vladimir Levenshtein a défini cette distance en 1965 dans un article sur les codes correcteurs d'erreurs, bien avant qu'elle ne devienne incontournable pour les correcteurs orthographiques, l'alignement de séquences d'ADN, la correction d'OCR et les algorithmes diff du contrôle de version. Une propriété élégante : la distance n'est jamais inférieure à l'écart de longueurs ni supérieure à la longueur de la chaîne la plus longue, d'où une valeur normalisée toujours propre entre 0 et 1. En déboguant un comparateur flou, lire le détail des opérations en dit souvent plus que le chiffre brut : beaucoup de substitutions signalent des caractères permutés, tandis que des insertions ou suppressions déséquilibrées indiquent qu'une chaîne contient simplement du contenu en plus.