• Aucun résultat trouvé

4.3 Un exemple d´etaill´e d’analyseur morphologique

5.1.3 R`egles de r´e´ecriture pond´er´ees

5.1.3.1 Syntaxe

Les r`egles de r´e´ecriture pond´er´ees sont une extension des r`egles de r´e´ecriture classiques dans les formalismes d’´etats finis. Ces r`egles de r´e´ecriture d´ecrivent une transduction rationnelle et effectuent donc une mise en correspondance entre des chaˆınes de deux langages rationnels. Chacun de ces deux langages est d´efini sur un alphabet qui lui est propre, mais ces deux alphabets sont tous deux compris dans un alphabet « universel ».

On consid`ere les r`egles de la forme : φ→ ψ/λ ρ

ce qui se lit : « une occurrence de φ pr´ec´ed´ee d’une occurrence de λ et suivie d’une occurrence de ρ se r´e´ecrit en ψ», avec φ , ψ , λ et ρ des expressions r´eguli`eres pond´er´ees. Ces r`egles sont directement inspir´ees des r`egles de r´e´ecriture en phonologie. Plusieurs de ces r`egles peuvent ˆetre appliqu´ees en parall`ele ou en s´equence. On a donc une notion de grammaire d´ecrites par des expressions dont les symboles sont des r`egles de r´e´ecriture et les op´erateurs sont ",," pour l’application parall`ele et "%" pour l’application s´equentielle.

La syntaxe d’une r`egle dans Sumo est la suivante : φ "->" ψ "||" λ " " ρ

5.1 Le calcul d’´etats finis pond´er´e 99

Les quatre expressions en param`etres suivent ´evidemment la syntaxe d’expressions r´eguli`eres de Sumo et ne doivent d´ecrire que des automates, et non des transducteurs. Le contexte gauche ou droit peut ˆetre vide, et dans le cas des r`egles inconditionnelles (qui s’appliquent quelque soit le contexte), toute la partie de description du contexte de la r`egle peut ˆetre omise (par exemple, la r`egle a -> b est plus simple `a ´ecrire que a -> b || ).

5.1.3.2 S´emantique

L’application d’un ensemble de r`egles parall`eles `a un automate peut se comprendre en consid´erant ind´ependamment chaque chemin. L’automate r´esultat est l’union du r´esultat de l’application des r`egles `a chacun de ces chemins.

Pour un chemin donn´e, on applique les r`egles de gauche `a droite. Une r`egle donn´ee peut s’appliquer si le membre gauche de la r`egle est bien pr´esent dans le chemin dans le contexte d´ecrit par la r`egle, auquel cas la partie non-contextuelle est « consomm´ee » et mise en correspondance avec le membre droit dans la chaˆıne r´esultat. Tous les symboles non consomm´es sont recopi´es tels quels. Plusieurs chemins peuvent ˆetre produits pour un seul chemin donn´e.

Par exemple, ´etant donn´ees les deux r`egles

a b -> e f || _ c ,, b c -> f g || a _ d;

et la chaˆıne en entr´ee babcd, on aura les deux r´esultats suivants : b a b c d b a b c d

| | | | | | | | | | b e f c d b a f g d

Dans le premier cas, c’est la premi`ere r`egle qui s’applique pour r´e´ecrire ab en ef ; dans le deuxi`eme cas, c’est la deuxi`eme qui r´e´ecrit bc en fg.

5.1.3.3 Exemple de compilation et d’application

Un jeu de r`egles est compil´e par Sumo sous la forme d’un transducteur. L’application de ce jeu de r`egles se fait par le biais de l’op´erateur de composition % comme le montre cet exemple. Soit les deux r`egles parall`eles suivantes d´ecrivant le transducteur $R :

$R = a b -> e f || _ c ,, b c -> f g || a _ d

On voit le r´esultat de la compilation de ces r`egles dans la figure 5.6. Mˆeme si le transducteur est quelque peu complexe, on peut comprendre son principe de fonctionnement. Par exemple, dans l’´etat 0, quand on lit un a, il y a deux possibilit´es : soit ce a est le d´ebut de la s´equence abc... qui doit ˆetre remplac´e par efc..., auquel cas on va dans l’´etat 2 o`u il faut imp´erativement lire un b puis un c sous peine d’ˆetre bloqu´e et de devoir faire un retour arri`ere ; soit ce a ne fait pas partie d’une telle s´equence et l’on passe dans l’´etat 1 (il se peut par contre que a soit le d´ebut d’une s´equence abcd qui doit se r´e´ecrire en afgd).

´Etant donn´e un ensemble de chaˆınes en entr´ee sous la forme d’un automate (figure 5.7), l’applica-tion du transducteur de r`egles produit la sortie attendue (figure 5.8) et s’´ecrit dans Sumo :

$entree = a b c d | a n d | b a b c d | b a n d | c b c d | c n d | m c d ;

$resultat = ($entree % $R),l ;

100 Syntaxe et s´emantique formelle de Sumo

Fig. 5.6 – Le transducteur de r`egles R

5.1 Le calcul d’´etats finis pond´er´e 101

Fig. 5.8 – Automate r´esultat

5.1.3.4 R´ealisation et variantes

On dispose d’algorithmes efficaces pour la compilation de jeux de r`egles de r´e´ecriture parall`eles [Kaplan et Kay, 1994; Mohri et Sproat, 1996], pond´er´ees ou non. Les r`egles s´equentielles se compilent grˆace `a l’op´eration de composition d´ej`a vue.

Nous avons ajout´e des variantes existant dans la litt´erature et dans les autres syst`emes d’´etats finis. Elles sont compatibles entre elles.

– l’op´erateur "->" d´enote, comme dit plus haut, une r`egle s’appliquant de gauche `a droite ; cepen-dant, une r`egle peut tout `a fait s’appliquer de droite `a gauche ("<-") ou simultan´ement dans les deux directions ("<->") ;

– une r`egle peut ˆetre optionnelle, c’est-`a-dire qu’elle s’applique ou non `a une chaˆıne. La r`egle b ->? d || a _ c

appliqu´ee `a la chaˆıne abc produira donc deux chaˆınes, adc et abc..

– lorsque le membre gauche d’une r`egle d´ecrit plusieurs chaˆınes, la r`egle s’applique `a toutes les occurrences de cette chaˆıne. Par exemple, la r`egle

a+ -> b

appliqu´ee `a la chaˆıne aaac produira les trois chaˆınes bc, abc et aabc. [Karttunen, 1996] propose des r`egles « dirig´ees » qui remplacent uniquement l’occurrence la plus longue ou la plus courte. Ainsi, la r`egle

a+ ->@ b

appliqu´ee `a la chaˆıne aaac produira uniquement bc. Ces r`egles d´ecrivent toujours des transduc-teurs d’´etats finis, mais la taille de ces transductransduc-teurs peut tr`es vite exploser, aussi ne sont-elles pas toujours utilisables en pratique ;

– il est ´egalement possible de « recopier » dans le membre droit la partie reconnue par le membre gauche lorsque celle-ci peut varier `a l’aide du symbole "...". Par exemple,

a | b | c -> ... d || _ f

ajoute un d apr`es un a, un b ou un c suivi d’un f (par exemple, afbf donnera adfbdf) ; – enfin, des raccourcis syntaxiques permettent de sp´ecifier plusieurs contextes possibles pour une

mˆeme r`egle, par exemple

a b -> c d || f _ g, h _ i

ou encore de sp´ecifier plusieurs r`egles partageant un mˆeme contexte, comme a b -> c d, f -> g || h _ i

102 Syntaxe et s´emantique formelle de Sumo