Distance d’édition#
Les distances d’édition permettent de comparer deux mots entre eux ou plus généralement deux séquences de symboles entre elles. L’usage le plus simple est de trouver, pour un mot mal orthographié, le mot le plus proche dans un dictionnaire, c’est une option proposée dans la plupart des traitements de texte. La distance présentée est la distance de Levenshtein (voir [Levenstein1966]) Elle est parfois appelée Damerau Levenstein Matching (DLM) (voir également [Damerau1964]). Cette distance fait intervenir trois opérations élémentaires :
comparaison entre deux caractères
insertion d’un caractère
suppression d’un caractère
Pour comparer deux mots, il faut construire une méthode associant
ces trois opérations afin que le premier mot se transforme en le
second mot. L’exemple suivant utilise les mots idstzance
et distances
,
il montre une méthode permettant de passer du premier au second.
La distance sera la somme des coûts associés à chacune des opérations
choisies. La comparaison entre deux lettres identiques est en général
de coût nul, toute autre opération étant de coût strictement positif.
mot 1 |
mot 2 |
opération |
coût |
---|---|---|---|
i |
d |
comparaison entre |
1 |
d |
i |
comparaison entre |
1 |
s |
s |
comparaison entre |
0 |
t |
t |
comparaison entre |
0 |
z |
suppression de |
1 |
|
a |
a |
comparaison entre |
0 |
n |
n |
comparaison entre |
0 |
c |
c |
comparaison entre |
0 |
e |
e |
comparaison entre |
0 |
s |
insertion de |
1 |
|
somme |
4 |
Pour cette distance d’édition entre les mots idstzance
et distances
.
La succession d’opérations proposée n’est pas la seule qui permettent
de construire le second mot à partir du premier mais c’est la moins coûteuse.
Définition et propriétés#
Définition#
Tout d’abord, il faut définir ce qu’est un mot ou une séquence :
Définition D1 : mot
On note l’espace des caractères ou des symboles. Un mot ou une séquence est
une suite finie de
. On note
l’espace des mots formés
de caractères appartenant à
.
On peut définir la distance d’édition :
Définition D2 : distance d’édition
La distance d’édition sur
est définie par :
La distance est le coût de la transformation du mot en
la moins coûteuse.
Il reste à démontrer que cette distance en est bien une
puis à proposer une méthode de calcul plus rapide que celle suggérée par cette définition.
Propriétés#
Ce paragraphe a pour objectif de démontrer que la distance en est bien une.
Définition D3 : distance entre caractères
Soit
l’ensemble des caractères ajouté au caractère vide
.
.
On note
la fonction coût définie comme suit :
(1)#
On note
l’ensemble des suites finies de
.
Pour modéliser les transformations d’un mot vers un autre, on définit pour un mot un
mot acceptable :
Définition D4 : mot acceptable
Soit un mot tel qu’il est défini précédemment.
Soit
une suite infinie de caractères, on dit que
est un mot acceptable pour
si et seulement si la sous-suite
extraite de
contenant tous les caractères différents de
est égal au mot
. On note
l’ensemble des mots acceptables pour le mot
.
Par conséquent, tout mot acceptable pour le mot
est égal à
si on supprime les caractères
du mot
. En particulier, à partir d’un certain indice,
est une suite infinie de caractères
. Il reste
alors à exprimer la définition de la distance d’édition
en utilisant les mots acceptables :
Il est évident que la série
est convergente. La :ref`distance de caractères <edition_distance_definition_1>` implique
que les distance d’édition définies en 1
et 2 sont identiques.
Théorème T1 : distance d’édition
Soit et
les fonctions définies respectivement par
(1) et (2), alors :
est une distance sur
est une distance sur
On cherche d’abord à démontrer que
est une distance sur
est une distance sur
Cette assertion est évidente car, si sont deux mots de un caractère,
la distance
sur
définit alors la distance
sur
.
On démontre ensuite que :
est une distance sur
est une distance sur
Soient deux mots ,
soit
,
comme
est une distance sur
alors
.
D’où, d’après la définition 2 :
(3)#
Soit
tels que
alors :
(4)#
Il reste à démontrer l’inégalité triangulaire.
Soient trois mots ,
on veut démontrer que
.
On définit :
Mais il est possible, d’après la définition d’un mot acceptable
d’insérer des caractères dans les mots
de telle sorte qu’il existe
tels que :
Or comme la fonction est une distance sur
, on peut affirmer que :
.
D’où :
begin{eqnarray} dpa{m_1,m_3} infegal dpa{m_1,m_2} + d pa{m_2,m_3} label{edit_demo_eq_3} end{eqnarray}
Les assertions 1, 2, 3
montrent que est bien une distance. Le tableau suivant
illustre la démonstration pour les suites
pour les mots
et les mots
idtzance
, tonce
, distances
.
i |
d |
t |
z |
a |
n |
c |
e |
|||
t |
o |
n |
c |
e |
||||||
d |
i |
s |
t |
a |
n |
c |
e |
s |
La distance d’édition 2 ne tient pas compte de la longueur des mots qu’elle compare. On serait tenté de définir une nouvelle distance d’édition inspirée de la précédente :
Définition D6 : distance d’édition étendue
Soit d^* la distance d’édition définie en 2
pour laquelle les coûts de comparaison, d’insertion et de suppression
sont tous égaux à 1.
La distance d’édition sur
est définie par :
(5)#
Le tableau suivant donne un exemple pour lequel l’inégalité triangulaire n’est pas
vérifiée. La fonction n’est donc pas une distance.
mot 1 |
mot 2 |
distance : |
distance |
---|---|---|---|
APPOLLINE |
APPOLINE |
1 |
1 / 9 |
APPOLLINE |
APOLLINE |
1 |
1 / 9 |
APOLLINE |
APPOLINE |
2 |
2 / 8 |
Par conséquent :
et la la fonction
ne vérifie pas l’inégalité triangulaire.
Factorisation des calculs#
La définition de la distance d’édition ne permet pas d’envisager le calcul de la distance dans un temps raisonnable. Il est possible néanmoins d’exprimer cette distance d’une autre manière afin de résoudre ce problème (voir [Wagner1974]). On définit la suite suivante :
Définition D7 : distance d’édition tronquée
Soient deux mots , on définit la suite :
Par :
Cette suite tronquée permet d’obtenir le résultat de la propriété suivante :
Propriété P1 : calcul rapide de la distance d’édition
La suite définie par 3 vérifie
où
est la distance d’édition définie en 1
ou 2.
Cette factorisation des calculs est illustrée par les tableaux de
cette figure.
La démonstration s’effectue par récurrence, la définition 3
est bien sûr équivalente 1
pour des mots de longueur un. On suppose donc que ce résultat est
vrai pour un couple de mots de longueur
vérifiant
et l_2 infegal j avec au plus une égalité.
Soit
un mot, on note
le nombre de lettres qu’il contient.
On note
le mot formé des
premières lettres de
.
Alors :
Le calcul factorisé de la distance d’édition entre deux mots de longueur
et
a un coût de l’ordre
.
Il est souvent illustré par un tableau comme celui de la figure suivante
qui permet également de retrouver la meilleure séquence d’opérations permettant
de passer du premier mot au second.