Distance entre mots

publicité
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
Téléchargement