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". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Distance de Levenshtein", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les 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 les données, en téléchargement, script, ou les accès API à "Distance de Levenshtein" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Distance de Levenshtein" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Distance de Levenshtein sur dCode.fr [site web en ligne], consulté le 04/12/2024,