• Aucun résultat trouvé

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

4.3.3 La construction des ressources

L’exemple que l’on ´etudie ici repose sur un dictionnaire de segmentation au format Sumo. On montre ici deux variantes : tout d’abord, on part d’un transducteur lexical existant ; ensuite, si un tel transducteur n’existe pas, on le cr´ee directement avec Sumo.

88 Introduction au formalisme Sumo

4.3.3.1 La r´ecup´eration d’un transducteur lexical existant

Premi`ere ´etape: lecture du transducteur lexical. La premi`ere ´etape consiste `a lire le transducteur lexical existant (cr´e´e avec XFST ou les outils AT&T par exemple) `a partir d’un fichier. On introduit une variable de type wfst que l’on appelle translex que l’on initialise par la fonction read wfst.

translex : wfst ;

translex = read_wfst("lexique.wfst") ;

Deuxi`eme ´etape: transformation du transducteur lexical en structure Sumo. Le transduc-teur est « explos´e » par application de l’op´eratransduc-teur "<>" qui transforme un wfst en une structure Sumo `a deux niveaux. Cette conversion est illustr´ee par la figure 4.9.

lexique : sumo ; lexique = < $translex > ; lexique.level[1].name = "surface" ; h a t c s h a t +PL c h a t s:+PL c

Fig. 4.9 – Conversion d’un transducteur en structure Sumo

Troisi`eme ´etape: cr´eation du niveau des mots. On obtient le niveau des mots (o`u chaque item est un lemme muni de ses attributs morphologiques) `a partir du niveau lexical de la structure Sumo (le niveau 2) par deux groupes de r`egles appliqu´es en s´equence.

Le premier groupe de r`egles transforme les symboles repr´esentant les ´etiquettes morphologiques comme +PL en items `a l’intitul´e vide portant un attribut correspondant `a cette ´etiquette.

Le second groupe est r´eduit `a une r`egle qui identifie tous les chemins du dernier niveau et cr´ee pour chacun un nouvel item obtenu par compression de ce chemin.

g : grammar ; g = (+PL -> 0@nbr=pl ,, +SG -> 0@nbr=sg ,, ... ) % $x => [$x] || # _ # { $x = .+ } ; apply(lexique.level[2], g) ;

Suppression du niveau interm´ediaire. On a maintenant quatre niveaux dans notre lexique, mais seul les niveaux 1 et 4 sont int´eressants. On supprime ces deux niveaux interm´ediaire par l’op´erateur de suppression ",-".

lexique = $lexique,-2 ; lexique = $lexique,-2 ;

Apr`es la premi`ere suppression, le niveau 3 est devenu le niveau 2 et le niveau 4 est devenu le niveau 3. Le lexique final contient des entr´ees de la forme illustr´ee par la figure 4.10.

Sauvegarde du lexique Sumo. Enfin, il ne reste plus qu’`a sauver le lexique pour pouvoir le r´eutiliser dans d’autres applications Sumo.

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

c h a t s

chat@{nbr=pl}

Fig. 4.10 – Un mot extrait du lexique Sumo

4.3.3.2 Cr´eation du transducteur lexical dans Sumo

Plutˆot que de r´ecup´erer un transducteur existant, il est bien entendu possible de le cr´eer `a partir de z´ero dans Sumo. Contrairement aux outils XFST, Sumo ne propose pas de raccourcis particuliers pour la description de lexiques, aussi utilise-t-on la syntaxe d’expressions r´eguli`eres de Sumo.

Listes de mots et morphosyntaxique. La d´efinition d’un lexique passe entre autres par la d´efinition des diff´erentes formes - morphes, affixes, tournures et expressions `a mots multiples, entit´es -, que l’on regroupe habituellement en sous-lexiques de taille plus pratique.

Dans Sumo, un sous-lexique n’est rien d’autre qu’un transducteur que l’on affecte `a une variable. Ainsi, un lexique o`u chaque mot est form´e d’une racine pr´ec´ed´ee de z´ero ou plusieurs pr´efixes et suivie d’un ou plusieurs suffixes a la forme suivante :

prefixes, suffixes, racines, lexique : wfst ; prefixes = <pr´e> | <post> | ... ;

suffixes = <ation> | <´e> | ... ;

racines = <compil> | <d´eterminis> | ... ; lexique = $prefixes* $racines $suffixes* ;

Les trois sous-lexiques sont chacun d´ecrits par une expression r´eguli`ere et le lexique lui-mˆeme est d´ecrit en fonction de ces sous-lexiques. La compilation de chaque expression se fait normalement pour produire les transducteurs pond´er´es.

Il est courant, comme le sugg`ere d’ailleurs l’exemple ci-dessus, qu’un lexique ne soit gu`ere plus qu’une longue liste de formes (s´epar´ees par | dans une expression r´eguli`ere). Un outil comme lexc dis-pose d’un compilateur qui traite ce genre d’expressions beaucoup plus efficacement qu’un compilateur g´en´eral. Dans Sumo, comme on le verra dans la section 7.1.3.3 une m´ethode simple de compilation de « dictionnaires » est disponible pour compiler plus rapidement de tels lexiques.

Alt´erations phonologiques. Les alt´erations phonologiques qui ne sont pas directement prises en compte par le lexique peuvent ensuite ˆetre exprim´ees sous forme de r`egles de r´e´ecriture pond´er´ees, qui donnent naturellement des transducteurs [Mohri et Sproat, 1996; Sproat et Riley, 1996; Adant, 2000] qui sont compos´es avec les lexiques pour obtenir le transducteur lexical final.

Sumo ne propose pas de r`egles `a deux niveaux du style PC-KIMMO ou twolc, c’est-`a-dire de r`egles qui permettent d’exprimer le contexte sur les deux niveaux en mˆeme temps ; cependant, c’est une extension envisageable. [Adant, 2000] d´ecrit d’ailleurs bri`evement l’inclusion de r`egles `a deux niveaux dans un syst`eme d’´etats finis pond´er´es.

Gestion des attributs. Traditionnellement, dans les mod`eles d’´etats finis « purs », les attributs morphologiques sont encod´es sous formes de symboles sp´eciaux (e.g.+Fem, qui constitue un unique symbole). Dans Sumo, on peut pour cela des items vides, ayant chacun un attribut correspondant `a un de ces symboles particuliers, comme on l’a vu dans la section 4.3.3.1.

90 Introduction au formalisme Sumo

Conclusion

Ce chapitre a donn´e une vue d’ensemble, partielle mais repr´esentative, du formalisme Sumo et de son utilisation pour la cr´eation d’un moteur d’analyse morphologique. Les principales composantes de Sumo ont ´et´e d´ecrites : ce sont les structures de donn´ees pour la segmentation (principalement, les transducteurs d’´etats finis pond´er´es et les structures Sumo elles-mˆemes) et les moyens dont on dispose pour travailler avec ces structures. Il y a donc un v´eritable formalisme d’expressions r´eguli`eres d´ecrivant les transducteurs pond´er´es, des op´erations « rationnelles » et d’autres plus sp´ecifiques sur les structures Sumo, et enfin le langage de description de moteurs d’analyse lui-mˆeme.

Comme on l’a vu dans ce chapitre, et ce que confirmera le chapitre suivant, les diff´erentes compo-santes de Sumo permettent de travailler avec la structure Sumo selon plusieurs points de vue diff´erents. Ainsi, les expressions r´eguli`eres et les r`egles d’identification et de r´e´ecriture sont des outils de nature « linguistique », qui agissent sur des symboles, des mots et des langages, qui ne n´ecessitent pas de connaissance approfondie des structures de repr´esentation sous-jacentes. Cela rejoint la plupart des outils de morphologie `a ´etats finis. Mais Sumo dispose de structures plus complexes et plus ouvertes qui sont construites et utilis´ees par des outils informatiques, qui eux agissent sur des arcs, des relations ou des graphes.

Chapitre 5

Syntaxe et s´emantique formelle de Sumo

Introduction

Apr`es avoir donn´e au chapitre pr´ec´edent une sp´ecification g´en´erale de Sumo, nous nous proposons de d´efinir plus formellement les diff´erents aspects du formalisme, `a la fois syntaxiques et s´emantiques, pour les deux structures principalement manipul´ees par Sumo : les transducteurs d’´etats finis pond´er´es et les structures Sumo, que ce soient des documents ou des ressources. Les deux premi`eres sections de ce chapitre sont consacr´ees `a ces deux structures (sections 5.1 et 5.2) ; on revient ensuite sur les structures de contrˆole qu’offre Sumo aux linguistes et programmeurs pour la r´ealisation d’une application pr´esyntaxique (section 5.3).

Dans ce chapitre, on utilise un m´eta-langage pour la description de la syntaxe des divers composants de Sumo o`u :

– une expression en italique indique un non-terminal ;

– une expression entre "guillemets" indique un terminal du langage Sumo ; – les parenth`eses () d´elimitent une sous-expression ;

– le point d’interrogation ? indique une partie optionnelle ;

– l’´etoile * indique une partie qui peut ˆetre r´ep´et´ee 0, 1 ou plusieurs fois ; – le symbole | indique une alternance.

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

Dans Sumo, toute machine d’´etats finis est consid´er´ee comme un transducteur d’´etats finis pond´er´es (WFST, pour Weighted Finite-State Transducer). La d´efinition d’un WFST est tr`es proche de celle d’un graphe d’items (section 4.1.2.3) et repose toujours sur un ensemble de pond´eration K (comme d’habitude, on suppose que K est le anneau tropical ; mais il peut s’agir de n’importe quel demi-anneau ferm´e).

D´efinition. Un transducteur d’´etats finis pond´er´e (WFST) T est un octuplet (Σ, Ω, Q, I, F, E, λ, ρ) avec :

– Σ l’alphabet du langage sup´erieur ; – Ω l’alphabet du langage inf´erieur ; – Q un ensemble fini d’´etats ;

– I ⊆ Q l’ensemble des ´etats initiaux ; – F ⊆ Q l’ensemble des ´etats finals ;

– E ⊆ Q × Σ ∪ {%} × Ω ∪ {%} × K × Q un ensemble fini de transitions ; – λ : I → K la fonction de pond´eration initiale ;

– ρ : F → K la fonction de pond´eration finale.

92 Syntaxe et s´emantique formelle de Sumo

Ainsi, dans un WFST, les arcs entre deux ´etats sont ´etiquet´es par deux symboles (un symbole du langage sup´erieur, et un du langage inf´erieur) et poss`edent un poids. Un chemin est une s´equence d’arcs cons´ecutifs reliant un ´etat initial i ∈ I `a un ´etat f ∈ F ; un sous-chemin est une s´equence d’arcs cons´ecutifs reliant deux ´etats quelconques de Q . Un chemin d´efinit ainsi une transduction pond´er´ee entre un mot du langage sup´erieur et un mot du langage inf´erieur ; le poids de la relation est le produit des poids des arcs, de l’´etat initial et de l’´etat final (on rappelle que dans le demi-anneau tropical, l’op´eration de multiplication est + : ainsi, les poids sont en r´ealit´e ajout´es). Si plusieurs chemins correspondent `a la mˆeme relation dans le transducteur, le poids de la relation est la somme de tous les poids dans le transducteur (donc, le poids minimum dans le demi-anneau tropical).

Un automate d’´etats finis est alors un cas particulier d’un transducteur ; il a la propri´et´e d’ˆetre simple (c’est-`a-dire que toutes ses ´etiquettes sont simples). De mˆeme, un transducteur peut ne pas ˆetre pond´er´e : par d´efaut, un arc a un poids de 1 (poids unitaire), et un transducteur pond´er´e dont tous les poids sont 1 est ´equivalent `a un transducteur classique.

On pr´esente ici les principales op´erations rationnelles sur les transducteurs, qui sont directement h´erit´ees des op´erations sur les transducteurs « traditionnels » ; la section 5.1.2 s’int´eresse cependant aux diff´erences qu’am`enent ces pond´erations. Enfin, on dote le formalisme de r`egles de r´e´ecriture pond´er´ees, pr´esent´ees dans la section 5.1.3.