Calculatrice Distance de Levenshtein
Calculez la distance de Levenshtein (edit distance) entre chaînes, similarité en %, Damerau avec transposition et recherche du mot le plus proche.
Signaler une erreur de calcul
Aidez-nous à améliorer. Décrivez ce qui ne va pas dans le calcul.
Résultat
| Voce | Valore |
|---|
Afficher les détails
Partager le résultat
Avertissement : ce calcul est purement indicatif. Pour les décisions importantes, consultez un professionnel.
La distance de Levenshtein
La distance de Levenshtein, introduite par Vladimir Levenshtein en 1965, compte le nombre minimal d'opérations élémentaires (insertion, suppression ou substitution) nécessaires pour transformer une chaîne en une autre.
Opérations élémentaires
- Insertion.
- Suppression.
- Substitution.
Distance entre « kitten » et « sitting » = 3.
Les quatre modes
- Distance classique avec matrice DP.
- Similarité normalisée (0-100 %).
- Damerau-Levenshtein avec transposition.
- Mot le plus proche dans une liste.
Algorithme DP Wagner-Fischer
d[i][j] = min(d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1]+c), c = 0 si égaux, 1 sinon. Complexité O(m·n).
Damerau-Levenshtein
Ajoute la transposition : d[i][j] ≤ d[i-2][j-2]+1 si a[i-1]=b[j-2] et a[i-2]=b[j-1]. « teh » → « the » = 1 en Damerau.
Variantes
- Hamming : substitutions uniquement, même longueur.
- Jaro/Jaro-Winkler : privilégie préfixes communs.
- N-gram / Jaccard : sous-chaînes de k caractères.
- Needleman-Wunsch : généralisation pondérée (bioinformatique).
- Smith-Waterman : alignement local.
Applications
- Correcteurs : Aspell, Hunspell.
- Recherche floue : Elasticsearch, Solr.
- Diff/merge : Unix, Git (Myers 1986).
- ADN : BLAST, FASTA.
- Déduplication d'enregistrements.
- Post-traitement OCR.
Optimisations
- Mémoire O(min(m,n)) : deux tableaux 1D suffisent (ligne courante et précédente).
- Seuil d'Ukkonen : pour distance ≤ k, on se restreint à une bande diagonale de largeur 2k+1, complexité O(k·max(m,n)).
- Bit-parallèle Myers 1999 : avec SIMD et opérations bitwise, ~60× plus rapide pour chaînes courtes (jusqu'à 64 caractères).
- Pré-filtrage q-gram avant calcul exact : élimine les candidats lointains via hachage.
Exemple pas à pas
Calculons la distance entre « kitten » et « sitting ». La matrice PD 7×8 donne d[6][7] = 3. Séquence optimale : k→s (substitution), e→i (substitution), ajouter « g » (insertion). Vérification : 3 opérations minimales. Similarité = 1 − 3/7 = 0,571 = 57,1 %.
Ou la distance d'edition alimente le logiciel quotidien
La distance de Levenshtein est l'une de ces idees discretes qui operent sans se voir dans les outils que nous utilisons chaque jour. Le correcteur orthographique l'emploie pour proposer le mot correct le plus proche de celui que vous avez mal ecrit, et l'autocorrection du telephone s'en sert pour deviner votre intention a partir de frappes erronees. La recherche floue, qui trouve des resultats meme si le terme comporte des fautes, s'appuie sur un seuil de similarite derive de cette distance, et les systemes de reconnaissance optique de caracteres l'utilisent pour corriger des lectures douteuses en les comparant a un dictionnaire.
Sa portee va bien au-dela du texte ordinaire. En bio-informatique, des variantes de la meme idee alignent des sequences d'ADN et de proteines pour mesurer leur parente evolutive, un probleme au coeur de la genomique moderne. Les detecteurs de plagiat comparent des documents, les systemes de liaison d'enregistrements fusionnent des bases de donnees en identifiant des entrees quasi identiques ecrites differemment, et les outils de gestion de versions calculent les differences entre fichiers. Dans tous ces cas, compter le nombre minimal d'editions offre une mesure robuste et universelle de la ressemblance de deux chaines.
L'idee de la programmation dynamique derriere l'algorithme
Le calcul efficace de la distance de Levenshtein est un exemple classique de programmation dynamique. Au lieu d'essayer toutes les sequences possibles d'editions, qui seraient astronomiquement nombreuses, on construit un tableau ou chaque case garde la distance entre deux prefixes des chaines. La valeur de chaque case s'obtient de ses trois voisins deja calcules, en choisissant le minimum entre inserer, supprimer ou substituer un caractere. Cette propriete de sous-structure optimale permet de resoudre le probleme en temps proportionnel au produit des longueurs.
Une fois le tableau rempli, le coin inferieur droit contient la distance recherchee, et en parcourant la matrice a rebours on retrouve la sequence concrete d'operations qui la realise. Cette meme structure se relie au probleme de la plus longue sous-sequence commune et a l'alignement de sequences de Needleman-Wunsch, dont la distance d'edition est une variante. La calculatrice affiche la matrice complete pour les chaines courtes, de sorte qu'on peut suivre visuellement comment chaque valeur se propage du coin superieur gauche jusqu'a la solution finale.
Mis à jour en juillet 2026
Commentaires (0)
Connectez-vous pour commenter.
Pas encore de commentaire. Soyez le premier !