
base de connaissances et la multiplicit´e des do-
maines refont malheureusement surface.
Notre but est un v´eritable solveur d’analogie,
c’est-`a-dire un algorithme qui, ´etant donn´es
trois mots, d´elivre un mot, analogue aux
donn´ees d’entr´ee. Pour cela, il faut ˆetre capable :
(1) d’appliquer plusieurs modifications `a la fois
(2) sur une unique structure de donn´ees (3) sans
aucun dictionnaire ni connaissances externes.
1.4 Analogies entre mots
Nous avons fini notre tour d’horizon du
probl`eme et avons abouti sur ce qui a constitu´e
en fait le d´epart de notre recherche. En linguis-
tique, en effet, l’analogie est d´efinie par Saus-
sure, apr`es Humboldt ou Baudoin de Courtenay,
comme l’op´eration par laquelle, ´etant donn´ees
deux formes d’un mˆeme mot, et seulement une
forme d’un second mot, on cr´ee la forme man-
quante. ¿honor est `a hon¯orem ce que ¯or¯ator
est `a ¯or¯at¯orem Ànot´e ¯or¯at¯orem :¯or¯ator =
hon¯orem :honor. C’est tout simplement l`a la
d´efinition d’Aristote : ¿A est `a B ce que C est
`a D À, en posant en plus l’´egalit´e de type pour
A,B,Cet D.
Cependant, bien que l’analogie ait ´et´e men-
tionn´ee et utilis´ee, aucun moyen algorithmique
n’a, `a notre connaissance, jamais ´et´e donn´e
pour r´esoudre des analogies, peut-ˆetre parce que
l’op´eration semble si intuitive. Nous (Lepage
& Ando 96) avons r´ecemment essay´e de don-
ner une explication qui n’est h´elas pas toujours
valide, parce qu’elle s’applique aussi `a des cas
qui ne sont pas des analogies. Et ce n’est pas
non plus une explication algorithmique.
L’unique travail sur la r´esolution d’analogies
entre mots semble ˆetre celui de Copycat ((Hofs-
tadter et al. 94) et (Hoffman 95)), qui r´esoud des
´equations de la forme : abc :abbccc =ijk :x.
Mais ce programme ne semble pas utiliser
d’algorithme d´edi´e, plutˆot, suivant en cela
l’approche de l’intelligence artificielle, il utilise
une mod´elisation du domaine `a l’aide de fonc-
tions comme : pr´ec´edent dans l’alphabet,
num´ero d’ordre dans l’alphabet,etc.
2FONDATIONS `
A L’ALGORITHME
2.1 L’axe du premier terme
(Itkonen & Haukioja 97) donne un programe
en Prolog pour la r´esolution des analogies en-
tre phrases comme r´efutation de l’argument de
Chomsky, selon lequel l’analogie n’op`ererait pas
en syntaxe parce qu’elle cr´e´erait des phrases
agrammaticales. Que l’analogie op`ere aussi en
syntaxe avait d´ej`a ´et´e vu par Hermann Paul et
Bloomfield. L’argument de Chomsky est bien
sˆur fauss´e parce qu’il ne fait jouer l’analogie
qu’au niveau de la surface. Itkonen et Haukioja
montrent que l’analogie, contrˆol´ee par le niveau
structurale rend compte de phrases parfaite-
ment grammaticales. Ce qui nous int´eresse chez
eux, c’est le cœur de leur m´ethode, qui sera le
germe de notre algorithme :
¿La phrase D est form´ee en examinant les
phrases B et C un ´el´ement `a la fois et en
inspectant les relations de chaque ´el´ement
`a la structure de la phrase A (et aussi `a la
partie de la phrase D d´ej`a cr´e´ee). À
Ainsi donc, la phrase A est l’axe auquel les
phrases B et C sont compar´ees et par opposi-
tion auquel la phrase D est construite.
copieur :incopiable =faiseur :x⇒x = infaisable
Notre m´ethode sera donc : (a) chercher les
morceaux non communs `a Aet Bd’une part
et `a Aet Cd’autre part ; puis (b) assembler ces
morceaux dans le bon ordre.
2.2 Sous-chaˆınes communes
Par compl´ementation, notre probl`eme peut ˆetre
r´esolue par la recherche des sous-s´equences
communes `a Aet B(respectivement `a Aet
C). (Wagner & Fischer 74) est une m´ethode
pour trouver les plus longues sous-chaˆınes com-
munes par le calcul d’une matrice de dis-
tance d’´edition, qui donne le nombre minimal
d’op´erations d’´edition n´ecessaires (insertion,
suppression, substitution) pour transformer une
chaˆıne en une autre.
Par exemple, les matrices suivantes donnent
les distances entre d’une part fini et infini,
et entre fini et exact, d’autre part. Ces dis-
tances sont lues dans les cases en bas `a droite.
dist(fini,infini) = 2 et dist(fini,exact) = 5
i n f i n i e x a c t
f1 2 2 3 4 5 f1 2 3 4 5
i1 2 3 2 3 4 i2 2 3 4 5
n2 1 2 3 2 3 n3 3 3 4 5
i3 2 2 2 3 2 i4 4 4 4 5