Calculateur de distance de Levenshtein
Données
| Première chaîne | kitten |
|---|---|
| Deuxième chaîne | sitting |
Calculateur de distance de Levenshtein
Calcule la distance de Levenshtein (distance d’édition) entre deux chaînes : le nombre minimal d’insertions, de suppressions et de substitutions d’un seul caractère nécessaires pour transformer l’une en l’autre, ainsi qu’un pourcentage de similarité.
Données
Chaînes
Résultats
Saisissez une valeur pour afficher les résultats.
Résultats
Distance de Levenshtein
La distance de Levenshtein, aussi appelée distance d’édition, mesure à quel point deux chaînes diffèrent en comptant le plus petit nombre de modifications d’un seul caractère nécessaires pour transformer l’une en l’autre. Les modifications autorisées sont l’insertion, la suppression et la substitution, chacune au coût de un. Le calculateur prend deux chaînes et renvoie cette distance avec un pourcentage de similarité, utile pour la correction orthographique, la recherche approximative et la comparaison de séquences comme l’ADN.
Les trois opérations d’édition
Toute transformation entre deux chaînes peut s’exprimer comme une suite de trois mouvements de base. Une insertion ajoute un caractère, une suppression en retire un et une substitution remplace un caractère par un autre. La distance de Levenshtein cherche la suite la plus économique de ces mouvements, chacun coûtant un. Comme la substitution est une seule étape et non une suppression suivie d’une insertion, changer une lettre compte toujours pour une modification, pas deux.
Nommée d’après Vladimir Levenshtein, qui l’a définie en 1965, cette mesure généralise la plus ancienne Calculateur de distance de Hamming : la distance de Hamming n’autorise que les substitutions et seulement pour des chaînes de même longueur, tandis que celle de Levenshtein admet en plus les insertions et les suppressions, et traite donc des chaînes de longueurs différentes.
Le tableau de programmation dynamique
La distance se calcule en remplissant un tableau comportant une ligne par caractère de la première chaîne (plus une ligne vide en tête) et une colonne par caractère de la seconde (plus une colonne vide en tête). La cellule contient la distance d’édition entre les premiers caractères de A et les premiers caractères de B.
La première ligne et la première colonne comptent les modifications par rapport à la chaîne vide, d’où et . Toute autre cellule est le minimum de trois candidats :
D[i][j]=min⎩⎨⎧D[i−1][j]+1D[i][j−1]+1D[i−1][j−1]+c(suppression)(insertion)(substitution)où le coût de substitution vaut 0 lorsque les caractères coïncident et 1 lorsqu’ils diffèrent. La réponse se trouve dans la cellule en bas à droite. Remplir le tableau prend un temps proportionnel au produit des deux longueurs, .
Exemple résolu
Prenons le couple classique « kitten » et « sitting ». Le chemin optimal à travers le tableau donne trois modifications :
kittensittensittin→sitten→sittin→sitting(substituer k→s)(substituer e→i)(inseˊrer g)Aucune suite plus courte n’existe, la distance vaut donc 3. La chaîne la plus longue compte 7 caractères, si bien que la similarité est , soit environ 57 %.
La similarité et ses limites
Le calculateur normalise la distance brute en un score de similarité au moyen de
Diviser par la longueur de la chaîne la plus longue maintient le résultat entre 0 % pour des chaînes totalement différentes et 100 % pour des chaînes identiques ; deux chaînes vides sont considérées identiques. Il s’agit d’une normalisation courante — d’autres outils divisent par la somme des longueurs ou utilisent des mesures fondées sur des rapports —, de sorte que les scores de similarité issus de sources différentes ne sont pas directement comparables.
Où elle est utilisée
Les correcteurs orthographiques classent les corrections proposées selon leur distance d’édition au mot mal orthographié. Les systèmes de recherche et de bases de données l’emploient pour la recherche approximative, tolérant les fautes de frappe lors de la consultation de noms ou d’adresses. En bio-informatique, la distance d’édition fonde l’alignement de séquences pour comparer ADN, ARN et protéines, où insertions et suppressions correspondent à des mutations. Le modèle de coût de Levenshtein simple traite toutes les modifications de la même façon ; les applications qui exigent des pénalités différentes selon les opérations, ou qui doivent aligner efficacement de très longues séquences, l’étendent avec des coûts pondérés ou des algorithmes d’alignement spécialisés.
Questions fréquentes (FAQ)
Qu’est-ce que la distance de Levenshtein ?
La distance de Levenshtein, aussi appelée distance d’édition, est le nombre minimal de modifications d’un seul caractère — insertions, suppressions ou substitutions — nécessaires pour transformer une chaîne en une autre. Elle a été introduite en 1965 par le mathématicien soviétique Vladimir Levenshtein.
Par exemple, la distance entre « kitten » et « sitting » est de 3 : substituer k→s, substituer e→i et insérer un g à la fin. Aucune séquence de modifications plus courte n’existe.
La valeur se calcule à l’aide d’un tableau de programmation dynamique dont chaque cellule contient la distance d’édition entre des préfixes des deux chaînes. Remplir le tableau prend un temps proportionnel au produit des deux longueurs.
En quoi diffère-t-elle de la distance de Hamming ?
La distance de Hamming ne compte que les substitutions et n’est définie que pour des chaînes de même longueur : elle compare les caractères position par position. La distance de Levenshtein autorise en plus les insertions et les suppressions ; elle fonctionne donc pour des chaînes de longueurs différentes et capte les décalages d’alignement.
Pour deux chaînes de même longueur, la distance de Levenshtein est toujours inférieure ou égale à la distance de Hamming, car la substitution fait partie de ses opérations, mais elle peut trouver un chemin plus économique au moyen d’insertions et de suppressions.
Comment le pourcentage de similarité est-il calculé ?
La similarité est exprimée par 1 − distance / max(len_a, len_b), sous forme de pourcentage. Diviser par la longueur de la chaîne la plus longue normalise le score dans l’intervalle de 0 % (totalement différentes) à 100 % (identiques). Lorsque les deux chaînes sont vides, la similarité vaut par convention 100 %.
Il s’agit d’une normalisation courante ; d’autres outils divisent par la somme des longueurs ou utilisent des mesures fondées sur des rapports, si bien que les scores de similarité ne sont pas directement comparables d’une définition à l’autre.