LinguaStream

Menu


ICON This page is designed to be printable. Just use the "Print" command of your browser.

About NLP

Natural Language Processing (NLP) is a discipline between linguistics and computer science which is concerned with the computational aspects of natural (i.e. human) languages. It belongs to the cognitive sciences and overlaps with the field of artificial intelligence (AI), a branch of computer science that is aiming at computational models of human cognition.

The theoretical side takes up issues in formal theories, and deals with formal theories about the linguistic knowledge that a human needs for generating and understanding language. The applied side of NLP is more interested in the practical outcome of modelling human language use in order to create software products that have some knowledge of human language. Typical applications are information retrieval, machine translation, question answering, human-machine interaction, autamatic summarization, ...

Introduction

Développée au GREYC depuis 2001, LinguaStream est une plate-forme générique pour le traitement automatique des langues naturelles, fondée sur l'enrichissement incrémental des documents électroniques. Elle permet la conception et l'évaluation de chaînes de traitement complexes, par assemblage de modules d'analyse de types et de niveaux variés : morphologique, syntaxique, sémantique, discursif ou encore statistique. Ainsi, chaque palier de la chaîne de traitement se traduit par la découverte et le marquage de nouvelles informations, sur lesquelles pourront s'appuyer les analyseurs subséquents. En fin de chaîne, différents outils permettent de visualiser les documents analysés et leurs annotations.

La plate-forme propose différents mécanismes d'élaboration des composants de traitement : règles morphologiques, grammaires d'unification, transducteurs, lexiques sémantiques, règles de production, etc. La plupart d'entre eux s'appuient sur des formalismes déclaratifs, certains étant couramment utilisés en TAL. Chaque composant d'analyse est réutilisable immédiatement dans d'autres chaînes de traitement, et peut être remplacé par un autre composant fonctionnellement équivalent. Une interface graphique prend en charge les différents aspects de l'élaboration d'une chaîne de traitement complète. En outre, grâce à une API Java et à l'utilisation systématique des normes et outils XML, la plate-forme ainsi que les traitements élaborés avec son aide sont facilement extensibles et intégrables.

LinguaStream a pour ambition de faciliter la réalisation d'expériences sur corpus non triviales en TAL, ainsi que le cycle d'évaluation/ajustements qui en découle. Les disciplines liées au TAL conçoivent ou utilisent aujourd'hui des systèmes dont la réalisation informatique est souvent très complexe, pour lesquels il n'est plus envisageable de procéder systématiquement à une implémentation ad hoc : le coût de développement induit par chaque nouvelle expérience devient en effet un frein considérable à l'approche expérimentale. D'autre part, l'importance des compétences informatiques mises en jeu impliquera souvent le recours à un spécialiste, augmentant encore la complexité du processus expérimental. Pour répondre à cette problématique, LinguaStream facilite la mise en oeuvre de procédés complexes tout en requérant des compétences informatiques minimales.

Chaînes de traitement

La notion de chaîne de traitement constitue le fondement de la plate-forme. Elle vise à répondre au besoin d'articulation de traitements qui émerge massivement en TAL. En effet, la communauté dispose maintenant de solutions acceptables aux premiers objectifs qu'elle s'est fixés (comme l'étiquetage, ou l'analyse morpho-syntaxique), et on peut donc tirer parti de ces résultats pour élaborer des systèmes réalisant des tâches de plus haut niveau. D'autre part, dans la mesure où la grande majorité des modèles décrivant les langues naturelles distinguent différentes classes d'objets et de structures, il sera souvent souhaitable de distinguer ces mêmes niveaux dans la construction des analyseurs automatiques qui en dépendent. La mise en oeuvre d'un processus complexe impose donc généralement de faire collaborer différents modules de traitements a priori distincts.

LinguaStream permet d'élaborer visuellement ces chaînes de traitements, les divers composants apparaissant sous forme de "boîtes" reliées entre elles. Une représentation uniforme des annotations permet à chaque composant d'exploiter les résultats produits par les analyses précédentes. La plate-forme dispose en standard d'un jeu de composants extensible, qu'il suffit de sélectionner dans une "palette". Chaque composant dispose d'un ou plusieurs points d'entrée et/ou de sortie que l'utilisateur peut relier à sa guise pour obtenir la chaîne voulue. Les composants sont généralement caractérisés par un certain nombre de propriétés qui permettent d'adapter leur comportement à chaque cas particulier. On notera que, le modèle sous-jacent à une chaîne de traitement étant un graphe orienté acyclique, les chaînes ne sont pas limitées à de simples "pipelines". Par exemple, les différents points de sortie d'un composant peuvent être connectés à des sous-chaînes différentes, dont les résultats pourront à leur tour être fusionnés par un composant acceptant plusieurs points d'entrée. À l'exécution, la plate-forme se chargera automatiquement de l'ordonnancement des sous-tâches.

LinguaStream incorpore nativement plus d'une cinquantaine de composants différents (ensemble facilement extensible grâce une API Java, un système de macro-composants, et des templates). Certains sont spécifiquement dédiés au traitement automatique des langues, et d'autres permettent de résoudre différents problèmes liés à la gestion des documents électroniques (traitements XML en particulier). D'autres composants peuvent être utilisés pour effectuer des calculs sur les annotations produites par les analyseurs, ou générer des diagrammes. L'exécution d'une chaîne de traitement peut être lancée à tout moment depuis la même interface, en ligne de commande, ou par une application tierce via l'interface de programmation. Dans le premier cas, l'utilisateur bénéficie de diverses informations sur le déroulement du traitement, à l'issue duquel le résultat pourra être immédiatement visualisé avec l'outil choisi par l'utilisateur (navigateur Web par exemple).

L'utilisation de LinguaStream pour la réalisation d'un système d'analyse automatique de cadres de discours temporels constitue un bon exemple de ce principe de fonctionnement. La plate-forme a permis à la fois de réaliser des expériences sur corpus, de développer un analyseurs automatique fonctionnel, et de mettre en place un prototype de système de recherche d'informations fondé sur les résultats de cet analyseur. Concernant l'analyse des cadres elle-même, la chaîne de traitement ainsi mise en oeuvre inclut une analyse morpho-syntaxique, la délimitation des phrases et de certaines propositions, l'analyse syntaxico-sémantique des syntagmes temporels, la détection de connecteurs discursifs et des introducteurs de cadres, et l'analyse de la portée des introducteurs (borne droite des cadres). S'y ajoutent quelques modules de gestion documentaire permettant notamment de produire une indexation utilisable par un moteur de recherche et pour la navigation intra-documentaire.

Modèles d'analyse

Nous avons évoqué plus haut quelques-uns des composants susceptibles de prendre part à une chaîne de traitement. Parmi les composants spécifiquement dédiés au traitement des langues, on peut distinguer deux familles. La première regroupe les analyseurs "prêts à l'emploi", dédiés à une tâche précise. Il s'agira par exemple de l'étiquetage morpho-syntaxique, TreeTagger étant intégré par défaut. Ces composants sont paramétrables (pour un étiqueteur, on spécifiera par exemple la langue à traiter ou le jeu d'étiquettes à utiliser), mais il n'est pas possible de modifier fondamentalement leur fonctionnement.

D'autres au contraire ne sont associés à aucune tâche particulière, le traitement à réaliser étant intégralement spécifié par l'utilisateur. Nous allons envisager ici les différents mécanismes autorisant la réalisation d'analyseurs à partir de ces composants. Nous appellerons modèle d'analyse un formalisme de représentation de contraintes linguistiques, éventuellement associé à un modèle opératoire. Nous faisons l'hypothèse qu'il est préférable d'exploiter la complémentarité de différents modèles plutôt que d'en privilégier un seul. Dans cette optique, la plate-forme propose différents modèles qui pourront être combinés dans une même chaîne. Certains sont classiquement utilisés en TAL, d'autres sont plus spécifiquement liés aux principes de fonctionnement de LinguaStream. Un modèle spécifique, fondé sur un formalisme original plus particulièrement lié à l'analyse du discours, est également en cours de développement.

Chaque formalisme permet d'exprimer des contraintes tant sur les formes de surface que sur les annotations insérées par les analyseurs précédents. Toutes les annotations sont représentées sous forme de structures de traits, et les contraintes sont systématiquement spécifiées par unification sur ces structures. Si la syntaxe varie d'un formalisme à l'autre, ce mécanisme est uniforme pour tous les modèles d'analyse proposés. En revanche, chaque modèle d'analyse s'appuie sur un mode particulier de représentation des contraintes. Les principaux systèmes proposés sont :

i) Un système permettant de décrire des grammaires locales d'unification en se basant sur la syntaxe DCG (Definite Clause Grammars) de Prolog. Bien qu'elles restent accessibles aux utilisateurs expérimentés, les spécificités du langage Prolog ne sont pas nécessairement apparentes, et une grammaire peut être décrite dans le plus pur style déclaratif. Bien que celles-ci soient généralement utilisées pour décrire des analyseurs syntagmatico-sémantiques, ceci n'est en rien obligatoire puisque le grain d'analyse est paramétrable pour chaque grammaire (cf. infra). Il est donc possible d'utiliser ce modèle pour décrire des grammaires aussi bien textuelles que phrastiques ou syntagmatiques.

ii) Un système permettant de décrire des patrons par transducteurs, s'appliquant aussi bien aux formes de surface qu'à toutes les annotations préalablement calculées. La syntaxe utilisée est similaire aux expressions régulières ; ce type de notation, d'accès relativement simple, est communément utilisé tant en TAL qu'en linguistique de corpus (notamment dans les concordanciers). A la différence des expressions régulières traditionnelles, ce formalisme ne s'applique pas nécessairement aux caractères ou aux mots, mais peut porter sur toute unité textuelle préalablement analysée.

iii) Un système d'annotation à partir de lexiques sémantiques. La plate-forme dispose de différentes fonctions de gestion de lexiques, ceux-ci pouvant êtres manipulés depuis l'interface, importés depuis différents formats, et stockés localement ou dans une base de données relationnelle. Ces outils s'appuient sur un modèle de représentation, permettant notamment d'associer à chaque entrée une série d'annotations représentées, là encore, par des structures de traits. Un composant spécifique permet de procéder à l'annotation du texte à partir d'un lexique, annotation qui sera généralement exploitée par les paliers ultérieurs de la chaîne.

iv) Un système d'annotation par expressions régulières, permettant de spécifier des contraintes directement sur la forme de surface des unités marquées (cette fois au niveau des caractères), et d'associer des annotations en fonction des patrons reconnus. En apparence simpliste, ce système bénéficie comme tous les autres de la variabilité du grain d'analyse, et permet donc de spécifier des contraintes sur tout type d'unité linguistique.

v) Un formalisme permettant d'exprimer des contraintes au niveau discursif. Actuellement en cours de développement, DSDL (Discourse Structure Description Language) se veut à la fois descriptif (il permet l'explicitation formelle d'organisations discursives) et prescriptif (l'expression commande un analyseur) et permet l'exploration des organisations discursives par l'expression et la satisfaction de contraintes pouvant être non séquentielles (sans présupposé sur l'ordre des éléments) et non linéaires (la linéarité du texte peut être ignorée). Exprimées à l'aide d'un ensemble de fonctions discursives primitives (présence/absence, cohérence sémantique...), les contraintes peuvent porter en particulier sur les annotations produites en amont de la chaîne de traitement et sur des relations entre ces dernières.

Principes fondamentaux

i) La plate-forme encourage le recours à des représentations déclaratives pour spécifier les traitements et leur enchaînement. On trouvera dans une chaîne de traitement des outils exécutant des tâches génériques (telles que le découpage et l'étiquetage de mots), mais aussi et surtout des composants réalisant des analyses spécifiques, intégralement spécifiées par l'utilisateur. Les chaînes de traitement elles-mêmes sont représentées visuellement, l'appareil procédural qui en découle étant masqué.

ii) La plate-forme est conçue pour exploiter la complémentarité des modèles d'analyse, plutôt que privilégier un hypothétique modèle "omnipotent" qui serait capable d'exprimer efficacement tout type de contrainte. Nous faisons l'hypothèse qu'un analyseur complexe doit adopter successivement plusieurs regards sur le même matériau linguistique, auxquels répondront des formalismes distincts. On pourra par exemple combiner, au sein d'un même traitement : des expressions régulières au niveau morphologique, une grammaire locale au niveau syntagmatique, un transducteur au niveau phrastique et un modèle de contraintes permettant de décrire des structures discursives.

iii) Tous les modèles d'analyse proposés par la plate-forme s'appuient sur une représentation unifiée des marquages et des annotations. Ces dernières sont uniformément représentées sous forme de structure de traits, modèle communément utilisé en TAL et en linguistique, et permettant de représenter des annotations riches et structurées. Tout composant d'analyse pourra produire son propre marquage en s'appuyant sur les analyses précédentes : les formalismes proposés permettent de spécifier des contraintes sur les annotations existantes par unification. Les marquages résultants sont organisés en couches indépendantes et hiérarchisées, supportant enchâssements, superpositions et chevauchements.

iv) La plate-forme favorise l'abstraction progressive des formes de surface. En effet, chaque palier d'analyse pouvant accéder simultanément aux annotations produites par tous les paliers antérieurs, les analyseurs de plus haut niveau sont généralement conduits à s'abstraire progressivement du matériau textuel pour ne plus reposer que sur des représentations symboliques antérieurement calculées.

v) Elle autorise également la variabilité du grain d'analyse au cours du traitement. De nombreux modèles d'analyse imposent la définition d'un grain d'analyse minimal, dit "jeton" ou token. C'est par exemple le cas de toute grammaire ou transducteur : ces formalismes supposent l'existence d'une unité textuelle (comme le caractère ou le mot) à laquelle s'appliquent les patrons. Quand la définition de ce grain minimal est nécessaire au fonctionnement d'un composant, la plate-forme permet de spécifier le ou les types d'unité à considérer comme jetons. Toute unité préalablement délimitée peut jouer ce rôle : il pourra s'agir du découpage habituel en mots, mais aussi de toute autre unité pourvu qu'elle ait été préalablement marquée : syntagmes, phrases, cadres du discours, etc. Le grain minimal à prendre en compte peut donc être différent pour chaque palier de l'analyse. De ce fait, aucune unité linguistique ne bénéficie d'un statut particulier. Ce système augmente considérablement la portée des différents modèles d'analyses utilisables dans la plate-forme.

vi) Filtrage des analyses : LinguaStream prévoit que chaque module d'analyse spécifie les marquages antérieurs auxquels il souhaite faire référence (pour exprimer des contraintes ou simplement pour faire usage des informations préalablement calculées). Chaque analyseur peut donc ne tenir compte que des marquages qu'il estime pertinents, sans risquer d'interférence. D'autre part, les marquages devenus inutiles peuvent être définitivement supprimés en cours de traitement pour des raisons de performance ou de commodité. Combinée au libre choix du grain et du modèle d'analyse, cette fonction permet d'adopter un point de vue spécifique sur le document à chaque étape d'une chaîne de traitement.

vii) Le recours systématique à l'élaboration de chaînes de traitement, constituées de divers composants élémentaires et de sous-chaînes, conduit naturellement à mener une analyse descendante de la tâche à réaliser, qui se trouve scindée en un ensemble de sous-tâches qui peuvent être traitées indépendamment. Ce processus de séparation des problèmes conduit à une meilleure compréhension de l'ensemble du système. En outre, la qualité descriptive de la chaîne elle-même contribue à la pérennité du procédé développé.

viii) La modularité des chaînes de traitements favorise également la réutilisabilité des composants dans des contextes différents : un module d'analyse développé au sein d'une première chaîne de traitement pourra par la suite être réutilisé dans d'autres chaînes. De façon similaire, toute chaîne de traitement pourra être réutilisée en tant que constituant d'une chaîne de plus haut niveau, sous forme de "macro-composant". Dans de nombreux cas, la possibilité de réutiliser des modules existants réduit significativement le coût de développement induit par la conduite de nouvelles expériences.

ix) Au sein d'un chaîne de traitement donnée, on pourra substituer à un composant tout autre composant fonctionnellement équivalent. Cela permet par exemple d'utiliser, pour une sous-tâche donnée, un prototype rudimentaire pouvant être remplacé in fine par un équivalent pleinement opérationnel. On pourra également évaluer les variations du résultat global selon que l'on utilise tel ou tel composant pour réaliser une même sous-tâche (par exemple deux étiqueteurs morpho-syntaxiques différents).

x) LinguaStream se base de façon systématique sur les standards et outils XML disponibles. Tout document XML bien formé peut être analysé par une chaîne de traitement sans transformation préalable. Les annotations insérées par la plate-forme appartiennent à un espace de nom spécifique, et sont donc transparentes pour les autres outils. Réciproquement, le balisage initial du document est transparent pour les chaînes de traitement, qui pourront donc être appliquées sans distinction à des documents de formats variés. Si la structure logique du document analysé doit être prise en compte, des composants spécialisés se chargent d'en déduire les annotations nécessaires (par exemple annoter les paragraphes en fonction de leur balisage effectif dans le format utilisé). L'usage systématique des recommandations XML permet en outre de bénéficier de la panoplie grandissante d'outils associés, notamment pour la visualisation des documents analysés et leur annotation manuelle. Une collection de composants est fournie avec la plate-forme pour tirer parti des vocabulaires XML les plus courants, comme XHTML ou DocBook.