TagParser
TagParser effectue l'analyse morphologique, syntaxique et sémantique d'un texte. C'est un logiciel opérationnel qui traite des milliers de documents par jour. |
Retour au tableau des prestations Introduction TagParser procède en trois grandes phases distinctes: le chunking, le calcul des relations syntaxiques et le calcul sémantique. TagParser appartient à la famille des analyseurs dits 'ascendants' ou 'montants' ('bottom up' en anglais) dans la mesure où les structures sont construites par paliers successifs pour aboutir au résultat final qui est décrit dans la spécification annexe. Le texte qui suit présente TagParser dans les grandes lignes. Pour comprendre la totalité de la chaîne, vous pouvez consulter le diagramme UML d'activité.
|
1) CHUNKING 1.1) Objectif Une analyse morphologique ayant été réalisée, l'objectif du 'chunking' est triple : a) étiquetage des parties du discours (i.e. Part of Speech Tagging) Par exemple, dans les deux phrases suivantes :
Il s'agit, pour le mot "table", de le catégoriser en tant que verbe dans la première phrase et en tant que nom dans la seconde. b) délimitation des groupes syntaxiques Il s'agit de fixer les frontières des groupes syntaxiques. Ainsi, dans le premier exemple, le chunker construit le découpage suivant :
c) étiquetage des groupes Les groupes constitués précédemment sont étiquetés et produisent le résultat suivant :
Pour les besoins de la présentation, les exemples choisis sont volontairement très simples. Mais le chunker traite des phrases bien plus complexes. Le chunker est un analyseur robuste à large couverture. Il n'est pas spécialisé pour un style de texte particulier. 1.2) Stratégie d'analyse Le chunker appartient à la famille des analyseurs dits "hybrides" qui combinent des informations symboliques (via un dictionnaire et un automate) et un modèle probabiliste (via une matrice de pondération). La stratégie d'analyse repose sur trois principes simples :
Au lieu d'opposer les méthodes symboliques aux méthodes statistiques, comme c'est souvent le cas, nous les combinons pour tirer le meilleur de chacune d'elle. Dis autrement: quand la situation est prévue lors du développement, on l'applique sans autre forme de procès, car elle correspond à une situation totalement maîtrisée par le développeur de l'analyseur. En revanche, si la situation n'est pas prévue, il faut faire appel à des variables cachées que seul un corpus est capable de procurer. On observe d'ailleurs que la frontière entre les deux méthodes varie en fonction de l'état de développement du système. Ainsi, pour un système peu développé, une méthode probabiliste est parfaitement adéquate. Mais les performances en terme de qualité plafonnent assez vite, même en raffinant le modèle mathématique. Si la part des connaissances symboliques s'accroit, plus la méthode symbolique est applicable car plus les situations sont prévues à l'avance, et de ce fait, moins les pondérations sont nécessaires. Les informations linguistiques qui pilotent l'analyse sont issues d'un dictionnaire et d'un entrainement sur un corpus. C'est d'ailleurs sa particularité: aucune règle de grammaire n'est jamais écrite. Si une phrase pose problème, il suffit de l'ajouter avec son annotation (en respectant certaines conventions très simples) dans le corpus d'apprentissage, puis de relancer le programme d'apprentissage. Ce dernier vérifie d'une part que la phrase annotée ne contredit pas les annotations pré-existantes et d'autre part produit un nouvel automate et une nouvelle matrice de pondération. Son développement est de ce fait complètement incrémental. Il est de plus facilement adaptable à un certain type de texte en fonction d'une application particulière. Vous trouverez les détails de ses performances et de son mécanisme d'évolution dans l'article publié au congrès TALN-2003, dans l'atelier dédié à l'évaluation des analyseurs syntaxiques. Le chunker a été écrit en 2002 (et employé dans diverses applications) et les principes de base exposés dans l'article TALN sont toujours valables, néanmoins, depuis lors, le corpus d'apprentissage est passé de 18 000 à 90 000 mots et sa couverture améliorée d'autant. 2 RAFFINEMENT DES ETIQUETTES SYNTAXIQUES Il reste quelques problèmes localisés à résoudre. Ainsi, par exemple, un certain type de groupe qui commence par "du" en français est ambigu entre GN ou un GP. Il n'est pas possible en se fondant uniquement sur les constituants de déterminer son étiquette. Prenons par exemple les phrases: "Il fait du ski" comparativement à "il arrive du ski". Dans ce cas précis, le chunking marque le groupe comme étant "indéterminé entre GN et GP". L'indétermination est levée en croisant deux types d'information : le voisinage du groupe en question et un dictionnaire syntaxique. Une petite grammaire désambiguisation a été écrite explicement (i.e. à la main) dans ce but. Dans toutes les autres circonstances où il possible de déterminer si l'on a affaire à un GN ou un GP, l'étiquette est fixée dans la phase de chunking. 3 CALCUL DES RELATIONS SYNTAXIQUES Le chunking produit un seul résultat constitué d'une liste de groupes syntaxiques (i.e. liste de constituants). Il s'agit maintenant de calculer les relations qui font que ces groupes occupent certaines fonctions dans la phrase. Au contraire du chunker, qui est dérivé d'un corpus annoté, les règles de grammaire sont écrites explicitement. En effet, l'apprentissage à partir d'un corpus de taille moyenne (i.e. de l'ordre de quelques milliers de mots) se prête mal aux relations syntaxiques. Il faudrait un corpus de l'ordre du million de mots pour en capter la généralité. Les relations sont catégorisées en 14 types comme Sujet-Verbe, Modifieur-Nom, Coordination etc. Les 14 types sont fondés sur le guide d'annotation PEAS dont la version 1-6 a été élaborée pour le programme d'évaluation des analyseurs syntaxiques français Technolangue-Easy organisé par ELDA et le LIMSI à l'autome 2004 sous l'égide du Ministère de la Recherche et ensuite repris dans l'ANR Passage de 2007 à 2009, voir ici. Ces 14 types de relation sont subdivisés en relations externes quand elles connectent des groupes entre eux et en relations internes quand elles connectent des mots à l'intérieur d'un même groupe. Le calcul des relations est en réalité l'application en séquence de 14 grammaires locales spécialisées pour tel ou tel type de relation. Ces grammaires exploitent deux critères différents: d'une part, une description (sommaire, il est vrai actuellement) du régime verbal représenté dans le dictionnaire et d'autre part la position linéaire du groupe relativement aux autres groupes dans la phrase. 4 EXEMPLES DE RESULTAT Le résultat peut être exploité soit via l'API de TagParser, soit via une sortie XML. Dans la mesure où cette dernière est assez verbeuse, et pour faciliter la compréhension, voici le résultat après retraitement par un petit utilitaire d'affichage. Les exemples présentés ici sont des phrases très simples car même avec un affichage graphique ergonomique, les relations sur les phrases complexes sont très difficiles à lire. Sur: Jean ne mange avec plaisir que les gâteaux. Sur: Les trois jeunes filles ne l'ont pas admis. Sur: En quelle année a-t on vraiment construit la première automobile ? 5 CALCUL SEMANTIQUE Ensuite, quatre calculs sont réalisés: * le calcul des entités nommées, afin d'identifier les noms de personnes, les noms d'organisation ou les dates. * l'identification de l'unité de sens de chaque mot. Il s'agit notamment de s'apercevoir si un nom possède un ou plusieurs sens, ce qui est une information primordiale pour la fouille de données. De plus, pour certains noms communs spécifiques à un domaine technique, le nom du domaine est produit, ceci afin de facilter les calculs de thématiques. * le calcul de la coréférence pour trois phénomènes: a) le regroupement des variantes d'entités nommées afin de connecter "Jacques Chirac" et "J. Chirac", ou bien "Nicolas Sarkozy" et "Sarko" ou encore EDF avec "Electricité de France".
* l'extraction des citations pour isoler les discours rapportés comme dans "Robert répond: je reviens" et déterminer quel est le relateur (i.e. "Robert"), le verbe citatif (i.e. "répondre") et la citation (i.e. "je reviens"). |