Distance entre mots
Thierry Lecroq
Universit´ e 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 ∈ A ∗ ε mot vide, |ε| = 0
A + ensemble des mots finis non vides sur A u[i] : lettre du mot u ` a la position i (` a partir de 0) u[i . . j] : lettres du mot u des positions i ` a j
Thierry Lecroq (Univ. Rouen) Distance entre mots 3 / 37
Pr´ efixe, facteur, suffixe et sous-mot
w = uxv
u pr´ efixe x facteur v suffixe Sous-mot
Suite de lettres non n´ ecessairement cons´ ecutives
Thierry Lecroq (Univ. Rouen) Distance entre mots 4 / 37
Distances pr´ efixe et suffixe
Distance pr´ efixe d´ efinie, pour tous u, v ∈ A ∗ , par
dpref (u, v) = |u| + |v| − 2 × |lpc(u, v)|
o` u lpc(u, v) est le plus long pr´ efixe commun ` a u et v.
Distance suffixe distance d´ efinie sym´ etriquement ` a la distance pr´ efixe, pour tous u, v ∈ A ∗ , par
dsuff (u, v) = |u| + |v| − 2 × |lsc(u, v)|
o` u lsc(u, v) est le plus long suffixe commun ` a u et v.
Thierry Lecroq (Univ. Rouen) Distance entre mots 5 / 37
Distances facteur et sous-mot
D´ efinie de mani` ere analogue aux 2 distances pour tous u, v ∈ A ∗ ,
Distance facteur
dfact (u, v) = |u| + |v| − 2 × LCF (u, v) o` u LCF (u, v) est la longueur maximale des facteurs communs ` a u et v
Distance sous-mot
dsmot (u, v) = |u| + |v| − 2 × SMC (u, v) o` u SMC (u, v) est la longueur maximale des sous-mots communs ` a 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´ efinie pour deux mots u et v de mˆ eme longueur comme le nombre de positions en lesquelles les deux mots poss` edent des lettres diff´ erentes :
Ham(u, v) = card{i | u[i] 6= v[i] et 0 ≤ i ≤ |u| − 1}
Thierry Lecroq (Univ. Rouen) Distance entre mots 7 / 37
Plan
1 Notations
2 Distance de Levenshtein et programmation dynamique
3 Distance de Stoilos
Thierry Lecroq (Univ. Rouen) Distance entre mots 8 / 37
D’un mot ` a l’autre
plage
bravo
Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37
D’un mot ` a l’autre
plage
bravo place
Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37
D’un mot ` a l’autre
plage
bravo place glace
Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37
D’un mot ` a l’autre
plage
bravo place glace grace
Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37
D’un mot ` a l’autre
plage
bravo place glace grace grave
Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37
D’un mot ` a l’autre
plage
bravo place glace grace grave brave
Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37
Transformer en mot en un autre
3 op´ erations
substituer une lettre du premier par une lettre du second supprimer une lettre du premier mot
ins´ erer une lettre du second mot
But
En faire le moins possible ! !
Thierry Lecroq (Univ. Rouen) Distance entre mots 10 / 37
Transformer en mot en un autre
3 op´ erations
substituer une lettre du premier par une lettre du second supprimer une lettre du premier mot
ins´ erer une lettre du second mot
But
En faire le moins possible ! !
Thierry Lecroq (Univ. Rouen) Distance entre mots 10 / 37
Transformer en mot en un autre
3 op´ erations
substituer une lettre du premier par une lettre du second supprimer une lettre du premier mot
ins´ erer une lettre du second mot But
En faire le moins possible ! !
Thierry Lecroq (Univ. Rouen) Distance entre mots 10 / 37
Transformer en mot en un autre
3 op´ erations
substituer une lettre du premier par une lettre du second supprimer une lettre du premier mot
ins´ erer une lettre du second mot But
En faire le moins possible ! !
Thierry Lecroq (Univ. Rouen) Distance entre mots 10 / 37
Exemple
Transformer niche en chien
Thierry Lecroq (Univ. Rouen) Distance entre mots 11 / 37
Comparaison
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
2 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
2 2 1
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3
4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3
4 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4
5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4
5 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
6
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
6 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
3 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
3 2 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 3 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 3 3 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 3
4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 3
4 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3
5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3
5 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 ?
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
5 5
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4 0
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
- n
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
-
3 e n
e
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
-
3 e n
2 - e
i
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
-
3 e n
2 - e
i 2
h h
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
-
3 e n
2 - e
i 2
h h 2
c c
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
-
3 e n
2 - e
i 2
h h 2
c c 1
i -
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Comparaison
n i c h e
c h i e n
0 1 2 3 4 5
1 2 3 4 5
1 2 3 4 4
2 2 2 3 4
2 3 3 3 4
3 2 3 4 4
4 3 3 3 4 4
0
3
-
3 e n
2 - e
i 2
h h 2
c c 1
i - n -
Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37
Distance de Levenshtein
D´ efinition
On d´ efinit la distance de Levenshtein entre deux mots x et y comme ´ etant le nombre minimal d’op´ erations d’´ edition pour transformer x en y.
Op´ erations d’´ edition
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
Calcul de la distance de Levenshtein
A partir des deux mots ` x, y ∈ A ∗ de longueurs respectives m et n, on d´ efinit la table T ` a m + 1 lignes et n + 1 colonnes par
T [i, j] = Lev (x[0 . . i], y[0 . . j]) pour i = −1, 0, . . . , m − 1 et j = −1, 0, . . . , n − 1.
Thierry Lecroq (Univ. Rouen) Distance entre mots 14 / 37
Calcul de la distance de Levenshtein
Pour calculer T [i, j], on utilise la formule de r´ ecurrence suivante : Pour i = 0, 1, . . . , m − 1 et j = 0, 1, . . . , n − 1, on a :
T[−1, −1] = 0
T [i, −1] = T [i − 1, −1] + 1 T [−1, j] = T [−1, j − 1] + 1
T [i, j] = min
T [i − 1, j − 1] + Sub(x[i], y[j]) T [i − 1, j] + 1
T [i, j − 1] + 1 o` u
Sub(a, b) =
( 0 si a = b 1 sinon
Thierry Lecroq (Univ. Rouen) Distance entre mots 15 / 37
Calcul de la distance de Levenshtein
La valeur ` a la position [i, j] dans la table T , avec i, j ≥ 0, ne d´ epend ainsi que des valeurs aux positions [i − 1, j − 1], [i − 1, j] et [i, j − 1]
Thierry Lecroq (Univ. Rouen) Distance entre mots 16 / 37
Calcul par programmation dynamique
Levenshtein( x, m, y, n )
1 T[−1, −1] ← 0
2 pour i ← 0 ` a m − 1 faire 3 T [i, −1] ← T [i − 1, −1] + 1 4 pour j ← 0 ` a n − 1 faire 5 T [−1, j] ← T [−1, j − 1] + 1 6 pour i ← 0 ` a m − 1 faire 7 T [i, j] ← min
T [i − 1, j − 1] + Sub(x[i], y[j]) T [i − 1, j] + 1
T [i, j − 1] + 1 8 Retourner T [m − 1, n − 1]
Thierry Lecroq (Univ. Rouen) Distance entre mots 17 / 37
Un-alignement( x, m, y, n )
1 z ← (ε, ε)
2 (i, j) ← (m − 1, n − 1)
3 tantque i 6= −1 et j 6= −1 faire
4 si T [i, j] = T [i − 1, j − 1] + Sub(x[i], y[j]) alors 5 z ← (x[i], y[j]) · z
6 (i, j) ← (i − 1, j − 1)
7 sinon si T[i, j] = T [i − 1, j] + 1 alors 8 z ← (x[i], ε) · z
9 i ← i − 1
10 sinon z ← (ε, y[j]) · z 11 j ← j − 1
12 tantque i 6= −1 faire 13 z ← (x[i], ε) · z 14 i ← i − 1
15 tantque j 6= −1 faire 16 z ← (ε, y[j]) · z 17 j ← j − 1 18 Retourner z
Thierry Lecroq (Univ. Rouen) Distance entre mots 18 / 37
Les-alignements( x, m, y, n )
1 Aa( m − 1, n − 1, (ε, ε) )
Aa( i, j, z )
1 si i 6= −1 et j 6= −1 et T [i, j] = T [i − 1, j − 1] + Sub(x[i], y[j]) alors 2 Aa( i − 1, j − 1, (x[i], y[j]) · z )
3 si i 6= −1 et T[i, j] = T [i − 1, j] + 1 alors 4 Aa( i − 1, j, (x[i], ε) · z )
5 si j 6= −1 et T [i, j] = T [i, j − 1] + 1 alors 6 Aa( i, j − 1, (ε, y[j]) · z )
7 si i = −1 et j = −1 alors
8 signaler que z est un alignement
Thierry Lecroq (Univ. Rouen) Distance entre mots 19 / 37
Distance de Damerau-Levenshtein
Damerau = Levenshtein + transposition
Thierry Lecroq (Univ. Rouen) Distance entre mots 20 / 37
Calcul du plus long sous-mot commun ` a deux mots
Pour i = 0, 1, . . . , m − 1 et j = 0, 1, . . . , n − 1, on a : S[i, j] =
( S[i − 1, j − 1] + 1 si x[i] = y[j]
max{S[i − 1, j], S[i, j − 1]} sinon
Thierry Lecroq (Univ. Rouen) Distance entre mots 21 / 37
SMC( x, m, y, n )
. Initialisation de la premi` ere colonne 1 pour i ← −1 ` a m − 1 faire
2 S[i, −1] ← 0 . Calcul
3 pour j ← 0 ` a n − 1 faire 4 S[−1, j] ← 0
5 pour i ← 0 ` a m − 1 faire 6 si x[i] = y[j] alors
7 S[i, j] ← S[i − 1, j − 1] + 1
8 sinon S[i, j] ← max{S[i − 1, j], S[i, j − 1]}
9 Retourner S[m − 1, n − 1]
Thierry Lecroq (Univ. Rouen) Distance entre mots 22 / 37
Alignement local de s´ equences
GTCGGATCAGCAGACCGATTCTGGGCGCTGCGTCGCATCGGTGGCAGGACTCCTGAGTATATTTCAGAAC TGAACCATTTCAACCGAGCTGAAGCATTCTGCCTTCCTAGTGGTACCAGTCCAATTTAGGAGAGCCAAGC AGACTATCAGTCATCATGGCGAACCTTGGCTACTGGCTGCTGGCCCTCTTTGTGACTATGTGGACTGATG TCGGCCTCTGCAAAAAGCGGCCAAAGCCTGGAGGGTGGAACACCGGTGGAAGCCGGTATCCCGGGCAGGG AAGCCCTGGAGGCAACCGTTACCCACCTCAGGGTGGCACCTGGGGGCAGCCCCACGGTGGTGGCTGGGGA CAACCCCATGGGGGCAGCTGGGGACAACCTCATGGTGGTAGTTGGGGTCAGCCCCATGGCGGTGGATGGG GCCAAGGAGGGGGTACCCATAATCAGTGGAACAAGCCCAGCAAACCAAAAACCAACCTCAAGCATGTGGC AGGGGCTGCGGCAGCTGGGGCAGTAGTGGGGGGCCTTGGTGGCTACATGCTGGGGAGCGCCATGAGCAGG CCCATGATCCATTTTGGCAACGACTGGGAGGACCGCTACTACCGTGAAAACATGTACCGCTACCCTAACC AAGTGTACTACAGGCCAGTGGATCAGTACAGCAACCAGAACAACTTCGTGCACGACTGCGTCAATATCAC CATCAAGCAGCACACGGTCACCACCACCACCAAGGGGGAGAACTTCACCGAGACCGATGTGAAGATGATG GAGCGCGTGGTGGAGCAGATGTGCGTCACCCAGTACCAGAAGGAGTCCCAGGCCTATTACGACGGGAGAA GATCCAGCAGCACCGTGCTTTTCTCCTCCCCTCCTGTCATCCTCCTCATCTCCTTCCTCATCTTCCTGAT CGTGGGATGAGGGAGGCCTTCCTGCTTGTTCCTTCGCATTCTCGTGGTCTAGGCTGGGGGAGGGGTTATC CACCTGTAGCTCTTTCAATTGAGGTGGTTCTCATTCTTGCTTCTCTGTGTCCCCCATAGGCTAATACCCC TGGCACTGATGGGCCCTGGGAAATGTACAGTAGACCAGTTGCTCTTTGCTTCAGGTCCCTTTGATGGAGT CTGTCATCAGCCAGTGCTAACACCGGGCCAATAAGAATATAACACCAAATAACTGCTGGCTAGTTGGGGC TTTGTTTTGGTCTAGTGAATAAATACTGGTGTATCCCCTGACTTGTACCCAGAGTACAAGGTGACAGTGA CACATGTAACTTAGCATAGGCAAAGGGTTCTACAACCAAAGAAGCCACTGTTTGGGGATGGCGCCCTGGA AAACAGCCTCCCACCTGGGATAGCTAGAGCATCCACACGTGGAATTCTTTCTTTACTAACAAACGATAGC TGATTGAAGGCAACAGGAAAAAAAAAATCAAATTGTCCTACTGACGTTGAAAGCAAACCTTTGTTCATTC CCAGGGCACTAGAATGATCTTTAGCCTTGCTTGGATTGAACTAGGAGATCTTGACTCTGAGGAGAGCCAG
>gi|13173472|ref|NM_011170.1| Mus musculus prion protein (Prnp), mRNA
1540 premiers nucl´ eotides
>ref|NG_000007.3|:47759−49344 Homo sapiens beta globin region (HBB@) on chromosome 11 ACACTCGCTTCTGGAACGTCTGAGGTTATCAATAAGCTCCTAGTCCAGACGCCATGGGTCATTTCACAGA GGAGGACAAGGCTACTATCACAAGCCTGTGGGGCAAGGTGAATGTGGAAGATGCTGGAGGAGAAACCCTG GGAAGGTAGGCTCTGGTGACCAGGACAAGGGAGGGAAGGAAGGACCCTGTGCCTGGCAAAAGTCCAGGTC GCTTCTCAGGATTTGTGGCACCTTCTGACTGTCAAACTGTTCTTGTCAATCTCACAGGCTCCTGGTTGTC TACCCATGGACCCAGAGGTTCTTTGACAGCTTTGGCAACCTGTCCTCTGCCTCTGCCATCATGGGCAACC CCAAAGTCAAGGCACATGGCAAGAAGGTGCTGACTTCCTTGGGAGATGCCACAAAGCACCTGGATGATCT CAAGGGCACCTTTGCCCAGCTGAGTGAACTGCACTGTGACAAGCTGCATGTGGATCCTGAGAACTTCAAG GTGAGTCCAGGAGATGTTTCAGCCCTGTTGCCTTTAGTCTCGAGGCAACTTAGACAACGGAGTATTGATC TGAGCACAGCAGGGTGTGAGCTGTTTGAAGATACTGGGGTTGGGGGTGAAGAAACTGCAGAGGACTAACT GGGCTGAGACCCAGTGGTAATGTTTTAGGGCCTAAGGAGTGCCTCTAAAAATCTAGATGGACAATTTTGA CTTTGAGAAAAGAGAGGTGGAAATGAGGAAAATGACTTTTCTTTATTAGATTCCAGTAGAAAGAACTTTC ATCTTTCCCTCATTTTTGTTGTTTTAAAACATCTATCTGGAGGCAGGACAAGTATGGTCGTTAAAAAGAT GCAGGCAGAAGGCATATATTGGCTCAGTCAAAGTGGGGAACTTTGGTGGCCAAACATACATTGCTAAGGC TATTCCTATATCAGCTGGACACATATAAAATGCTGCTAATGCTTCATTACAAACTTATATCCTTTAATTC CAGATGGGGGCAAAGTATGTCCAGGGGTGAGGAACAATTGAAACATTTGGGCTGGAGTAGATTTTGAAAG TCAGCTCTGTGTGTGTGTGTGTGTGTGCGCGCGCGCGTGTGTGTGTGTGTGTCAGCGTGTGTTTCTTTTA ACGTCTTCAGCCTACAACATACAGGGTTCATGGTGGCAAGAAGATAGCAAGATTTAAATTATGGCCAGTG ACTAGTGCTTGAAGGGGAACAACTACCTGCATTTAATGGGAAGGCAAAATCTCAGGCTTTGAGGGAAGTT AACATAGGCTTGATTCTGGGTGGAAGCTTGGTGTGTAGTTATCTGGAGGCCAGGCTGGAGCTCTCAGCTC ACTATGGGTTCATCTTTATTGTCTCCTTTCATCTCAACAGCTCCTGGGAAATGTGCTGGTGACCGTTTTG GCAATCCATTTCGGCAAAGAATTCACCCCTGAGGTGCAGGCTTCCTGGCAGAAGATGGTGACTGCAGTGG CCAGTGCCCTGTCCTCCAGATACCACTGAGCTCACTGCCCATGATTCAGAGCTTTCAAGGATAGGCTTTA
1540 premiers nucl´ eotides
Thierry Lecroq (Univ. Rouen) Distance entre mots 23 / 37
Alignement local de s´ equences
GTCGGATCAGCAGACCGATTCTGGGCGCTGCGTCGCATCGGTGGCAGGACTCCTGAGTATATTTCAGAAC TGAACCATTTCAACCGAGCTGAAGCATTCTGCCTTCCTAGTGGTACCAGTCCAATTTAGGAGAGCCAAGC AGACTATCAGTCATCATGGCGAACCTTGGCTACTGGCTGCTGGCCCTCTTTGTGACTATGTGGACTGATG TCGGCCTCTGCAAAAAGCGGCCAAAGCCTGGAGGGTGGAACACCGGTGGAAGCCGGTATCCCGGGCAGGG CAACCCCATGGGGGCAGCTGGGGACAACCTCATGGTGGTAGTTGGGGTCAGCCCCATGGCGGTGGATGGG GCCAAGGAGGGGGTACCCATAATCAGTGGAACAAGCCCAGCAAACCAAAAACCAACCTCAAGCATGTGGC AGGGGCTGCGGCAGCTGGGGCAGTAGTGGGGGGCCTTGGTGGCTACATGCTGGGGAGCGCCATGAGCAGG CCCATGATCCATTTTGGCAACGACTGGGAGGACCGCTACTACCGTGAAAACATGTACCGCTACCCTAACC AAGTGTACTACAGGCCAGTGGATCAGTACAGCAACCAGAACAACTTCGTGCACGACTGCGTCAATATCAC CATCAAGCAGCACACGGTCACCACCACCACCAAGGGGGAGAACTTCACCGAGACCGATGTGAAGATGATG GAGCGCGTGGTGGAGCAGATGTGCGTCACCCAGTACCAGAAGGAGTCCCAGGCCTATTACGACGGGAGAA GATCCAGCAGCACCGTGCTTTTCTCCTCCCCTCCTGTCATCCTCCTCATCTCCTTCCTCATCTTCCTGAT CGTGGGATGAGGGAGGCCTTCCTGCTTGTTCCTTCGCATTCTCGTGGTCTAGGCTGGGGGAGGGGTTATC CACCTGTAGCTCTTTCAATTGAGGTGGTTCTCATTCTTGCTTCTCTGTGTCCCCCATAGGCTAATACCCC TGGCACTGATGGGCCCTGGGAAATGTACAGTAGACCAGTTGCTCTTTGCTTCAGGTCCCTTTGATGGAGT CTGTCATCAGCCAGTGCTAACACCGGGCCAATAAGAATATAACACCAAATAACTGCTGGCTAGTTGGGGC TTTGTTTTGGTCTAGTGAATAAATACTGGTGTATCCCCTGACTTGTACCCAGAGTACAAGGTGACAGTGA CACATGTAACTTAGCATAGGCAAAGGGTTCTACAACCAAAGAAGCCACTGTTTGGGGATGGCGCCCTGGA AAACAGCCTCCCACCTGGGATAGCTAGAGCATCCACACGTGGAATTCTTTCTTTACTAACAAACGATAGC TGATTGAAGGCAACAGGAAAAAAAAAATCAAATTGTCCTACTGACGTTGAAAGCAAACCTTTGTTCATTC CCAGGGCACTAGAATGATCTTTAGCCTTGCTTGGATTGAACTAGGAGATCTTGACTCTGAGGAGAGCCAG AAGCCCTGGAGGCAACCGTTACCCACCTCAGGGTGGCACCTGGGGGCAGCCCCACGGTGGTGGCTGGGGA
>gi|13173472|ref|NM_011170.1| Mus musculus prion protein (Prnp), mRNA >ref|NG_000007.3|:47759−49344 Homo sapiens beta globin region (HBB@) on chromosome 11 ACACTCGCTTCTGGAACGTCTGAGGTTATCAATAAGCTCCTAGTCCAGACGCCATGGGTCATTTCACAGA GGAGGACAAGGCTACTATCACAAGCCTGTGGGGCAAGGTGAATGTGGAAGATGCTGGAGGAGAAACCCTG GGAAGGTAGGCTCTGGTGACCAGGACAAGGGAGGGAAGGAAGGACCCTGTGCCTGGCAAAAGTCCAGGTC GCTTCTCAGGATTTGTGGCACCTTCTGACTGTCAAACTGTTCTTGTCAATCTCACAGGCTCCTGGTTGTC TACCCATGGACCCAGAGGTTCTTTGACAGCTTTGGCAACCTGTCCTCTGCCTCTGCCATCATGGGCAACC CCAAAGTCAAGGCACATGGCAAGAAGGTGCTGACTTCCTTGGGAGATGCCACAAAGCACCTGGATGATCT CAAGGGCACCTTTGCCCAGCTGAGTGAACTGCACTGTGACAAGCTGCATGTGGATCCTGAGAACTTCAAG GTGAGTCCAGGAGATGTTTCAGCCCTGTTGCCTTTAGTCTCGAGGCAACTTAGACAACGGAGTATTGATC TGAGCACAGCAGGGTGTGAGCTGTTTGAAGATACTGGGGTTGGGGGTGAAGAAACTGCAGAGGACTAACT GGGCTGAGACCCAGTGGTAATGTTTTAGGGCCTAAGGAGTGCCTCTAAAAATCTAGATGGACAATTTTGA CTTTGAGAAAAGAGAGGTGGAAATGAGGAAAATGACTTTTCTTTATTAGATTCCAGTAGAAAGAACTTTC ATCTTTCCCTCATTTTTGTTGTTTTAAAACATCTATCTGGAGGCAGGACAAGTATGGTCGTTAAAAAGAT GCAGGCAGAAGGCATATATTGGCTCAGTCAAAGTGGGGAACTTTGGTGGCCAAACATACATTGCTAAGGC TATTCCTATATCAGCTGGACACATATAAAATGCTGCTAATGCTTCATTACAAACTTATATCCTTTAATTC CAGATGGGGGCAAAGTATGTCCAGGGGTGAGGAACAATTGAAACATTTGGGCTGGAGTAGATTTTGAAAG TCAGCTCTGTGTGTGTGTGTGTGTGTGCGCGCGCGCGTGTGTGTGTGTGTGTCAGCGTGTGTTTCTTTTA ACGTCTTCAGCCTACAACATACAGGGTTCATGGTGGCAAGAAGATAGCAAGATTTAAATTATGGCCAGTG ACTAGTGCTTGAAGGGGAACAACTACCTGCATTTAATGGGAAGGCAAAATCTCAGGCTTTGAGGGAAGTT AACATAGGCTTGATTCTGGGTGGAAGCTTGGTGTGTAGTTATCTGGAGGCCAGGCTGGAGCTCTCAGCTC ACTATGGGTTCATCTTTATTGTCTCCTTTCATCTCAACAGCTCCTGGGAAATGTGCTGGTGACCGTTTTG GCAATCCATTTCGGCAAAGAATTCACCCCTGAGGTGCAGGCTTCCTGGCAGAAGATGGTGACTGCAGTGG CCAGTGCCCTGTCCTCCAGATACCACTGAGCTCACTGCCCATGATTCAGAGCTTTCAAGGATAGGCTTTA
CTGGAGGCAACCGTTACCCACCTCAGGGTGGCACCTGGGGGCAGCCCCAC
|| |||||||| ||| || | || | | | ||| | |||| | CTCGAGGCAAC−−TTAGACAACGGAGTATTG−ATCTGAGCACAGC−−−AG GGTGGTG−GCTGGG−GACAACCCCATGGGGGCAGCTGGGGACAACCT−CA
|||| || |||| || | | ||||| | | | | || || ||
GGTG−TGAGCTGTTTGAAGATAC−−TGGGGTTGGGGGTGAAGAAACTGCA TGGTGGTAGTTGGGGTCAGCCCCA−TGGCGGTGGATG−GGGCC−AAGGAG | || |||| | || |||| ||| || | ||||| ||||||
GAGGACTAACTGGGCTGAGACCCAGTGGTAATGTTTTAGGGCCTAAGGAG GGGGTACCCATAATC−AG−TGGAACAA
| | | | |||| || |||| |||
TGCCT−CTAAAAATCTAGATGGA−CAA
Thierry Lecroq (Univ. Rouen) Distance entre mots 24 / 37
Thierry Lecroq (Univ. Rouen) Distance entre mots 25 / 37
Plan
1 Notations
2 Distance de Levenshtein et programmation dynamique
3 Distance de Stoilos
Thierry Lecroq (Univ. Rouen) Distance entre mots 26 / 37
Distance de Jaccard
D´ efinition
D(A, B) = 1 − cardA ∩ B cardA ∪ B
Thierry Lecroq (Univ. Rouen) Distance entre mots 27 / 37
Distance de Jaro
D´ efinition
d J (x, y) = 1 3
m(x, y)
|x| + m(x, y)
|y| + m(x, y) − t(x, y) m(x, y)
m(x, y) = card{x[i] = y[j]|0 ≤ i ≤ |x| − 1, 0 ≤ j ≤ |y| − 1,
|i − j| ≤
max{|x|, |y|}
2
− 1}
Thierry Lecroq (Univ. Rouen) Distance entre mots 28 / 37
Distance de Jaro
M (x) = (i | ∃j, x[i] = y[j], 0 ≤ i ≤ |x| − 1, 0 ≤ j ≤ |y| − 1,
|i − j| ≤
max{|x|, |y|}
2
− 1)
M(y) = (j | ∃j, x[i] = y[j], 0 ≤ i ≤ |x| − 1, 0 ≤ j ≤ |y| − 1,
|i − j| ≤
max{|x|, |y|}
2
− 1)
t(x, y) = card{i | M(x)[i] 6= M (y)[j]}
2
Thierry Lecroq (Univ. Rouen) Distance entre mots 29 / 37
Distance de Jaro
x = chien et y = chine
max{|x|, |y|}
2
− 1 = 1
0 1 2 3 4
c h i n e
0 c 1 0 0 0 0
1 h 0 1 0 0 0
2 i 0 0 1 0 0
3 e 0 0 0 0 1
4 n 0 0 0 1 0
m(x, y) = 5 et t(x, y) = 1 d J (x, y) = 1
3 5
5 + 5 5 + 4
5
= 14
15 = 0, 93
Thierry Lecroq (Univ. Rouen) Distance entre mots 30 / 37
Distance de Jaro
x = chien et y = niche
max{|x|, |y|}
2
− 1 = 1
0 1 2 3 4
n i c h e
0 c 0 0 0 0 0
1 h 0 0 0 0 0
2 i 0 1 0 0 0
3 e 0 0 0 0 1
4 n 0 0 0 0 0
m(x, y) = 2 et t(x, y) = 0 d J (x, y) = 1
3 2
5 + 2 5 + 2
2
= 3 5 = 0, 6
Thierry Lecroq (Univ. Rouen) Distance entre mots 31 / 37
Distance de Jaro
x = numberOfPages et y = numPages
0 1 2 3 4 5 6 7
n u m P a g e s
0 n 1 0 0 0 0 0 0 0
1 u 0 1 0 0 0 0 0 0
2 m 0 0 1 0 0 0 0 0
3 b 0 0 0 0 0 0 0 0
4 e 0 0 0 0 0 0 1 0
5 r 0 0 0 0 0 0 0 0
6 O 0 0 0 0 0 0 0 0
7 f 0 0 0 0 0 0 0 0
8 P 0 0 0 1 0 0 0 0
9 a 0 0 0 0 1 0 0 0
10 g 0 0 0 0 0 1 0 0
11 e 0 0 0 0 0 0 1 0
12 s 0 0 0 0 0 0 0 1
max{|x|, |y|}
2
− 1 = 5
m(x, y) = 9 et t(x, y) = 3 d J (x, y) = 1
3 9
13 + 9 8 + 6
9
= 775
936 = 0, 82
Thierry Lecroq (Univ. Rouen) Distance entre mots 32 / 37
Distance de Jaro-Winkler
D´ efinition
d J W (x, y) = d J (x, y) + min{lpc(x, y), 4} × q × (1 − d J W (x, y)) avec q = 0, 1 en pratique
Thierry Lecroq (Univ. Rouen) Distance entre mots 33 / 37
Distance de Jaro-Winkler
Exemples
d J W (chien, chine) = 14
15 + 3 × 1 10 × 1
15 = 143
150 = 0, 953 d J W (chien, niche) = 3
5 + 0 × 1 10 × 2
5 = 3 5 = 0, 6 d J W (numberOfPages, numPages) = 775
936 + 3 × 1
10 × 151 936 = 631
720 = 0, 876
Thierry Lecroq (Univ. Rouen) Distance entre mots 34 / 37
Distance de Stoilos
D´ efinition
Sto(x, y) = Comm(x, y) − Diff (x, y) + Win(x, y)
Comm(x, y) = 2 × P
i |(maxLCF i )|
|x| + |y|
Diff (x, y) = |u(x)| × |u(y)|
p + (1 − p) × (|u(x)| + |u(y)| − |u(x)| × |u(y)|) o` u
u(x) est le mot constitu´ e par les lettres de x non appari´ ees pour le calcul de Comm (x, y)
u(y) est le mot constitu´ e par les lettres de x non appari´ ees pour le calcul de Comm (x, y)
p ∈ [0, ∞), p = 0, 6 en pratique
Thierry Lecroq (Univ. Rouen) Distance entre mots 35 / 37
Terme de Winkler
Win(x, y) = min{lpc (x, y), 4} × q × (1 − Comm(x, y)) o` u q = 0, 1 en pratique
Thierry Lecroq (Univ. Rouen) Distance entre mots 36 / 37
Exemple
x = numberOfPages et y = numPages Comm(x, y) = 2 × (4 + 3)
13 + 8 = 14/21 = 2/3 Diff (x, y) = 0
Win(x, y) = 3 × 0, 1 × (1 − 2/3) = 0, 1 Sto(x, y) = 2/3 + 1/10 = 23/30 = 0, 76
Thierry Lecroq (Univ. Rouen) Distance entre mots 37 / 37