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.
Dans le document
Spécification et réalisation d'un formalisme générique pour la segmentation multiple de documents textuels multilingues
(Page 38-41)