• Aucun résultat trouvé

Distance entre mots

N/A
N/A
Protected

Academic year: 2022

Partager "Distance entre mots"

Copied!
110
0
0

Texte intégral

(1)

Distance entre mots

Thierry Lecroq

Universit´ e de Rouen FRANCE

Thierry Lecroq (Univ. Rouen) Distance entre mots 1 / 37

(2)

Plan

1 Notations

2 Distance de Levenshtein et programmation dynamique

3 Distance de Stoilos

Thierry Lecroq (Univ. Rouen) Distance entre mots 2 / 37

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

Plan

1 Notations

2 Distance de Levenshtein et programmation dynamique

3 Distance de Stoilos

Thierry Lecroq (Univ. Rouen) Distance entre mots 8 / 37

(9)

D’un mot ` a l’autre

plage

bravo

Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37

(10)

D’un mot ` a l’autre

plage

bravo place

Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37

(11)

D’un mot ` a l’autre

plage

bravo place glace

Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37

(12)

D’un mot ` a l’autre

plage

bravo place glace grace

Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37

(13)

D’un mot ` a l’autre

plage

bravo place glace grace grave

Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37

(14)

D’un mot ` a l’autre

plage

bravo place glace grace grave brave

Thierry Lecroq (Univ. Rouen) Distance entre mots 9 / 37

(15)

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

(16)

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

(17)

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

(18)

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

(19)

Exemple

Transformer niche en chien

Thierry Lecroq (Univ. Rouen) Distance entre mots 11 / 37

(20)

Comparaison

Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37

(21)

Comparaison

n i c h e

Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37

(22)

Comparaison

n i c h e

c h i e n

Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37

(23)

Comparaison

n i c h e

c h i e n

0

Thierry Lecroq (Univ. Rouen) Distance entre mots 12 / 37

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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

(72)

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

(73)

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

(74)

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

(75)

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

(76)

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

(77)

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

(78)

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

(79)

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

(80)

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

(81)

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

(82)

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

(83)

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

(84)

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

(85)

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

(86)

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

(87)

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

(88)

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

(89)

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

(90)

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

(91)

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

(92)

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

(93)

Distance de Damerau-Levenshtein

Damerau = Levenshtein + transposition

Thierry Lecroq (Univ. Rouen) Distance entre mots 20 / 37

(94)

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

(95)

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

(96)

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

(97)

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

(98)

Thierry Lecroq (Univ. Rouen) Distance entre mots 25 / 37

(99)

Plan

1 Notations

2 Distance de Levenshtein et programmation dynamique

3 Distance de Stoilos

Thierry Lecroq (Univ. Rouen) Distance entre mots 26 / 37

(100)

Distance de Jaccard

D´ efinition

D(A, B) = 1 − cardA ∩ B cardA ∪ B

Thierry Lecroq (Univ. Rouen) Distance entre mots 27 / 37

(101)

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

(102)

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

(103)

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

(104)

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

(105)

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

(106)

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

(107)

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

(108)

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

(109)

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

(110)

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

Références

Documents relatifs

´ Ecrire une fonction qui teste si deux arbres sont ´ egaux ` a rotation pr` es (on pourra dans un premier temps le faire dans le cas o` u tout noeud interne a exactement 2

[r]

Notes de Alexandre Grothendieck d’un mini cours donn´ e ` a Mormoiron dans le Vaucluse (France) en mai 1983 donnant un formulaire des six op´ erations coho- mologiques et de

[r]

[r]

[r]

3 Op´ erations ´ el´ ementaires sur les lignes et colonnes d’une ma- trices.. 3.3 Test d’inversibilit´e d’une matrice et calcul

S’il est impossible d’obtenir la matrice identit´ e dans le bloc de droite cela signifie que A n’est pas inversible et on dira alors que la matrice A est singuli`