• Aucun résultat trouvé

1.2 Des structures de donn´ees pour l’analyse pr´esyntaxique

1.2.3 Machines d’´etats finis pond´er´ees

L’utilisation de statistiques est un moyen de traiter les ambigu¨ıt´es d’analyse en l’absence

d’informations linguistiques suffisantes. En ´etudiant des corpus de millions de mots, on calcule

des probabilit´es sur des unigrammes, des bigrammes et des trigrammes pour avoir un mod`ele

plus ou moins r´ealiste de la langue, permettant de d´ecider si une forme est probablement

correcte ou probablement fausse. Or, les transducteurs d’´etats finis sont au contraire des

machines binaires : une relation est reconnue o`u elle ne l’est pas. ´Etant donn´e une forme de

surface, toutes les formes lexicales correspondantes seront trouv´ees, sans ordre particulier.

Les machines d’´etats finis pond´er´ees sont donc une ´evolution des machines d’´etats

fi-nis « classiques ». Pour simplifier, un automate d’´etat fifi-nis pond´er´e ne se contente pas de

d´eterminer si un mot appartient ou non `a un langage (r´eponse binaire, oui ou non), mais

asso-cie ´egalement un poids (g´en´eralement en TALN une probabilit´e, ou une mesure de fr´equence)

`a toute chaˆıne reconnue.

3http://odur.let.rug.nl/~vannoord/papers/fsa/fsa.html

4http://www.csd.uwo.ca/research/grail/

26 Une ´etude de l’analyse pr´esyntaxique...

1.2.3.1 S´eries formelles rationnelles et automates d’´etats finis pond´er´es

Tout comme les automates d’´etats finis classiques correspondent aux langages rationnels,

les automates d’´etats finis pond´er´es correspondent aux s´eries formelles rationnelles. Une s´erie

formelle est une fonction d´efinie sur un langage vers un demi-anneau ferm´e ; informellement,

on peut dire qu’elle associe `a chaque mot du langage un poids appartenant au demi-anneau.

On reprend les d´efinitions de [Berstel et Reutenauer, 1984] : un mono¨ıde est un ensemble

muni d’une loi de composition interne associative avec un ´el´ement neutre pour cette loi. Un

demi-anneau est un ensemble K muni de deux lois de composition interne :

1. une loi additive not´ee ⊕ et dont l’´el´ement neutre est not´e 0 et

2. une loi multiplicative not´ee ⊗ et dont l’´el´ement neutre est not´e 1 .

Ces lois ont les propri´et´es suivantes :

1. (K, ⊕) est un mono¨ıde commutatif ;

2. (K, ⊗) est un mono¨ıde ;

3. le produit (⊗ ) est distributif par rapport `a la somme (⊕ ) ;

4. ∀a ∈ K , on a 0 ⊗ a = a ⊗ 0 = 0 .

Trois exemples de demi-anneaux sont l’alg`ebre de Boole ({0, 1}, ∨, ∧, 0, 1) , les

lan-gages rationnels (Σ

,∪, ., ∅, {!}) et le demi-anneau tropical (R ∪ {∞}, min, +, ∞, 0) qui est

fr´equemment employ´e dans les applications de TALN.

Dans [Sch¨utzenberger, 1961], on trouve une caract´erisation des s´eries formelles rationnelles

similaire `a celle que Kleene donne des langages rationnels :

Une s´erie formelle S : Σ

→ K est rationnelle si et seulement si elle est reconnue

par un automate d’´etats finis pond´er´es sur le demi-anneau ferm´e K , l’ensemble

des poids.

On trouve dans la litt´erature le terme de transducteur au sujet des automates d’´etats finis

pond´er´es : en effet, ceux-ci effectuent une transduction entre les mots d’un langage rationnel et

leur poids dans l’ensemble des poids. Cette transduction est impossible avec un transducteur

classique, car l’ensemble de poids est possiblement infini, et un langage rationnel est d´efini

sur un alphabet fini.

Concr`etement, un automate pond´er´e diff`ere d’un automate classique par l’ajout d’un poids

aux ´etats initiaux, finals, et aux transitions. La fonction de pond´eration de l’automate associe

un poids `a chaque mot du langage, c’est-`a-dire `a chaque chemin dans l’automate (figure 1.7).

Le poids d’un chemin donn´e est le produit du poids de l’´etat initial, de l’´etat final, et de chaque

transition emprunt´ee. Si dans l’automate plusieurs chemins correspondent `a un mˆeme mot, le

poids de ce mot est alors la somme des poids de tous les chemins possibles. Les transducteurs

d’´etats finis pond´er´es sont d´efinis de la mˆeme mani`ere, associant `a chaque relation un poids

diff´erent.

Il reste `a noter une diff´erence importante entre les automates d’´etats finis et leurs

homo-logues pond´er´es : si les premiers sont toujours d´eterminisables, ce n’est pas le cas des seconds.

[Mohri, 1997] revient en d´etail sur cette question et cherche `a caract´eriser les classes

d’auto-mates d´eterminisables ou non. Cela a une influence sur la minimisation du nombre d’´etats

car un automate doit ˆetre d´eterminis´e avant de pouvoir ˆetre minimis´e.

1.2 Des structures de donn´ees pour l’analyse pr´esyntaxique 27

Fig. 1.7 – Automate d’´etats finis pond´er´es reconnaissant les chiffres romains de 0 `a 9

1.2.3.2 Ensembles de poids

Les automates d’´etats finis pond´er´es ont des applications au-del`a du domaine de la

linguis-tique informalinguis-tique, mais dans ce domaine particulier, l’ensemble de poids le plus fr´equemment

utilis´e est le demi-anneau tropical. Dans l’exemple de la figure 1.7, c’est ce demi-anneau qui

est employ´e : ainsi, le poids du mot viii est 0+5+1+1+1+0 (le poids de l’´etat initial, 0, le

poids des quatre transitions emprunt´ees, et le poids de l’´etat final, 4) soit 8. Pour iv, c’est

0-1+5+0, soit 4.

1.2.3.3 R´ealisations

AT&T propose des outils de compilation et de manipulation d’automates et de

transduc-teurs d’´etats finis pond´er´es. Cette suite logicielle, appel´ee FSM

6

, ne propose pas d’interface ou

d’environnement particulier comme le font XFST, XeLDA ou INTEX, mais une collection de

programmes suivant la philosophie de conception d’Unix. Ainsi, sous Unix, ces programmes

sont utilisables principalement en utilisant des scripts shell ; ou en programmant en C/C++

en appelant une biblioth`eque de fonctions ´equivalente `a ces programmes. Une liste non

ex-haustive des programmes disponibles r´ev`ele :

– Des programmes de compilation, comme fsmcompile, qui compile un automate ou un

transducteur `a partir d’une description textuelle (liste des ´etats et des transitions), et

de manipulations diverses de transducteurs : fsmprint pour afficher un transducteur,

fsmdraw pour le dessiner, fsminfo pour obtenir une description ;

– Des programmes pour le calcul rationnel, chacun correspondant `a un op´erateur :

fsmclosure (fermeture transitive), fsmcompose (composition), fsmconcat

(concat´enation), fsmdifference (diff´erence), fsmintersect (intersection), fsminvert

(inversion des niveaux d’un transducteurs), fsmproject (projection), fsmreverse

(renversement), fsmunion (union).

– Des programmes modifiant ou testant les propri´et´es d’un automate : fsmdeterminize

(d´eterminisation), fsmminimize (minimisation), fsmrmepsilon (suppression des

epsilon-transitions), fsmprune (suppression des transitions et des ´etats ne faisant partie

d’aucun chemin, donc inutiles), etc.

– fsmbestpath et autres fonctions de consultation.

On retrouve donc les fonctions de calcul habituelles, mˆeme si certaines ont un effet

l´eg`erement diff´erent : on reviendra par exemple sur le cas de la composition, qui est

28 Une ´etude de l’analyse pr´esyntaxique...

pliqu´ee par l’ajout de poids. (c’est ´egalement le cas pour le produit cart´esien, une op´eration

qui n’existe pas dans FSM ; il en sera question dans le chapitre 6). On trouve ´egalement des

fonctions li´ees `a l’apparition des poids qui n’existaient pas pour les automates et

transduc-teurs non pond´er´es : trouver le chemin de meilleur coˆut dans un automate, trier les chemins

par coˆut, etc.

D’autres r´ealisations existent, en particulier [Adant, 2000] qui est une extension de la

biblioth`eque en C++ de l’Universit´e de Marne-la-Vall´ee.