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.