• Aucun résultat trouvé

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

5.1.2 Op´erations sp´ecifiques

5.1.2.1 D´eterminisation et minimisation

Dans le cas simple des automates d’´etats finis (sans pond´eration), il est connu qu’un automate non-d´eterministe est toujours d´eterminisable : il existe au moins un automate non-d´eterministe qui lui est exac-tement ´equivalent, et l’on dispose d’algorithmes efficaces pour construire cet automate d´eterministe. Le cas des transducteurs est plus complexe, car un transducteur est d´eterminisable si l’on consid`ere l’automate sous-jacent, mais peut rester ambigu si la relation qu’il reconnaˆıt l’est.

On dit d’un transducteur qu’il est fonctionnel, ou non-ambigu, si une chaˆıne du langage sup´erieur ne peut ˆetre mise en relation qu’avec une unique chaˆıne du langage inf´erieur. Dans le cas contraire, le transducteur est ambigu. Un transducteur peut ˆetre globalement non-ambigu tout en admettant toujours une forme d’ambigu¨ıt´e locale si l’automate obtenu par projection sup´erieure n’est lui-mˆeme pas d´eterministe.

Un transducteur est dit s´equentiel s’il n’admet aucune ambigu¨ıt´e locale, c’est-`a-dire si l’automate obtenu par projection sup´erieure est d´eterministe. L’avantage d’un transducteur s´equentiel est, comme pour les automates d´eterministes, que l’application du transducteur `a une chaˆıne se fait en un temps lin´eaire (proportionnel `a la longueur de la chaˆıne), car il n’y a pas de retour arri`ere (voir section 5.1.2.3).

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

Un algorithme de d´eterminisation de WFST d´ecoule simplement de l’algorithme classique fond´e sur les sous-ensembles dans le cas des automates d’´etats finis classiques [Aho et al., 1986]. La seule modification majeure r´eside dans le calcul du poids des transitions et des poids r´esiduels pour chaque transition de l’automate non-d´eterministe [Mohri, 1997]. Cette modification a cependant un impact d´eterminant, car l’algorithme peut continuer ind´efiniment pour certains types de transducteurs. Ainsi, tous les transducteurs d’´etats finis pond´er´es ne sont pas d´eterminisables. [Mohri, 1997] donne un crit`ere de d´eterminisabilit´e pour les transducteurs non-ambigus ; mais certains transducteurs ambigus peuvent ´egalement ˆetre d´eterminis´es.

La minimisation du nombre d’´etats d’un transducteur ne pose pas de probl`eme particulier ; Sumo emploie l’algorithme de Brzozowsky, qui repose sur l’´egalit´e suivante, o`u « Rev » d´enote le renversement du transducteur, et « Det » sa d´eterminisation.

M in(T ) = Rev(Det(Rev(Det(T ))))

De cette ´egalit´e, il d´ecoule qu’un transducteur d’´etats finis pond´er´e est minimisable si et seulement si il est d´eterminisable. L’algorithme lui-mˆeme est alors trivial puisque les op´erations de renversement et de d´eterminisation sont connues.

5.1.2.2 Composition et produit cart´esien

La composition de deux transducteurs est une op´eration fondamentale du calcul `a ´etats finis. Soient deux transducteurs T1 d´efini sur les alphabets Σ et Ψ , et T2 d´efini sur les alphabets Ψ et Ω ; alors la composition de ces deux transducteurs donne un nouveau transducteur T d´efini sur les alphabets Σ et Ω , mettant en relation directement le langage sup´erieur de T1 et le langage inf´erieur de T2 . Par composition, une s´equence de transducteurs peut se r´eduire `a un unique transducteur effectuant toutes les mises en relation en une seule ´etape. Un inconv´enient est que, dans certains cas, le r´esultat de la composition peut ˆetre beaucoup plus gros que les deux transducteurs compos´es.

La composition de deux transducteurs est une op´eration rationnelle classique, mais dans le cas de transducteurs pond´er´es, les epsilon-transitions sont source d’ennuis, cr´eant des chemins inutiles et surtout menant `a des poids incorrects. [Mohri et al., 2000] propose un algorithme de composition pour des transducteurs ne comportant aucune epsilon-transition. Pour que cet algorithme soit utilisable pour n’importe quel transducteur, y compris ceux comprenant des epsilon-transitions, le symbole % est remplac´e par deux symboles sp´eciaux, %u et %l repr´esentant un % du cˆot´e sup´erieur ou inf´erieur d’une transition. Un filtre de composition est alors introduit pour effectuer la conversion de ces symboles sp´eciaux entre les deux transducteurs. La figure 5.1 montre une version l´eg`erement modifi´ee de ce filtre. 0/0 !/0 <0_l:0_u>/0 2/0 0_l/0 1/0 0_u/0 !/0 0_l/0 3 0_u/0 !/0 0_u/0 0_l/0

Fig. 5.1 – Filtre de composition

L’utilisation de ce filtre n´ecessite un pr´etraitement des op´erandes : 1. suppression des epsilon-transitions dans les deux transducteurs ;

96 Syntaxe et s´emantique formelle de Sumo

2. remplacement de toutes les occurrences de % du cˆot´e inf´erieur du transducteur sup´erieur par le symbole sp´ecial %l;

3. ajout d’une transition ´etiquet´ee par %u depuis chaque ´etat du transducteur sup´erieur vers lui-mˆeme ;

4. remplacement de toutes les occurrences de % du cˆot´e sup´erieur du transducteur inf´erieur par le symboles sp´ecial %u;

5. ajout d’une transition ´etiquet´ee par %l depuis chaque ´etat du transducteur inf´erieur vers lui-mˆeme.

Dans l’exemple de Mohri et al., on compose le transducteur reconnaissant la relation a b:% c:% d avec la relation a:d % :e d:a. La figure 5.2 montre les deux transducteurs apr`es l’´etape de pr´etraitement, prˆets `a ˆetre compos´es via le filtre de composition.

0 0_l 1 a:d 0_l 2 0_u:e 0_l 3 d:a 0_l 0 0_u 1 a 0_u 2 b:0_l 0_u 3 c:0_l 0_u 4 d 0_u

Fig. 5.2 – Pr´etraitement des automates avant la composition

La composition s’effectue en deux ´etapes : premi`erement, composition du transducteur sup´erieur avec le filtre, puis composition du r´esultat avec l’automate inf´erieur. Le r´esultat doit ensuite ˆetre post-trait´e en supprimant toute occurrence des symboles sp´eciaux introduits durant le pr´etraitement. Un algorithme de composition avec filtre. Sumo utilise un algorithme g´en´erique de compo-sition, utilis´e pour quatre op´erations : la composition elle-mˆeme, la composition it´erative (d´ecrite plus bas), le produit cart´esien, et l’intersection. Il s’agit d’un algorithme de composition ignorant les epsilon-transitions et mettant en jeu un filtre. La composition s’op`ere en deux ´etapes : premi`erement, le transducteur sup´erieur est compos´e avec le filtre ; deuxi`emement, le r´esultat est compos´e avec le transducteur inf´erieur.

L’algorithme prend bien sˆur en compte les poids des transitions : lorsque trois transitions sont com-pos´ees, le poids de la nouvelle transition est le « produit » du poids des trois transitions, et de mˆeme, le poids des nouveaux ´etats initiaux et finals cr´e´es est le « produit » des poids des ´etats compos´es. Il est int´eressant de noter que cet algorithme est tout aussi utilisable avec des transducteurs non-pond´er´es, car le filtre permet d’´eviter la cr´eation de chemins tels que a:%% :b pour obtenir directement a:b.

L’intersection de deux automates est exactement la composition de ces deux automates.

L’impl´ementation de cet algorithme est pr´esent´ee chapitre 7. Pour deux transducteurs donn´es T1 et T2 et un filtre Tf , un nouveau transducteur R est cr´e´e. Les ´etats de R correspondent `a des triplets d’´etats de chaque automate ; on maintient une queue Q pour le parcours de tous les ´etats en l’initialisant avec les ´etats initiaux de R qui sont les ´etats initiaux des trois automates. De mˆeme, un ´etat « composite » est final si les trois ´etats auquel il correspond le sont.

On note e ≈ f la correspondance de deux arcs. Deux arcs se correspondent si l’´etiquette inf´erieure de l’un correspond `a l’´etiquette sup´erieure de l’autre. Notons que si l’une des ´etiquettes est ⊥ , la cor-respondance est toujours vraie. Le deuxi`eme test de corcor-respondance, ligne 13, est l´eg`erement diff´erent : si l’´etiquette inf´erieure de ef est ⊥ , alors il faut en r´ealit´e tester e1≈ e2 .

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

Enfin, ligne 21, on cr´ee un nouvel arc entre q et q#; son poids est le produit des poids des trois arcs, et son ´etiquette est construite `a partir de celles des trois arcs : l’´etiquette sup´erieure est l’´etiquette sup´erieure de e1 , et l’´etiquette inf´erieure est l’´etiquette inf´erieure de e2.

Le produit cart´esien. Le produit cart´esien de deux automates est ´egalement proche de la composi-tion, et peut mˆeme ˆetre r´ealis´e, comme l’interseccomposi-tion, avec cet algorithme g´en´eral. La seule diff´erence est que l’on utilise un nouveau filtre (figure 5.3) et un nouveau symbole particulier, %x.

0/0 !/0 1/0 .:0_x/0 2/0 0_x:./0 .:0_x/0 0_x:./0

Fig. 5.3 – Filtre pour le produit cart´esien

La figure 5.4 montre le pr´etraitement de deux automates reconnaissant les langages a*b et cd*, afin de r´ealiser le produit cart´esien ab* : c*d. L’automate sup´erieur est transform´e en transducteur dont toutes les transitions ont un %lau niveau inf´erieur ; de la mˆeme mani`ere, l’automate inf´erieur est transform´e en transducteur dont toutes les transitions ont un %uau niveau sup´erieur. Le filtre permet donc d’effectuer la relation entre n’importe quel couple de transitions. On remarquera ´egalement qu’une transition ´etiquet´ee par %xest ajout´ee `a chaque ´etat final, afin de pouvoir apparier des chaˆınes de longueur diff´erente. 0 a:0_l 1 b:0_l 0_x 0 0_u:c 1 0_u:d 0_x

Fig. 5.4 – Pr´etraitement des automates avant le produit cart´esien

La figure 5.5 montre le r´esultat du produit cart´esien, une fois le transducteur « nettoy´e ». La composition it´erative et l’´equivalence des transducteurs. La composition it´erative est une op´eration qui sort un peu du cadre habituel des ´etats finis, car comme son nom l’indique, c’est une op´eration qui s’applique it´erativement jusqu’`a atteindre un point fixe. Soit deux transducteurs T1 et T2; les deux transducteurs sont compos´es, puis le r´esultat est de nouveau compos´e avec T2 , puis le r´esultat est de nouveau compos´e avec T2 et ainsi de suite tant que deux compositions successives donnent un r´esultat diff´erent. Si les deux derni`eres op´erations donnent deux transducteurs ´equivalents, alors c’est le r´esultat final de l’op´eration.

Nous n’avons pas trouv´e dans la litt´erature d’algorithme permettant de d´eterminer l’´equivalence de deux transducteurs pond´er´es. Nous avons r´esolu ce probl`eme en d´efinissant l’´equivalence entre ´etats de transducteurs pond´er´es. Deux ´etats sont ´equivalents s’ils sont origine des mˆemes chemins, avec le

98 Syntaxe et s´emantique formelle de Sumo

0 1 a:c/0 2/0 a:d/0 b:c/0 b:d/0 3 0:c/0 4/0 0:d/0 b:0/0 0:c/0 0:d/0

Fig. 5.5 – Produit cart´esien de ab* et c*d

mˆeme poids, `a un poids r´esiduel pr`es (deux chemins peuvent avoir le mˆeme poids sans pour autant que les arcs eux-mˆemes aient tous le mˆeme poids). L’algorithme utilis´e est pr´esent´e chapitre 7. 5.1.2.3 Application d’un transducteur `a une chaˆıne et poids d’un chemin

L’application d’un transducteur d’´etats finis pond´er´e `a une chaˆıne se fait dans les deux directions : lookup pour l’application au niveau inf´erieur, donnant les correspondants au niveau sup´erieur, et inversement pour lookdown. Cette op´eration produit z´ero, une ou plusieurs chaˆınes.

Si le transducteur est pond´er´e, on produit alors chaque chaˆıne une seule fois, avec son meilleur poids (par exemple le minimum dans le demi-anneau tropical). Mais, en g´en´eral, on ne veut obtenir que la meilleure chaˆıne. C’est pourquoi on utilise alors une technique de programmation dynamique `a la Viterbi. Ainsi, l’application d’un transducteur pond´er´e est en g´en´eral plus rapide que celle du mˆeme transducteur non pond´er´e, car les calculs sur les poids sont beaucoup plus rapides que l’examen combinatoire de toutes les chaˆınes possibles.