Un analyseur LFG efficace pour le français : SXLFG

Transcription

Un analyseur LFG efficace pour le français : SXLFG
TALN 2005, Dourdan, 6–10 juin 2005
Un analyseur LFG efficace pour le français : S X L FG
Mots-clefs :
Keywords:
syntaxe, analyseur, LFG, désambiguïsation, forêt partagée
syntax, parser, LFG, disambiguation, shared forest
Résumé
Dans cet article, nous proposons un nouvel analyseur syntaxique pour le français,
qui repose sur une variante du modèle Lexical-Functional Grammars (Grammaires Lexicales
Fonctionnelles) ou LFG. Nous présentons tout d’abord notre grammaire et la variante du formalisme LFG dans laquelle elle est écrite. Nous décrivons ensuite l’analyseur LFG que nous
avons développé et qui calcule ses structures fonctionnelles sur une forêt partagée, ainsi que
les différentes techniques de rattrapage d’erreurs que nous avons mises en œuvre. Enfin, nous
présentons quelques résultats chiffrés. Nous montrons que cet analyseur est à la fois efficace et
robuste, mais que la grammaire est encore améliorable.
Abstract In this paper, we introduce a new parser for French, based on the LexicalFunctional Grammars formalism (LFG). First, we present our grammar and the LFG flavor
in which it is designed. We then describe the LFG parser we developed and how its functional structures are computed, and various error recovery techniques. Finally, we present some
concrete results. We show that our parser is both efficient and robust, but that the grammar is
still improvable.
1 Introduction
Le développement d’un nouvel analyseur syntaxique pour le formalisme LFG (Lexical-Functional Grammars, cf. p. ex. (Kaplan, 1989)) n’est pas en soi très original. Il en existe déjà un
certain nombre, comme ceux de (Kaplan & Maxwell, 1994), (Andrews, 1990), ou (Briffault
et al., 1997). Toutefois, ils n’utilisent pas toujours de la manière la plus complète possible les
différentes techniques algorithmiques de partage de calcul et de représentation compacte de
l’information qui permettent d’écrire un analyseur efficace malgré le fait que le formalisme
LFG, comme de nombreux formalismes qui reposent sur l’unification, est NP complet.
Pour pouvoir effectuer l’analyse en utilisant au maximum ces techniques, il nous a donc fallu
le restreindre sans pour autant diminuer son pouvoir d’expression. Associée à un analyseur
syntaxique tabulaire, cette variante du formalisme LFG nous permet d’effectuer efficacement
l’analyse d’énoncés complexes.
La construction des structures de constituance ne pose théoriquement1 pas de problème particulier, car elles sont décrites par des grammaires non-contextuelles (CFG) sous-jacentes aux
LFG et appelées ici grammaires support. En effet, les algorithmes généraux d’analyse pour les
CFG sont bien connus (Earley, GLR,. . .). En revanche, la construction efficace des structures
fonctionnelles est beaucoup plus problématique. Nous avons développé un module de calcul
de ces structures qui partage les sous-structures communes à plusieurs analyses. De plus, des
mécanismes de rattrapage d’erreur à tous les niveaux permettent d’obtenir un analyseur robuste.
En parallèle, nous avons adapté une grammaire LFG du français pour obtenir un analyseur du
français à la fois efficace et raisonnablement couvrant.
2 Grammaire et formalisme
Cet article essaye de montrer que l’analyse de textes tout-venant d’une langue naturelle non
contrainte peut se fonder sur le formalisme LFG. Le système S X L FG peut bien sûr être utilisé
pour toute langue décrite en LFG/S X L FG. Pour cette présentation, nous utilisons une grammaire
à large couverture du français que nous avons réalisée et qui est utilisée par notre système
d’analyse.
2.1 La grammaire : historique et couverture
La grammaire du français utilisée dans cette présentation est une adaptation d’une grammaire
LFG originellement développée par L. Clément pour son système XLFG (Clément & Kinyon,
2001). Dans son état actuel, la grammaire est de couverture moyenne. Parmi les phénomènes
complexes couverts par la grammaire, on peut citer les coordinations sans ellipse, les juxtapositions (de phrases ou de groupes), les interrogatives (non clivées), les sujets inversés ou doubles
(Pierre dort-il ?), tous les types de noyaux verbaux (y compris les clitiques, les temps composés, le passif et la négation), les complétives (sous-catégorisées ou adjointes), les infinitives
(y compris les verbes à montée et les trois types de verbes à contrôle) ou les relatives et les
interrogatives indirectes (même enchâssées). En revanche, les comparatives, les clivées, les co1
Même si, en pratique, la disponibilité d’un bon analyseur est déjà plus délicate.
Un analyseur LFG efficace pour le français : S X L FG
ordinations à ellipse ne sont pas couvertes (entre autres). D’autre part, nous avons pu constater
que la grammaire support (cf. section 5) est beaucoup trop ambiguë.
2.2 Le formalisme employé
Le formalisme employé est une variante de LFG, qui se distingue du formalisme standard sur
deux points principaux. Tout d’abord, les entrées lexicales ne contiennent ni descriptions fonctionnelles ni équations lexicales. La première contrainte empêche qu’une forme lexicale ne
puisse modifier une structure qui la contient. Nous verrons que cela respecte une règle plus
générale nécessaire à notre variante du modèle LFG. La seconde contrainte interdit la description de généralités sur les entrées lexicales, comme les formes passives ou l’impersonnel. Ainsi,
les entrées lexicales sont des triplets contenant une forme fléchie, une catégorie (i.e. un terminal
de la grammaire support) et une structure fonctionnelle sous-spécifiée avec partage de structures
possible (cf. figure 1).

PRED


SUBJ


VCOMP


sait, verbe
...
’savoir
D
SUBJ , VCOMP
1
h
SUBJ
1
i
E
’







sait
verbe
[pred="savoir<subj,vcomp>", ... , @CtrlSubj] ;
@CtrlSubj = [subj=[]1, vcomp=[subj=[]1]];
F IG . 1 – Entrée lexicale (partielle) pour une forme verbale à contrôle sujet (et son codage via
une macro).
La seconde différence importante est que les équations fonctionnelles sont interprétées en sorte
qu’elles ne puissent pas modifier les structures fonctionnelles associées aux non-terminaux de
partie droite d’une règle. D’une manière générale, et contrairement au modèle LFG originel, le
calcul de l’information doit être strictement synthétisé. Le contenu de la ou des structures fonctionnelles attachées au non-terminal de la partie gauche d’une règle de la grammaire support ne
peut qu’être une constante ou se calculer (par unification) à partir des structures fonctionnelles
attachées aux symboles de la partie droite de cette règle. Si ce symbole en partie droite est terminal, la structure fonctionnelle qui lui est attachée est spécifiée dans un lexique par une entrée
lexicale comme celle de la figure 1. Cette entrée lexicale définit une forme fléchie sait qui est de
la catégorie verbe et dont la structure fonctionnelle associée contient elle-même une structure
fonctionnelle sous-spécifiée et partagée, repérée par 1 .
Cette vision purement synthétisée est la clef de notre stratégie d’évaluation, car elle permet
d’introduire du partage de calcul pendant la construction des structures fonctionnelles et de
réaliser cette construction sur la forêt d’analyse et non sur les analyses individuelles prises
successivement. En effet, si une structure fonctionnelle ne peut être modifiée ni par son père
ni par ses frères, sa valeur n’est calculée qu’une seule fois et peut être partagée par tous ses
ascendants. En revanche, cette restriction n’empêche aucunement d’exprimer des phénomènes
non configurationnels, c’est-à-dire immédiatement liés à l’ordre des mots, pas plus que des
phénomènes de contrôle lexical et de dépendance à longue distance.
À titre d’exemple, considérons la règle permettant de décrire la disposition des clitiques d’un
verbe fini en cas d’extraction clitique du génitif de l’objet (exemple : Jean en mange une partie). La règle complète et sa représentation en S X L FG sont données dans la figure 2. Comme
(Clément & Kinyon, 2001), nous écrivons toutes les équations fonctionnelles au même niveau,
en remplaçant l’opérateur ↓ associé au n-ième symbole de partie droite par ↓n.
CLITICS → (clr) (cld) clg (cll)
(↑ subj pers) = (↓1 pers)
(↑ subj num) = (↓1 num)
(↑ subj gen) = (↓1 gen)
↓1 : (↑ obj case =c rfl)
↓1 : (↑ obj = ↓1)
↓1 : (↑ à-obj = ↓2)
↓1 : (↑ à-obj pers = 3)
(↑ obj de-obj) = ↓3
↓4 ∈ (↑ adjunct)
CLITICS -> (clr) (cld) clg (cll)
$$ subj pers = $1 pers
$$ subj num = $1 num
$$ subj gen = $1 gen
$1 : ($$ obj case =c rfl)
$1 : ($$ obj = $1)
$1 : ($$ à-obj = $2)
$1 : ($$ à-obj pers = 3)
$$ obj de-obj = $3)
$4 < ($$ adjunct)
F IG . 2 – Les clitiques dans le cas d’une extraction du génitif de l’objet (règle et codage).
On constate qu’un certain nombre de notations sont non-standard. Les opérateurs fonctionnels
utilisés sont les suivants (un identifiant est un nom d’attribut, une expression régulière d’attributs
pouvant utiliser les opérateurs de disjonction et d’itération de Kleene, ou un identifiant sousspécifié de type ($i pcas)-obj) :
unification (opérateur "=") : l’équation est vérifiée si et seulement si l’unification entre les deux
structures opérandes est possible et qu’elle réussit ; un échec de l’unification fait échouer
le calcul de la structure $$ (i.e. ↑) associée au non-terminal de partie gauche,
parcours constructif de structure (opérateur " ") : avec un chemin vers une structure S en
partie gauche et un identifiant i en partie droite (identifiant atomique ou expression régulière), rend la sous-structure de S de nom i en la créant si elle n’existe pas,
parcours non-constructif de structure (opérateur ".") : comme le précédent, mais en cas de
non-existence cela échoue ; cet opérateur est utilisé lorsque la partie droite est une expression régulière, pour parcourir toutes les structures existantes qui sont reconnues par
l’expression régulière, sans créer de structure supplémentaire (s’il n’y en a pas, échec),
vérification de la présence (resp. absence) d’un attribut (opérateurs "+" resp. "-") : l’équation est vérifiée si la structure opérande existe (resp. n’existe pas),
équation « contrainte » (opérateur "=c") : comme l’unification, mais la structure finale d’une
analyse ne doit pas comporter d’attribut ayant subi une équation contrainte sans avoir subi
également une unification,
ajout dans la liste d’adjoints (opérateur "<") : ajoute le premier opérande au second, ce dernier devant être une liste d’adjoints, c’est-à-dire un chemin se terminant par un identifiant
déclaré de type liste d’adjoints (classiquement adjunct),
conditionnement (opérateur " :") : permet de contraindre la vérification d’une équation au fait
qu’un symbole optionnel de partie droite soit effectivement réalisé ; par exemple, une
équation de la forme $1 :(éq) est vérifiée soit parce que le premier symbole de la partie
droite (ici clr) dérive dans le vide, soit parce que l’équation éq est vérifiée.
Enfin, un mécanisme permet de représenter pour une structure fonctionnelle donnée les structures en constituants qui lui correspondent.
Un analyseur LFG efficace pour le français : S X L FG
3 L’analyseur S X L FG : analyse standard
3.1 Architecture globale
Le moteur de S X L FG est un analyseur non-contextuel général qui traite la grammaire support
de la LFG. C’est un analyseur Earley guidé qui utilise un automate sous-jacent left-corner et
qui est une évolution de (Boullier, 2003). L’ensemble des analyses produites par cet analyseur
est représenté sous la forme d’une forêt partagée. L’évaluation des équations qui spécifient les
calculs des structures fonctionnelles se fait au cours d’un parcours bas-haut gauche-droite de
cette forêt partagée. L’entrée de l’analyseur est un treillis de mots (connus du lexique), qui est
transformé par le lexeur en un treillis de lexèmes (terminaux de la CFG et structures fonctionnelles sous-spécifiées associées). Un post-traitement (facultatif) permet la désambiguïsation de
la sortie de l’analyseur. Cette architecture est résumée dans la figure 3.
Texte brut
Pré−traitement
Treillis
de lexèmes
Treillis
de mots
Analyseur CFG
Lexeur
Calcul des
structures f
Désambiguïsation
partielle ou totale
Analyse
Analyses
F IG . 3 – Architecture de l’analyseur S X L FG.
3.2 L’analyseur Earley
Les évolutions de l’analyseur Earley par rapport à celui décrit dans (Boullier, 2003) sont de
deux sortes : la prise en compte de treillis (ou DAG) en entrée et la récupération des erreurs syntaxiques. Ce deuxième point sera examiné en section 4.1. Permettre de traiter un DAG en entrée
ne nécessite pas, tout du moins d’un point de vue théorique, des changements considérables à
l’algorithme Earley. Puisqu’ici l’analyse Earley est guidée par un automate fini définissant un
sur-langage régulier du support, cet automate prend lui aussi en compte un DAG en entrée.
3.3 Calcul des structures fonctionnelles
Disposant d’une forêt partagée en sortie de l’analyse CF2 , nous devons maintenant calculer les
structures fonctionnelles. Bien entendu, la méthode qui consiste à déplier la forêt pour en extraire chaque arbre sur lequel on évalue les structures fonctionnelles est impratiquable en termes
de temps de calcul. En revanche, l’autre possibilité, une évaluation des structures fonctionnelles
directement sur la forêt partagée, est toujours un sujet de recherche. Le problème se simplifie cependant si l’on suppose, comme c’est le cas dans S X L FG, que l’information calculée est
uniquement synthétisée. Dans ce cas, le support (c’est-à-dire la forêt partagée) n’a pas besoin
d’être modifié en cours d’évaluation.
2
Rappelons que cette structure permet de représenter en une taille polynomiale en n, longueur du texte source
ou nombre d’arcs du DAG, l’ensemble potentiellement non borné des arbres d’analyse.
La conséquence directe de cette évaluation bas-haut des structures fonctionnelles est que toute
sous-forêt3 n’est évaluée qu’une seule fois et que son calcul est partagé entre tous ses parents.
L’autre conséquence est qu’à chaque nœud de la forêt est associée non pas une valeur unique
mais une disjonction de valeurs que l’on doit savoir gérer. Très souvent, le résultat de ce calcul
est donc un grand nombre de structures fonctionnelles (valides) associées à la racine de la forêt.
3.4 Désambiguïsation
La sortie de l’étape précédente (sauf échec, cf. partie suivante) est une forêt partagée de structures de constituants associée à un ensemble de structures fonctionnelles avec partage de structures communes. Ces informations peuvent être la description d’une ou de plusieurs analyses.
C’est la raison pour laquelle il est souhaitable de disposer d’un module permettant de choisir
parmi ces analyses celle qui est la plus vraisemblable.
Deux familles de techniques sont envisageables pour désambiguïser : les techniques probabilistes et les techniques à règles. Suivant sur ce point (Clément & Kinyon, 2001), nous avons
choisi d’utiliser des règles pour différentes raisons. Tout d’abord, les techniques probabilistes
nécessitent des mécanismes et des corpus d’apprentissage qui ne sont pas toujours disponibles,
au moins pour le français. Ensuite, les techniques purement probabilistes restent un pis-aller, en
ce sens qu’elles ne procèdent d’aucune théorisation linguistique et n’ont aucun pouvoir explicatif. Enfin, la désambiguïsation est une tâche complexe à effectuer sur des structures de données
complexes, et il faudrait un modèle probabiliste complexe pour obtenir des résultats de qualité
comparable à des règles plus aisément énonçables. Ceci ne signifie pas que nous niions toute
importance aux probabilités, et nous en mettons en œuvre, à travers la notion de préférence
lexicale (poids associés aux entrées du lexique).
Notre module de désambiguïsation par règles est une refonte et une extension des 3 principes
simples énoncés par (Clément & Kinyon, 2001), qui s’appliquent sur les structures fonctionnelles (cf. (Kinyon, 2000) pour une argumentation en TAG sur l’importance de se fonder, pour
la désambiguïsation, sur des structures comme les arbres de dérivation TAG ou les structures
fonctionnelles LFG et non sur les structures en constituants). Chacune de nos règles est appliquée successivement (on peut changer l’ordre dans lequel elles le sont, voire ne pas toutes les
appliquer). L’application d’une règle consiste à éliminer les analyses qui ne sont pas optimales
au sens de cette règle.
Nos règles, dans leur ordre d’application par défaut, sont :
règle 1 : Préférer les analyses maximisant la somme des poids des lexèmes utilisés. Les multimots ont dans le lexique un poids supérieur à la somme des poids de leurs constituants, ce
qui garantit que l’on préfère utiliser un multi-mots plutôt que ses constituants. D’autres
lexèmes ont des poids ajoutés à la main qui les favorisent (ainsi les verbes supports) ou
les défavorisent (ainsi est en tant qu’adjectif) par rapport au poids par défaut,
règle 2 : Préférer les noms communs avec déterminant. Ceci est le pendant sur les structures
fonctionnelles d’une règle qui pourrait s’énoncer comme "parmi les groupes nominaux
dont la tête est un nom commun, préférer ceux qui ont des déterminants".
règle 3 : Préférer les arguments aux modifieurs, et les relations auxiliaire-participe aux argu3
En toute généralité, chaque (sous-)forêt est un graphe. Nous excluons cependant ce cas et nous ne traitons donc
+
que des (sous-)forêts qui sont des DAG. La grammaire support ne doit donc pas être cyclique (6 ∃A t. q. A ⇒ A).
Cette (petite) restriction n’empêche pas, bien sûr, les structures fonctionnelles d’être elles-mêmes cycliques.
Un analyseur LFG efficace pour le français : S X L FG
ments. Le calcul se fait récursivement sur toutes les (sous-)structures, avec une contribution d’autant plus faible que la structure concernée est profondément enchâssée.
règle 4 : Préférer les arguments les plus proches. Le calcul se fait récursivement sur toutes
les (sous-)structures, et on préfère les structures minimisant la somme des distances des
arguments à leur gouverneur,
règle 5 : Préférer les structures les plus enchâssées. Ceci est le pendant sur les structures fonctionnelles du principe d’association droite énoncé sur les structures en constituants,
règle 6 : Trier les structures selon le mode des pred verbaux. Ceci permet de privilégier récursivement les structures à l’indicatif à celles au subjonctif, et ainsi de suite en classant
toutes les valeurs possibles de l’attribut mode selon un ordre déterminé.
règle 7 : Trier selon les attachements des adverbes. On préfère les rattachements d’adverbe à
adverbe aux rattachements d’adverbe à adjectif, eux-mêmes préférés aux rattachements
d’adverbe à verbe. La position dans cette hiérarchie de l’attachement d’adverbe à nom
commun (en première ou dernière position) dépend d’un trait lexical (qui est par exemple
positif pour seulement et négatif pour souvent).
règle 8 : Choisir une analyse au hasard. Pour garantir qu’on rende une analyse et une seule.
À l’issue de ce mécanisme de désambiguïsation sur les structures fonctionnelles, la forêt d’analyse (structures en constituants) est filtrée afin qu’elle corresponde exactement aux structures
fonctionnelles retenues. En particulier, si la désambiguïsation est complète, ce filtrage rend
en général une structure en constituants unique (un arbre). Il peut cependant rester plusieurs
structures en constituants pour une seule structure fonctionnelle si l’évaluation des structures
fonctionnelles sur ces structures en constituants conduit à un résultat commun.
4 Mécanismes pour l’analyse robuste
4.1 Rattrapage d’erreur dans l’analyseur CFG
La détection d’une erreur dans l’analyseur Earley4 peut être la manifestation de deux phénomènes : la CFG support n’est pas assez couvrante ou l’énoncé n’est pas du français. Bien
entendu, même si l’analyseur ne distingue pas ces deux situations, le concepteur de la grammaire doit y réagir différemment. Dans les deux cas, l’analyseur doit être conçu pour pouvoir
se rattraper afin de poursuivre l’analyse et être capable, si possible, d’analyser convenablement
les parties correctes d’énoncés incorrects, tout en assurant une relation raisonnable entre ces
parties correctes. Le traitement des erreurs dans les analyseurs est un sujet de recherche qui a
surtout été abordé dans le cas déterministe et très peu dans le cas des analyseurs CF généraux.
Nous avons implanté deux stratégies de rattrapage dans notre analyseur Earley, essayées l’une
après l’autre. La première stratégie est dite de rattrapage avant. Si, à un certain point, l’analyse est bloquée, alors on "saute" un certain nombre de terminaux en sorte de pouvoir continuer
l’analyse. La seconde stratégie est dite de rattrapage arrière, car elle remet en cause des choix
déjà effectués. En effet, au lieu de chercher à poursuivre l’application de la règle courante, on
"saute" les terminaux déjà concernés par cette règle en remontant d’un niveau et en appliquant
un rattrapage avant au niveau de la règle appelante : bien que précédemment choisi, le symbole de partie gauche de la règle dont on est parti est donc éliminé. En cas d’échec, on peut
4
Rappelons que l’analyse Earley, comme l’analyse GLR a la propriété du préfixe correct. Cette propriété est
conservée lorsque le texte source est un DAG.
remonter encore d’un niveau, et ainsi de suite jusqu’à l’axiome. Dans ce dernier cas, la forêt
partagée d’analyse que l’on obtient se réduit à une production qui affirme que l’énoncé source
est dérivable de l’axiome. On parle alors de rattrapage trivial.
4.2 Structures fonctionnelles incohérentes ou partielles
Le calcul des structures fonctionnelles échoue si et seulement si aucune structure fonctionnelle
n’est associée à la racine de la forêt partagée. Cette situation d’erreur provient du fait que les
contraintes (d’unification) spécifiées par les équations fonctionnelles n’ont pas pu toutes être
vérifiées ou que les structures fonctionnelles résultantes sont incohérentes. Sans entrer dans les
détails, l’incohérence découle surtout de vérifications de sous-catégorisation qui ont échoué.
Un premier échec déclenche une deuxième évaluation des structures fonctionnelles sur la forêt
partagée, au cours de laquelle les vérifications de cohérence sont supprimées. En cas de succès,
on obtient à la racine un certain nombre de structures fonctionnelles incohérentes. Bien entendu,
cette seconde tentative peut elle aussi échouer. On recherche alors dans la forêt partagée tous
les nœuds maximaux qui ont des structures fonctionnelles et dont aucun des pères n’a de structure fonctionnelle. Ils correspondent donc à des analyses partielles disjointes éventuellement
incohérentes. Le processus de désambiguïsation présenté à la section 3.4 s’applique à tous les
nœuds maximaux.
4.3 Sur-segmentation des énoncés inanalysables
Malgré les mécanismes exposés précédemment, il arrive que l’analyseur ne rende aucune analyse. Ceci peut être dû à l’expiration d’un délai maximum que l’on peut donner en paramètre
(time-out), ou à ce que le rattrapage d’erreur de l’analyseur Earley n’a pas été capable de produire une analyse raisonnable (typiquement, le seul rattrapage possible est le rattrapage trivial).
La cause peut en être l’insuffisance de la couverture de la grammaire, ou un énoncé d’entrée par
trop déraisonnable (fautes de français, phrases incomplètes, texte bruité. . .).
Pour cette raison, nous avons réalisé une surcouche à S X L FG qui permet une sur-segmentation
des énoncés agrammaticaux. L’idée est qu’il arrive fréquemment que des portions de l’énoncé
d’entrée soient analysables en tant que phrases, alors même que l’énoncé d’entrée dans son ensemble ne l’est pas. Nous découpons donc en segments les énoncés inanalysables (découpage
de niveau 1), puis, le cas échéant, redécoupons en segments les segments de niveau 1 inanalysables5 (découpage de niveau 2) et ainsi de suite avec 5 niveaux de découpage qui sont :
niveau 1 : découpage selon les (quasi-)frontières de phrases : ceci comprend les frontières de
phrases détectées par un segmenteur au sein de la chaîne d’entrée, ou bien des quasifrontières de phrases (points-virgules, éléments d’une liste, etc.),
niveau 2 : découpage sur les (probables) ponctuations fortes (deux-points, les tirets isolés, les
points d’exclamation et d’interrogation, les guillemets, les apostrophes isolées, etc.),
niveau 3 : découpage sur les ponctuations faibles (typiquement les virgules),
niveau 4 : découpage sur les coordonnants (comme "et" ou "ou"),
niveau 5 : découpage sur les frontières de mots.
5
Un énoncé peut être découpé en deux segments de niveau 1 dont le premier est analysable. Seul le second sera
alors sur-segmenté au niveau 2. Et seuls les segments de niveau 2 inanalysables seront sur-segmentés, etc.
Un analyseur LFG efficace pour le français : S X L FG
La qualité de l’analyse obtenue décroît évidemment avec le niveau de découpage. Si le découpage de niveau 1 ne pose aucun problème, certaines difficultés apparaissent au niveau 2. Les
niveaux 3 et 4 sont véritablement du rattrapage. Et le niveau 5 n’est là que pour pouvoir analyser
toutes les phrases possibles, et en particulier pour ne pas déclarer forfait sur des phrases dont on
sait analyser certains morceaux de niveau 1 ou 2, mais dont une portion n’est analysable qu’au
niveau 56 .
5 Résultats et statistiques
Dans cette section, nous n’évaluerons pas la qualité d’une analyse qui dépend pour l’essentiel7
de la grammaire qui nécessiterait de disposer d’un corpus de référence annoté manuellement.
Nous nous concentrons ici sur l’efficacité de notre système en présentant les résultats obtenus
sur un corpus journalistique de 3 213 phrases.
Puisque chaque phrase est représentée sous forme de DAG, nous donnons une évaluation de sa
complexité non en terme de longueur, mais en comptant le nombre d’arcs du DAG. Chaque arc
représente une transition sur un mot. Le nombre moyen d’arcs par phrase est de 29,1 avec une
médiane à 25 alors que la plus longue phrase contient 144 transitions. Il faut noter que le lexeur,
à son tour, transforme chaque mot en un ensemble de symboles terminaux de la grammaire
support. Cette ambiguïté lexicale produit elle-même en moyenne une expansion d’un facteur
1,5. Cette expansion peut, pour certains mots courants, dépasser assez largement ce facteur.
C’est en particulier le cas des mots inconnus qui produisent chacun 5 catégories différentes.
Malgré la qualité du pré-traitement, lexique et correction des erreurs (cf. figure 3), il reste en
moyenne 1,5 mot inconnu par phrase avec une médiane à 1 et un maximum à 29 !
Sur les 3 213 phrases, 409 (12,7 %) sont agrammaticales pour la grammaire support (CFG) et
déclenchent donc le traitement d’erreur décrit à la section 4.1. Notre grammaire support est
excessivement (anormalement !) ambiguë : le nombre médian d’analyses support dépasse les
11 millions d’arbres alors que le maximum dépasse les 1040 analyses ! Il y a quand même 35%
des phrases qui dépassent le milliard d’arbres et 19% qui dépassent les mille milliards (1012 ).
Malgré ces nombres gigantesques et en prenant en compte le lexeur et le rattrapage d’erreur
eventuel, l’analyseur Earley guidé reste très efficace. La forêt partagée prend en moyenne 0,016s
pour se construire avec une médiane inférieure à 0,01s et un maximum de 1.98s. Seulement 3%
des phrases prennent plus de 0,1s et 1% plus de 0,5s8 .
Nous n’évaluons pas ici la phase de construction des structures fonctionnelles car nous n’avons
pas encore mis en place tous les outils qui le permettraient. Il manque en particulier la mesure
du nombre de structures fonctionnelles incohérentes ou partielles (cf. 4.2).
Nous avons trouvé que 41% des phrases nécessitent une sur-segmentation (cf. 4.3), qui provient
principalement d’un dépassement du temps maximal que l’on a imparti à cette phase. Ce résultat montre que le gain en temps obtenu par le partage du calcul des structures fonctionnelles
ne suffit pas à compenser l’ambiguïté massive de la grammaire support. Parmi les phrases qui
ont nécessité de la sur-segmentation, certains morceaux de phrase ont dû eux-mêmes être resegmentés. Au total, et parmi les phrases nécessitant une sur-segmentation, la segmentation de
6
On notera du reste que ce niveau 5 ne fonctionne correctement que si la grammaire reconnaît comme des
éléments du langage décrit tous les terminaux pris isolément.
7
Cette qualité dépend aussi des heuristiques de désambiguïsation utilisées et du traitement de la robustesse.
8
Nos tests ont été réalisés sur une architecture AMD Athlon XP 2100+ (1.7 GHz) avec GCC sans optimisation.
niveau 2 a suffi dans 18% des cas et celle de niveau 3 ou 4 dans 62% des cas. Celle de niveau 5
a donc dû être utilisée pour une partie au moins de la phrase dans 20% des cas.
6 Conclusion
Dans cet article, nous avons d’une part introduit une variante de LFG, et d’autre part l’analyseur
S X L FG qui exploite une spécification de cette variante. À notre connaissance, c’est la première
fois qu’un système d’analyse fondé sur le modèle LFG traite du texte tout venant de façon
efficace et robuste sans que le pouvoir expressif du formalisme ne soit dégradé.
Il est en outre possible de décrire des phénomènes complexes dans S X L FG en accord avec les
nombreux travaux linguistiques qui s’y rapportent. Les expériences relatées utilisent une grammaire du français (et un lexique morpho-syntaxique) que nous avons également réalisée. Les
résultats extrêmement encourageants obtenus ne doivent bien entendu pas masquer qu’il s’agit
d’une première tentative qui doit se poursuivre et qui peut être améliorée. Les perfectionnements
possibles concernent le formalisme, la grammaire du français et l’analyseur S X L FG lui-même.
Nous avons quelques idées pour étendre notre variante de LFG et qui pourrait faciliter certains
traitements, en particulier celui des coordonnées. La grammaire doit être étendue et améliorée.
En effet, certaines constructions comme les clivées, les comparatives, les coordinations à ellipse,
et d’autres, ne sont pas couvertes.
D’autre part, la grammaire support doit être affinée car son ambiguïté actuelle est déraisonnable
(cf. section 5). Même si notre analyseur Earley y est relativement peu sensible, elle peut rendre
prohibitif le temps d’évaluation des structures fonctionnelles associées.
Les autres pistes de recherche sur l’analyseur proprement dit concernent essentiellement l’amélioration de la robustesse et du temps de calcul des structures fonctionnelles.
Références
A NDREWS A. (1990). Functional closure in LFG. Rapport interne, The Austrilian National University.
B OULLIER P. (2003). Guided Earley parsing. In Proceedings of the 8th International Workshop on
Parsing Technologies (IWPT’03), p. 43–54, Nancy, France.
B RIFFAULT X., C HIBOUT K., S ABAH G. & VAPILLON J. (1997). An object-oriented linguistic engineering environment using LFG (Lexical-Functional Grammar) and CG (Conceptual Graphs). In
Proceedings of Computational Environments for Grammar Development and Linguistic Engineering,
ACL’97 Workshop.
C LÉMENT L. & K INYON A. (2001). XLFG – an LFG parsing scheme for French. In Proceedings of
LFG ’01, Hong Kong.
K APLAN R. (1989). The formal architecture of lexical functionnal grammar. Journal of Informations
Science and Engineering.
K APLAN R. M. & M AXWELL J. T. (1994). Grammar Writer’s Workbench, Version 2.0. Rapport
interne, Xerox Corporation.
K INYON A. (2000). Are structural principles useful for automatic disambiguation ? In Proceedings of
in COGSCI’00, Philadelphia, Pennsylvania, United States.