Affichage des articles dont le libellé est textmarker. Afficher tous les articles
Affichage des articles dont le libellé est textmarker. Afficher tous les articles

mercredi 16 mars 2011

Utiliser TextMarker au sein d'un Analysis Engine (i.e. hors Eclipse)

Ce post vient compléter le post précédent où je traduisais les manipulations à réaliser pour installer et utiliser TextMarker au sein d'Eclipse. Vous n'avez pas besoin de lire ce précédent post pour comprendre et réaliser les opérations décrites dans le présent post.

TextMarker est avant tout une bibliothèque libre (licence LGPL) pour le développement d'applications d'extraction d'information à base de règles sur des éléments de surface et des annotations existantes. En tant que bibliothèque il peut s'utiliser relativement simplement au sein d'un Analysis Engine (AE) d'Apache UIMA.
C'est aussi un environnement de développement au sein d'Eclipse base sur le framework DLTK 
 (Dynamic Languages Toolkit) qui offre via ses plugins un éditeur de règles, des composants pour l'explication de l'inférence des règles et un processus de construction d'Analysis Engines et Systemes de Types.
Il est développé par Peter Kluegl and Martin Atzmueller and Frank Puppe à l'université de Wuerzburg (de).

La FAQ de TextMarker indique comment développer une application Java qui utilise TextMarker. De l'explication, on en déduit certains éléments pour utiliser au sein d'un AE.

DEUX PRE-REQUIS : des bibliothèques et le projet exemple
L'utilisation de TextMarker requiert deux bibliothèques. Il s'agit de 
  • AntLR 3.1.3
  • de.uniwue.tm.textmarker.engine
AntLR se trouve disponible soit directement sur le site officiel soit dans le plugin Eclipse de TextMarker via l'update site mais pas dans l'archive dédiée à l'installation manuelle (tout au moins il semble manquer des éléments dans le jar supposé plugins/de.uniwue.dltk.textmarker.antlr_3.1.3.201102241433.jar car j'obtiens un java.lang.ClassNotFoundException: org.antlr.runtime.CharStream) . 
Pour rappel, on ajoute un update site à Eclipse via le menu  Help > Install new softwares (sélectionner et installer les éléments présentés)
La bibliothèque de.uniwue.tm.textmarker.engine se trouve disponible indifféremment via Eclipse update site ou via l'archive pour l'installation manuelle (la première est en générale plus récente). Ces bibliothèques se trouveront dans le répertoire ECLIPSE_HOME/plugins.

Le projet exemple fournit des exemples de descripteurs d'AE et de TS. Le récupérer. Je vous invite à consulter les différents fichiers du répertoire script et bien entendu la documentation en ligne (menu de gauche chapitre Langage) pour comprendre. Globalement l'ensemble de scripts sert à annoter différents éléments d'un référence bibliographique...

VOTRE PREMIER AE AVEC TEXTMARKER
Afin de réaliser un premier AE, le plus simple est de
  • créer dans Eclipse un Java Project
  • y copier les répertoires descriptor, script, resources, input et output du projet Exemple
  • ajouter dans le build path les bibliothèques d'UIMA habituelle pour faire fonctionner un AE (dans UIMA_HOME/lib, sélectionner uima-core, uima-cpe, uima-document-annotation, uima-tools)
  • ajouter dans le build path les deux bibliothèques requises par TextMarker et qui ont été récupérés selon la manipulation décrite ci-dessus. Ci l'on s'appuie sur l
    ECLIPSE_HOME/plugins/de.uniwue.dltk.textmarker.antlr_3.1.3.201103101605/antlr-3.1.3.jar
    ECLIPSE_HOME/plugins/de.uniwue.tm.textmarker.engine_1.0.0.201103101605.jar
  • ajouter dans le build path les répertoires descriptor, script et resources
Avant d'exécuter, je jète un oeil aux descripteurs d'AE en ouvrant avant le Component Descriptor Editor et constate une erreur...
Les descripteurs se trouvent dans descriptor.de.uniwue.example. Il s'agit de
  • AuthorEngine.xml, MainEngine.xml, TestEngine.xml, TitleEngine.xml, YearEngine.xml
Seul TestEngine s'édite sans souci...
... Les autres se plaignent qu'il manque la déclaration du configurationParameter "descriptorPaths", je le rajoute donc pour chacun à la mano à l'aide du Text Editor
      <configurationParameter>
        <name>descriptorPaths</name>
        <type>String</type>
        <multiValued>true</multiValued>
        <mandatory>false</mandatory>
      </configurationParameter>
et le place sous l'élément

      <configurationParameters searchStrategy="language_fallback">
Je lance enfin l'exécution à l'aide du documentAnalyser en spécifiant l'input et  l'output. Tour à tour je teste les différents descripteurs. Ceux ci peuvent s'exécuter indépendamment les uns des autres.
  • AuthorEngine.xml et TitleEngine.xml fonctionne directement sans souci, des annotations peuvent être visualisées dans le XMI produit.
  • YearEngine.xml et MainEngine.xml requièrent de modifier leurs capabilities dans leur descripteur afin de spécifier les types des annotations que je désire visualiser... il y en a pas mal.
  • TestEngine.xml, ne fonctionne pas (null exception)
POUR ALLER PLUS LOIN


TODO


Comment créer son propre AE utilisant TextMarker ?
  • http://tmwiki.informatik.uni-wuerzburg.de/Wiki.jsp?page=AnalysisEngine
Comment écrire un script TextMarker ?
  • Menu de gauche Langage avec la première section http://tmwiki.informatik.uni-wuerzburg.de/Wiki.jsp?page=Introduction
  • http://tmwiki.informatik.uni-wuerzburg.de/Wiki.jsp?page=Dictionaries

mardi 16 février 2010

Installer et utiliser UIMA TextMarker

Mise à jour le 15 Mars 2011


Ce post fut initialement écrit pour la version TextMarker_1.0.0.201002031959.
Il a été révisé pour la version courante qui est TextMarker_1.0.0.201102241433
La prochaine version est attendue pour... ?




TextMarker est avant tout une bibliothèque libre (licence LGPL) pour le développement d'applications d'extraction d'information à base de règles 
sur des éléments de surface et des annotations existantes

. En tant que bibliothèque il peut s'utiliser relativement simplement au sein d'un Analysis Engine d'Apache UIMA.


C'est aussi un environnement de développement au sein d'Eclipse base sur le framework DLTK 
 (Dynamic Languages Toolkit) 

qui offre via ses plugins un éditeur de règles, des composants pour l'explication de l'inférence des règles et un processus de construction d'Analysis Engines et Systemes de Types.

Il est développé par Peter Kluegl and Martin Atzmueller and Frank Puppe à l'unversité de Wuerzburg (de).

La documentation s'est enrichi considérablement entre 2010/02 et 2011/02. Un certain nombre de dépendances, et de possibilités d'utilisation font que ce n'est pas toujours évident de comprendre comment le faire fonctionner.


Il est possible de l'utiliser hors Eclipse (cf. FAQ), voir pour cela le post Utiliser UIMA TextMarker au sein d'un Analysis Engine (i.e. hors Eclipse).
    INSTALLER AU SEIN D'ECLIPSE
    La page d'installation référence deux approches possibles soit automatiquement via des sites updates soit manuellement en copiant manuellement les bons plugins et features dans les sous répertoires d'Eclipse. 


    Installation automatique au sein d'Eclipse 3.5 via les updates sites
    Un update site se déclare via le menu  (Help > Install new softwares). Il peut être utile (si des problèmes sont rencontrés) de redémarrer Eclipse entre chaque installation à l'aide de la commande eclipse -clean.
    1. Ajouter http://www.apache.org/dist/uima/eclipse-update-site UIMA (version 2.3) Update site ;
    2. Ajouter http://download.eclipse.org/technology/dltk/updates-dev/1.0 DLTK Core Framework (version 1.X) update site pour plugins ; Attention TextMarker utilise actuellement DLTK 1.0 et Eclipse 3.6 update site fournit seulement DLTK 2.0
    3. Ajouter http://download.eclipse.org/releases/galileo  Eclipse Modeling Framework (EMF) ; (probablement déjà disponible dans vos Available Sofware Sites) ; 
    L'installation de TextMarker ci-dessous conduira Eclipse à récupérer ce qu'il faut sur les  updates site ajoutés ci-dessus.
    1. Ajouter http://ki.informatik.uni-wuerzburg.de/~pkluegl/updatesite TextMarker update site ; sélectionner "Work with", déselectionner "Group items by category" et sélectionner "Contact all update sites during install to find required software", sélectionner le TextMarker feature. Le CEV feature est déjà contenu dans le TextMarker feature.
    2. Optionnel : Si vous désirez des visualisations HTML alors installer aussi le CEV HTML feature présenté lors de l'update de TextMarker. Par contre ajouter d'abord les XPCom puis XULRunner features http://ftp.mozilla.org/pub/mozilla.org/xulrunner/eclipse/
      Personnellement lors de l'installation de 2011/02 XPCom a pu s'installer mais pas XULRunner, il manquait des dépendances dans les update sites.
    Installation manuelle au sein d'Eclipse 3.5
    L'installation peut aussi être manuelle en copiant le contenu des répertoires plugins et features de l'archive de TextMarker dans les répertoires de même nom d'Eclipse (contient CEV feature et HTML feature). Ce que j'ai finalement fait en 2011/02.

    UTILISER TEXTMARKER AU SEIN D'ECLIPSE
    A partir du Getting Started on déduit les étapes suivantes

    Initialiser avec
    1. Importer le projet exemple dans votre workspace
    2. Ouvrir la perspective TextMarker (Window > Open Perspective)
    3. Stopper la construction automatique, nettoyer et relancer la construction afin de configurer les bons chemins dans tous les composants générés (Project > Stop Build Automatically and do Clean)
     Exécuter avec
    1. Vous pouvez ouvrir les fichiers.tm présents dans scripts avec le TextMarker Source Editor (Ouvrir avec >  TextMarker Source Editor) ; mais ce ne sont que des fichiers textes 
    2. Supprimer les fichiers présents dans output
    3. Lancer TextMarker en cliquant bouton droit Run As > Text Marker et en selectionnant Main.tm ; rien d'apparent ne se produit, mais le répertoire output se remplit à nouveau
     Constater que cela marche
    1. Le répertoire output se remplit
    2. Faire un open with Web Browser sur les fichiers html du répertoire output pour visualiser le résultat du traitement
    3. Le mieux est de lancer un annotation viewer pour visualiser les annotations contenus dans le XMI ; un simple éditeur XML peut faire cela aussi sinon : Run as > Run configurations > Java Applications > org.apache.uima.tools.AnnotationViewerMain en spécifiant en input le répertoire output de TM et en spéciant comme TypeSystem le descriptors/de/uniwue/example/MainTypeSystem.xml. Attention il se peut que vous ayez besoin de lancer cela d'un projet java où les lib de UIMA sont déclarés et avec une copie du répertoire descripteurs de TM déclaré en répertoire source (éventuellement un jcasgen dans le MainEngine.xml)
    Si des problèmes se produisent, 
    Problème avec le data path lors de l'exécution, vous pouvez effectuer ce que la note suivante indique
    Clean and rebuild the example project in order to set the correct paths in all generated components (also the path to the main script location). If the builder preference "import by name" is activated, then a new TextMarker project should rather be created in order to automatically include the correct UIMA datapath. Simply copy all elements into the newly created project afterwards.    
    A noter que
      • Pour spécifier un data path à utiliser pour trouver une resource by name faire sur le projet bouton droit > Properties > UIMA CDE Property page > entrer autant de chemins absolus que souhaités séparés par le séparateur de classpath
      • Pour configurer la résolution des imports à la création des descripteurs ou pour utiliser des imports by name à la création des descripteurs faire Window > Preferences > TextMarker > Builder
    Problème de "Interpreter installation TextMarker Interpreter does not exist" lors de l'exécution 
    non résolu... je cherchais éventuellement à modifier le build path pour lui indiquer les deux bibliothèques importantes, mais cela ne semble pas fonctionner.


    LIENS