Vous êtes sur la page 1sur 13

550, rue Sherbrooke Ouest, bureau 100 Montral (Qubec) H3A 1B9 Tl. : (514) 840-1234;Tlc.

: (514) 840-1244 888, rue St-Jean, bureau 555 Qubec (Qubec) G1R 5H6 Tl. : (418) 648-8080; tlc. : (418) 648-8141 http://www.crim.ca

tude des frameworks UIMA, GATE et OpenNLP

Mustapha Es-salihe
Conseiller

Stphane Bond
Agent de recherche senior Dveloppement et technologies Internet

29 mars 2006

tude des frameworks UIMA, GATE et OpenNLP

TABLE DES MATIRES

TABLE DES MATIRES..................................................................................................... 2 LISTE DES TABLEAUX...................................................................................................... 3 LISTE DES FIGURES ......................................................................................................... 4 INTRODUCTION ................................................................................................................. 5 1. UIMA ........................................................................................................................... 6 1.1 lments de base de UIMA............................................................................... 6 1.1.1 Analysis Engines.................................................................................... 6 1.1.2 Common Analysis Structure................................................................... 6 1.1.3 Description des composants dans UIMA ............................................... 7 1.2 Dveloppement dapplications avec UIMA...................................................... 7 2. GATE .......................................................................................................................... 8 2.1 lments de base de GATE .............................................................................. 8 2.1.1 Language Ressource (LR) ..................................................................... 8 2.1.2 Processing Ressources (PR) ................................................................. 9 2.1.3 Application.............................................................................................. 9 2.1.4 Visual Ressource ................................................................................... 9 2.1.5 Plugins (CREOLE) ................................................................................. 9 2.2 Dveloppement dapplications avec GATE..................................................... 9 3. 4. OPENNLP ................................................................................................................. 10 VALUATION ........................................................................................................... 12

CRIM Tous droits rservs 2006 CRIM

29 mars 2006 Page 2

tude des frameworks UIMA, GATE et OpenNLP

LISTE DES TABLEAUX

Tableau 1 : comparaison des trois projets UIMA, GATE et OpenNLP .............................. 12

CRIM Tous droits rservs 2006 CRIM

29 mars 2006 Page 3

tude des frameworks UIMA, GATE et OpenNLP

LISTE DES FIGURES

Figure 1 : Fonctionnement des applications sous UIMA...................................................... 8 Figure 2 : fonctionnement des applications avec GATE..................................................... 10

CRIM Tous droits rservs 2006 CRIM

29 mars 2006 Page 4

tude des frameworks UIMA, GATE et OpenNLP

INTRODUCTION
Linformation non structure reprsente la source dinformation largement disponible dans toutes les organisations, cette source est en constante volution. Limmense quantit dinformations disponibles en plusieurs langues et en diffrents formats incluant le texte, laudio, limage et la vido disperses partout constitue un contenu dune importante valeur ajoute, mais la nature non structure de ce contenu le rend difficilement exploitable. La recherche et lexploration des donnes partir du contenu non structur prsente des dfis majeurs. Une application de gestion de linformation non structure (UIM, Unstructured Information Management) permet danalyser un grand volume dinformations non structures afin de dcouvrir, organiser et diffuser des connaissances. Les rsultats de cette analyse doivent tre organiss dans des sources de donnes structures pour permettre des outils de recherche et dexploration de donnes de les exploiter. Les applications UIM peuvent utiliser une varit de technologies dont principalement : Traitement de la langue naturelle Recherche dinformations Apprentissage machine Les ontologies Raisonnement automatique Reconnaissance de la parole

Ces technologies ont t dveloppes sparment dans diffrents laboratoires et institutes de recherche en utilisant des techniques, des langages et des plateformes diffrents. tablir un pont entre le monde non structur et le monde structur laide de ces technologies et dans un mme environnement ncessite leur intgration, une opration trs coteuse. Nous avons assist dernirement la naissance de quelques frameworks qui ont comme objectif la composition et lagrgation de plusieurs technologies danalyse dinformations non structures. Parmi ces frameworks, nous trouvons UIMA (Unstructured Information Management Architecture) dIBM qui vient de le rendre open source, GATE (General Architecture of Text Engineering) et OpenNLP (Open Naturel Language Processing). Lobjet de ce document est de dcrire brivement ces trois frameworks, de les comparer et surtout de prsenter les intgrations possibles entre eux afin de maximiser la rutilisation des techniques et des solutions dj en place pour lanalyse des informations non structures.

CRIM Tous droits rservs 2006 CRIM

29 mars 2006 Page 5

tude des frameworks UIMA, GATE et OpenNLP

1.

UIMA
UIMA (http://www.research.ibm.com/UIMA/, http://uima-framework.sourceforge.net/ ) est une architecture logicielle qui spcifie les interfaces de composants, les structures de donnes, les patterns de conception et la dmarche de dveloppement pour crer, dcrire, dtecter, agrger et dployer des capacits danalyse multimodale. UIMA est aussi un framework qui fournit lenvironnement dexcution dans lequel les dveloppeurs peuvent intgrer leurs implmentations de composants UIMA pour construire et dployer des applications. UIMA fournit un kit de dveloppement qui inclut une implmentation Java de larchitecture et du framework UIMA. Ce kit inclut aussi un ensemble de plug-ins Eclipse pour faciliter le dveloppement avec UIMA.

1.1

lments de base de UIMA


Les lments suivants composent les lments de base du framework et de larchitecture UIMA.

1.1.1

Analysis Engines
Les Analyis Engines (AE) sont des composants de base utiliss pour analyser des documents afin de dtecter des attributs descriptifs sous forme de mta donnes, appels Analysis Results(AR). Un document dans UIMA est une unit de contenu qui peut contenir soit du texte, de laudio ou de la vido. Les AR peuvent inclure des noncs dcrivant des rgions dune faon plus granulaire que le document source. Un span dsigne une squence de caractres dans un document. Un AE dtecte des entits appeles Types, comme des personnes, des sujets, des villes, etc. Un exemple dnonc quun AE peut dtecter dans un document peut tre comme suit : Le span de la position 101 112 dans le document D102 reprsente une Personne Les AE sont des objets agrgs et grs par le framework UIMA. Les dveloppeurs dveloppent des algorithmes danalyses dans des composants appels Annotators qui sont encapsuls dans les AE pour ajouter les interfaces et linfrastructure ncessaires pour leur composition et leur dploiement dans le framework UIMA.

1.1.2

Common Analysis Structure


Commnon Analysis Structure (CAS) permet de reprsenter et partager les rsultats danalyse entre les Annotators, il sagit dune structure de donnes pour reprsenter des objets, des proprits et des valeurs. UIMA fournit des types de base pour les utiliser dans une CAS et qui peuvent tre tendus par les dveloppeurs pour aboutir un schma plus riche de types, appel Type System (TS). Un TS est spcifique un domaine ou une application, et les types dans un TS peuvent tre organiss dans une taxonomie. UIMA supporte lanalyse simultane de plusieurs vues du mme document dans le but deffectuer une analyse multimodale, comme par exemple une vue pour analyser laudio et lautre vue pour

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 6

tude des frameworks UIMA, GATE et OpenNLP

analyser le sous titrage du mme document (bande audio). Dans UIMA, une vue sappelle Subject of analysis (Sofa). Une CAS contient dans ce cas un ou plusieurs Sofa avec les objets reprsentant les rsultats danalyse pour chaque Sofa.

1.1.3

Description des composants dans UIMA


UIMA contient un ensemble de composants de base dont les AE et les Annotators font partie. Les dveloppeurs crent des composants en rutilisant les composants de base et/ou dautres sous composants dvelopps par des tiers. Deux parties sont essentielles pour mettre en place tout composant dans UIMA : La partie dclarative : qui dcrit lidentit, la structure et le comportement du composant laide de XML. La partie implmentation du composant laide dun langage de programmation comme Java

Cest une grande force dUIMA car il sagit dune approche qui favorise la rutilisation et lagrgation de composants. En se basant sur la description XML des composants, on peut effectuer une recherche de composants et une agrgation selon les critres dfinis. Un AE primitif contient un simple Annotator qui effectue une tche granulaire comme la dtection de la langue, la tokenisation, la reconnaissance de phonmes, etc. On peut agrger plusieurs AE primitifs pour crer un AE complexe qui permet deffectuer une analyse plus complte comme la dtection des entits nommes. Un AE agrg inclut dans sa description le flux des composants quil utilise, le framework UIMA soccupe de leur fournir lenvironnement dexcution selon lordre dfini.

1.2

Dveloppement dapplications avec UIMA


La figure 1 montre une vue densemble du fonctionnement des applications qui utilisent UIMA.

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 7

tude des frameworks UIMA, GATE et OpenNLP

Figure 1 : Fonctionnement des applications sous UIMA En plus des composants de base, dautres composants sont dfinis dans UIMA pour supporter tout le cycle de dveloppement des applications. Les principaux sont : Collection Reader : se connecte une source dinformations et itre sur la collection des documents qui la compose pour initialiser les objets CAS avant lanalyse. CAS Initialiser : utilis par UIMA pour accder aux documents dpendamment de leur format physique, la tche dun CAS Initialiser est spcifique au format du document source et la logique du mappage de ce format vers les objets CAS. CAS Consumer : intervient la fin du processus pour traiter les rsultats danalyse effectus par les diffrents AE et les rendre exploitables par dautres applications, comme lindexation des rsultats pour un engin de recherche, le stockage dans une base de donnes, etc. Collection Processing Engine (CPE) : cest un composant agrgat qui spcifie tous les composants qui participe dans le cycle de traitement dinformations dans UIMA partant dun Collection Reader, passant par un ensemble dAE jusquaux CA Consumers. Chaque CPE est dcrit dans un fichier XML. Collection Processing Manager (CPM) : cest un composant qui se base sur les descripteurs XML des CPE pour les dployer et les excuter dans un environnement UIMA. Le CPM soccupe de grer les objets CAS, la distribution des composants, la reprise en cas dincident et la gestion des performances.

2.

GATE
GATE (http://gate.ac.uk/ ) est une infrastructure permettant le dveloppement et le dploiement de composants pour le traitement de la langue naturelle. Le projet est constitu dune architecture, dun framework et dun environnement de dveloppement (IDE). Larchitecture dcrit les composants qui entrent dans le systme de traitement de la langue naturelle. Le framework est utilis comme base pour le dveloppement des composants. Il est constitu de librairies et de mthodes dinteractions. Lenvironnement de dveloppement est une application autonome qui permet dexcuter et de tester les composants et de modifier rapidement les paramtres de lapplication.

2.1
2.1.1

lments de base de GATE


Language Ressource (LR)
Comprend toutes les sources de donnes statiques comme les lexiques, les taxonomies, les ontologies et autres ressources pouvant tres exploits par les composants. Les documents traits et les collections, nommes corpus, peuvent aussi tres dfinis comme Language Ressource. GATE et ses composants offrent le support pour plusieurs formats dont XML, RTF, HTML et SGML.

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 8

tude des frameworks UIMA, GATE et OpenNLP

2.1.2

Processing Ressources (PR)


Reprsentent les algorithmes et composants effectuant un traitement. Il peut sagire de parseurs, de convertisseurs, de moteurs danalyses ou de tout autre lment ayant pour but dajouter ou de transformer des donnes. Lors de leur excution, les PRs communiquent entre eux laide dobjets. Ils peuvent ajouter de linformation aux documents traits sous forme dannotations.

2.1.3

Application
Une application GATE aussi appele contrleur est une agrgation de plusieurs Processing Ressources sous forme de pipeline. Les pipelines peuvent tres squentiels ou conditionnels permettant ainsi de contrler le flux dexcution en fonction des donnes traites. Lapplication prend en entre un corpus de documents et produit des rsultats sous forme visuelle ou dans un format de sortie spcifi.

2.1.4

Visual Ressource
Les Visual Ressources permettent la prsentation des rsultats lintrieur de lenvironnement de dveloppement GATE. En plus de la prsentation des donnes et annotations recueillies, des diteurs permettent la saisie de nouvelles informations par lutilisateur. Ces informations pourront, par la suite, tres reprises par les Processing Ressources. GATE permet lajout de Visual Ressources personnaliss permettant une adaptation en fonction des analyses effectues.

2.1.5

Plugins (CREOLE)
Les plugins peuvent tres composs de plusieurs Language Ressources et Processing Ressources spcialiss dans lexcution dune tche prcise. Le module CREOLE, pour Collection of REusable Objects for Language Engineering, est livr avec le systme de base et offre un large inventaire de moteurs danalyses.

2.1.5.1

ANNIE Ce plugin offre toute la gamme de Processing Ressources ncessaires au dpistage dinformation sur du texte(Information Extraction). Il offre entre autre les outils pour le traitement de phrases, pour la dtection des entits et pour la dtection de rfrences entre les sections dun texte.

2.2

Dveloppement dapplications avec GATE


Une application GATE se traduit par un pipeline par lequel est excute une srie doprations danalyses via les Processing Ressources.

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 9

tude des frameworks UIMA, GATE et OpenNLP

Rfrence : http://gate.ac.uk/sale/tao/ Figure 2 : fonctionnement des applications avec GATE

3.

OPENNLP
OpenNLP (http://opennlp.sourceforge.net/ ) est une structure de projets open source lis au traitement de la langue naturelle. Lobjectif essentiel est de promouvoir et de faciliter la collaboration entre chercheurs et dveloppeurs autour de tels projets. OpenNLP agit comme un parapluie pour lensemble de projets hbergs pour leur donner plus de notorit et augmenter linteroprabilit. Il sagit aussi dune initiative inclusive qui vise intgrer tous les efforts de dveloppement doutils open source de traitement de langue naturelle. Tous les spcialistes et dveloppeurs du domaine sont invits verser leurs contributions afin denrichir le projet. OpenNLP accueille galement une varit d'outils Java de traitement de langue naturelle qui effectuent la dtection de phrases, la tokenization, le tagging, la composition de blocs, la dtection des entits nommes et le corfrencement en se basant sur le produit open source OpenNLP Maxent spcialis en apprentissage machine. La liste des projets OpenNLP est la suivante : Maxent : une librairie Java pour travailler avec les modles dentropie maximale.

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 10

tude des frameworks UIMA, GATE et OpenNLP

OpenNLP CCG Library : une collection de composants de traitement de langue naturelle et doutils danalyse laide de la grammaire catgorielle combinatoire. OpenNLP Tools : une collection doutils de traitement de langue naturelle qui utilise Maxent pour enlever les ambigits. WordFreak : un outil Java dannotation linguistique. AGTK : une suite de composants logiciels pour dvelopper des outils dannotation linguistique et de traitement de sries chronologies. Arithmetic Coding : une librairie Java pour le codage arithmtique. ComLinToo : une suite doutils Perl pour la linguistique computationnelle. Attribute-Logic Engine (ALE) : un systme pour la programmation logique et lanalyse grammaticale. EDG : un systme LISP pour dvelopper et afficher des HPSG (Head-Driven Phrase Structure Grammar) Ellogon : un composant sous License LGPL de traitement de langue naturelle crit en C, C++, Java, Tcl, Perl et Python. Emdros : un engin de base de donnes pour le texte analys ou annot. FreeLing : une suite open source danalyseurs de langage. Leo : un projet pour fournir une architecture de dfinition des spcifications XML de grammaires pour diffrents analyseurs de langue naturelle et doutils de conversion automatique de grammaires entre ces systmes. LKB : un environnement de dveloppement de grammaire et de lexique pour utilisation avec des formalismes linguistiques base de contraintes. Mallet : un kit Java pour lapprentissage machine de langages. MinorThird : une collection de classes Java pour le tri du texte, lannotation du texte, et lapprentissage afin dextraire des entits et catgoriser le texte. Ngram Statistics Package : permet le comptage et la mesure des Ngrams dans le texte. NLTK : une librairie Python pour faciliter le traitement de langue naturelle. nlpFarm : une collection de librairies, doutils et de dmos en traitement de langue naturelle. SenseRelate : implmente un algorithme pour enlever les ambigits des sens de mots en utilisant WordNet::Similarity (voir en bas). Tiger API : une librairie qui permet aux programmeurs Java daccder la structure de nimporte quel corpus sous forme de fichier XML (tiger-xml) Weka : une collection dalgorithmes dapprentissage machine pour effectuer les tches de data mining. Weta : Lenvironnement Waikato danalyse de texte. WordNet::Similarity : fournit les mesures dapproximations smantiques en utilisant WordNet.

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 11

tude des frameworks UIMA, GATE et OpenNLP

4.

VALUATION
Les trois projets sont forts intressants pour tout ce qui est traitement de diffrentes sources dinformations. Il faut noter cependant que GATE et OpenNLP sont spcialiss en traitement de langue naturelle en se basant sur des documents texte, alors que UIMA est plus gnral et capable de travailler sur toute source de document (audio, texte, vido, etc.). Le tableau suivant rsume les principales caractristiques des trois projets ainsi que leur force et leur faiblesse : UIMA Documentation Architecture Langages de programmation Mesures de performance Algorithmes et techniques implmentes Limitations Types de documents traits Bonne Bien dfinie Java, C++ Pas dindication Moyenne GATE Bonne Bien dfinie Java Pas dindication Trs riche OpenNLP Moyenne Absence globale darchitecture

Java, Python, autres Pas dindication Riche mais non intgr

Aucune Tout

Aucune Texte

Aucune Texte

Tableau 1 : comparaison des trois projets UIMA, GATE et OpenNLP Mis part OpenNLP qui peut tre considr comme une source pour retrouver des implmentations de techniques de traitement de langue naturelle et les intgrer dans nos applications, UIMA et GATE peuvent tre vus comme des projets complmentaires. GATE a t dvelopp dans un milieu acadmique et de recherche dans lequel beaucoup de techniques et dalgorithmes robustes ont t implments, alors quUIMA est issu plutt du milieu industriel pour des dploiements distribus et large chelle. Le choix entre UIMA et GATE dpend de la nature des documents traiter, et de la facilit de travailler avec lenvironnement de dveloppement Eclipse dans le cas dUIMA ou avec des interfaces autonomes de tout environnement de dveloppement mais plus conviviales dans le cas de GATE. Des travaux ont t initis pour dvelopper des mcanismes dintgration entre les trois projets : Encapsulation des outils OpenNLP dans UIMA laide des Annotators : les exemples sont fournis avec le kit de dveloppement dUIMA fourni par IBM (http://uima.lti.cs.cmu.edu/opennlp.html ).

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 12

tude des frameworks UIMA, GATE et OpenNLP

Couche dinteroprabilit UIMA / GATE pour permettre des plugins GATE de sexcuter lintrieur dUIMA et des composants UIMA de sexcuter lintrieur de GATE. Cette couche a t dveloppe par lquipe GATE luniversit Sheffield avec le support dIBM. Elle couche a t intgre compltement dans GATE. Cette intgration va permettre aux applications qui adoptent UIMA daller chercher les implmentations des diffrentes techniques et algorithmes et des outils de visualisation dans GATE, et aux applications qui adoptent GATE de profiter de la facilit de dploiement et du bon support offerts par UIMA. Intgration dOpenNLP et de GATE par luniversit dEdinburgh.

La conclusion est quil est recommand de suivre le dveloppement et lvolution dUIMA et de GATE, et denvisager les mcanismes dintgration dj en place entre ces deux projets pour tirer le maximum davantages de chacun deux.

CRIM Tous droits rservs CRIM, 2006

29 mars 2006 Page 13