Distance entre mots Thierry Lecroq Université de Rouen FRANCE Thierry Lecroq (Univ. Rouen) Distance entre mots 1 / 37 Plan 1 Notations 2 Distance de Levenshtein et programmation dynamique 3 Distance de Stoilos Thierry Lecroq (Univ. Rouen) Distance entre mots 2 / 37 Notations A alphabet (ensemble fini de lettres, symboles) A⇤ ensemble des mots finis sur A |w| longueur du mot w 2 A⇤ " mot vide, |"| = 0 A+ ensemble des mots finis non vides sur A u[i] : lettre du mot u à la position i (à partir de 0) u[i . . j] : lettres du mot u des positions i à j Thierry Lecroq (Univ. Rouen) Distance entre mots 3 / 37 Préfixe, facteur, suffixe et sous-mot w = uxv u préfixe x facteur v suffixe Sous-mot Suite de lettres non nécessairement consécutives Thierry Lecroq (Univ. Rouen) Distance entre mots 4 / 37 Distances préfixe et suffixe Distance préfixe définie, pour tous u, v 2 A⇤ , par dpref (u, v) = |u| + |v| 2 ⇥ |lpc(u, v)| où lpc(u, v) est le plus long préfixe commun à u et v. Distance suffixe distance définie symétriquement à la distance préfixe, pour tous u, v 2 A⇤ , par dsu↵ (u, v) = |u| + |v| 2 ⇥ |lsc(u, v)| où lsc(u, v) est le plus long suffixe commun à u et v. Thierry Lecroq (Univ. Rouen) Distance entre mots 5 / 37 Distances facteur et sous-mot Définie de manière analogue aux 2 distances pour tous u, v 2 A⇤ , Distance facteur dfact(u, v) = |u| + |v| 2 ⇥ LCF (u, v) dsmot(u, v) = |u| + |v| 2 ⇥ SMC (u, v) où LCF (u, v) est la longueur maximale des facteurs communs à u et v Distance sous-mot où SMC (u, v) est la longueur maximale des sous-mots communs à u et v Thierry Lecroq (Univ. Rouen) Distance entre mots 6 / 37 Distance de Hamming La distance de Hamming fournit un moyen simple mais pas toujours pertinent pour comparer deux mots. Elle est définie pour deux mots u et v de même longueur comme le nombre de positions en lesquelles les deux mots possèdent des lettres di↵érentes : Ham(u, v) = card{i | u[i] 6= v[i] et 0 i |u| Thierry Lecroq (Univ. Rouen) Distance entre mots 1} 7 / 37 Preambule Algorithmique du texte Index Plusieurs solutions Distance de Hamming: exemple Compter le nombre de symboles différents entre deux textes de même taille. l i s b o a Exemple: v i s i o n 1 0 0 1 0 1 = 3 Le distance de hamming entre lisboa et vision est 3 J. Allali [email protected] Algorithmique du texte LaBRI, Université Bordeaux I Preambule Algorithmique du texte Index Plusieurs solutions Distance d’édition/Levenstein La distance de Hamming est trop simple pour comparer deux séquences. En effet elle ne prend pas en compte certains événements tels que l’insertion et la délétion de base: Ham(examples, exxample) = 6 = Ham(examples, exercise) La distance d’édition entre deux chaînes consiste à trouver une suite d’opérations atomiques (dites d’édition) de coût minimal permettant de transformer la première chaîne en la deuxième. J. Allali [email protected] Algorithmique du texte LaBRI, Université Bordeaux I Distance de Levenshtein Définition On définit la distance de Levenshtein entre deux mots x et y comme étant le nombre minimal d’opérations d’édition pour transformer x en y. Opérations d’édition substitution d’une lettre de x par une lettre de y suppression d’une lettre de x insertion d’une lettre de y Thierry Lecroq (Univ. Rouen) Distance entre mots 13 / 37 Preambule Algorithmique du texte Index Plusieurs solutions Distance d’édition/Levenstein on assigne un coût à chaque opération d’édition: csub , cdel et cins tels que ssub est une distance et cdel (a) = cins (a) Le coût c(S) d’une série d’opérations d’édition S = {s1 , s2 , . . . } est défini par la somme des coûts de chaque opération. J. Allali [email protected] Algorithmique du texte LaBRI, Université Bordeaux I