Outil pour calculer la distance de Levenshtein entre 2 mots (chaine de caractères) et rechercher des mots proches dans le dictionnaire ou dans une liste.
Distance de Levenshtein - dCode
Catégorie(s) : Traitement de Données
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
La distance de Levenshtein est une méthode algorithmique permettant de quantifier une distance entre deux mots (plus généralement entre 2 chaines de caractères). Deux mots proches (c'est-à-dire que peu de choses les séparent orthographiquement : ils ont plusieurs lettres communes, en même position) vont alors avoir une faible distance, tandis que deux mots très différents vont avoir une distance grande. Cette distance s'appelle aussi distance d'édition, et est égale au nombre minimal de caractères à supprimer, insérer, ou remplacer pour passer d'une chaîne à l'autre.
Exemple : DISTANCE et DISTANTE sont similaires graphiquement et ont une distance de Levenshtein de 1
Exemple : MOT et MAUX sont similaires phonétiquement (homophone) mais orthographiquement éloignés, ils ont une distance de Levenshtein de 3
La distance de Levenshtein est symétrique, la valeur de la distance de CHAINE1 à CHAINE2 est égale à la valeur de distance de CHAINE2 à CHAINE1
L'algorithme de Levenshtein évalue le nombre de différences entre les deux chaines de caractères, les différences peuvent être de 3 types : une substitution (remplacement d'un caractères par un autre), une insertion (ajout d'un nouveau caractère) ou une suppression (effacement d'un caractère).
$$ \operatorname{Distance}(a,b) = \begin{cases} ||a|| & \text{ si } ||b|| = 0, \\ ||b|| & \text{ si } ||a|| = 0, \\ \operatorname{Distance}(a', b') & \text{ si } a[0] = b[0] \\ 1 + \min \begin{cases} \operatorname{Distance}(a', b) \\ \operatorname{Distance}(a, b') \\ \operatorname{Distance}(a', b') \\ \end{cases} & \text{ sinon } \end{cases} $$
Avec $ ||a|| $ la taille de la chaine, et $ a' $ la chaine $ a $ privée de son premier caractère (noté $ a[0] $)
La distance de Damerau-Levenshtein est similaire à la distance de Levenshtein mais ajoute une différence de type transposition de 2 caractères adjacents (ce qui est une faute typographique courante).
Utiliser l'outil de dCode pour mesurer la similarité entre deux chaînes de caractères.
Exemple : DCODE est a une distance de 2 de DECODER (1- ajout du E et 2- ajout du R)
Exemple : DECODER est a une distance de 2 de DCODE (1- suppression du E et 2- suppression du R)
Utiliser l'outil de dCode en entrant un mot et un dictionnaire avec lequel comparer le mot.
Tous les mots ayant une orthographe proche seront retournés.
Calculer la distance entre 2 chaines de caractères peut permettre de connaitre leur quantité de différences et donc également leur quantité de similitude. Ainsi l'algorithme de calcul de Levenshtein peut être utilisé pour déterminer des fautes de frappe ou des fautes d'orthographe, mots pour lesquels la proximité des chaines comparées est forte.
L'algorithme le plus connu pour calculer de la distance de Levenshtein a été créé par Wagner et Fischer en 1974. // Pseudo-code
function levenshteinDistance(str1, str2) {
size1 = length(str1)
size2 = length(str2)
matrix = [ size1 + 1 ] x [ size2 + 1 ]
for i from 0 to size1 { matrix[i][0] = i }
for j from 0 to size2 { matrix[0][j] = j }
for i from 1 to size1 {
for j from 1 to size2 {
if (str1[i - 1] == str2[j - 1]) cost = 0
else cost = 1
matrix[i][j] = minimum( matrix[i - 1][j] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j - 1] + cost )
}
}
return matrix[size1][size2]
}
dCode se réserve la propriété du code source pour "Distance de Levenshtein". Tout algorithme pour "Distance de Levenshtein", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Distance de Levenshtein" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou toute base de données, ou accès API à "Distance de Levenshtein" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Distance de Levenshtein" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source.
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Distance de Levenshtein sur dCode.fr [site web en ligne], consulté le 16/04/2025,