Archives de la catégorie : Logiciels

Tutoriel UIMA I : création d’un composant d’annotation (Analysis Engine) en utilisant le JCas

Ce billet décrit comment créer un composant d’annotation (Analysis Engine) UIMA simple qui segmente un fichier texte en mots.
  1. Préparation du projet dans Eclipse
    Lancer Eclipse puis : File → New → Other… → Java → Java Project → Next. Saisir un nom dans le champs Project name: puis cliquer sur Finish.
    Il faut ensuite attacher la librairie UIMA au projet : Project → Properties → Java Build Path → LibrariesAdd External JARs… ; sélectionner le fichier uima-core.jar dans le répertoire apache-uima/lib.
  2. Définir un type dans le schéma d’annotation
    Le schéma d’annotation commun (Common Analysis Structure ou CAS dans UIMA) encapsule toutes les annotations concernant le document analysé ainsi que le document lui-même. Nous aurons besoin du type Token dans cette structure, nous allons donc le déclarer dans un système de types : File → New → Others → UIMA → Type System Descriptor File ; préciser le nom dans le champs File name: puis Finish.
    Faire ensuite un clic droit sur le fichier .xml ainsi créé puis Open With → Component Descriptor Editor. Dans l’onglet Type System cliquer sur Add Type et saisir le nom dans le champs Type Name: (ex : Token) et préciser uima.tacs.Annotation dans le champs Supertype:.
    L’action d’enregistrer vos modifications doit générer automatiquement les fichiers associés (ex : Token_Type.java et Token.java).
  3. Développer le code de l’annotateur
    Il faut créer une classe héritant de la classe JTextAnnotator_ImplBase correspondant à l’implémentation par défaut d’un annotateur de données textuelles : File → New → Class ; saisir le nom de la classe dans le champs Name: TokenAnnotator ; préciser la classe org.apache.uima.analysis_component.JCasAnnotator_ImplBase dans le champs Superclass: ; puis cliquer sur Finish.
    Il ne reste plus qu’à écrire le code proprement dit :
    import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
    import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
    import org.apache.uima.jcas.JCas;
    import java.text.BreakIterator;
    public class TokenAnnotator extends JCasAnnotator_ImplBase {
      public void process(JCas aJCas) throws AnalysisEngineProcessException {
        BreakIterator iterToken = BreakIterator.getWordInstance();
        iterToken.setText(aJCas.getDocumentText());
        int deb = iterToken.first();
        int fin = iterToken.next();
        while (fin != BreakIterator.DONE) {
          Token token = new Token(aJCas);
          token.setBegin(deb);
          token.setEnd(fin);
          token.addToIndexes();
          deb = fin;
          fin = iterToken.next();
        }
      }
    }

    Le code ci-dessus passe par l’interface Java JCas pour injecter les annotations dans le CAS. Le recours à cette interface n’est pas indispensable.
  4. Descripteur du composant d’annotation (Analysis Engine Descriptor)
    L’architecture UIMA impose qu’un annotateur soit décrit par un fichier XML appelé Analysis Engine Descriptor : File → New → Others → UIMA → Analysis Engine Descriptor File ; préciser le nom dans le champs File name: puis Finish.
    Faire ensuite un clic droit sur le fichier .xml ainsi créé puis Open With → Component Descriptor Editor. Indiquer le fichier java implémentant l’annotateur dans le champs Name of the java class file de l’onglet Overview.
    Dans l’onglet Type System, il faut énumérer les types que l’annotateur utilise. Cliquer d’abord sur Set DataPath dans la colonne Imported Type Systems pour indiquer le chemin du fichier XML contenant schéma d’annotation commun (Type System Descriptor). Dans la même colonne, cliquer ensuite sur Add… pour sélectionner ce fichier.
    Enfin, dans l’onglet Capabilities, il faut préciser, parmi les types énumérés dans l’onglet Type System, lesquels sont utilisés et s’ils le sont en entrée ou en sortie. Cliquer sur Add Type, sélectionner la ligne correspondant à votre token et préciser que le type est utilisé en sortie uniquement (Out) puis valider (Ok).
  5. Exécuter le Document Analyzer pour tester le composant d’annotation
    Il faut commencer par mettre à jour la variable d’environnement CLASSPATH pour y ajouter le chemin vers votre répertoire bin. Dans un shell, saisir :
    > export CLASSPATH=$CLASSPATH:chemin/vers/votre/bin
    Vous pouvez alors exécuter le script documentAnalyzer.sh qui vous permettra de tester votre composant d’annotation.
  6. Exécuter sous Eclipse le Document Analyzer pour tester le composant d’annotation
    Commencer par importer le projet exemple d’UIMA : File → Import… → General → Existing Project into Workspace → Next ; puis dans Select root directory sélectionner le répertoire racine d’UIMA ; puis Finish.
    Si ce n’est pas déjà fait, il faut ajouter votre projet dans le ClassPath de la configuration du Document Analyzer : Run → Run Configurations… → UIMA Document Analyzer → Onglet ClassPath
    Il est maintenant possible d’exécuter directement le CPE GUI pour tester le composant : Run → Run Configurations… → UIMA Document Analyzer → Run
  7. Tester le composant d’annotation avec le Document Analyzer

    Il faut remplir les champs du Document Analyzer de la manière suivante :
    • Imput Directory: UIMA_HOME/examples/data
    • Output Directory: UIMA_HOME/examples/data/processed
    • Location of Analysis Engine XML Descriptor: chemin/du/descripteur/de/composant
    Puis cliquer sur Run.

Tutoriel et guide du développeur UIMA (puis cliquer sur Tutorials and Users’ Guides)
Sommaire UIMA sur ce blog
Publié dans UIMA, TALN, Eclipse | Tagué , , , , | Laisser un commentaire

Résoudre un problème d’affichage ou de clavier sous Ubuntu

Sous Ubuntu, depuis une console, la commande suivante
sudo dpkg-reconfigure xserver-xorg
permet de régénérer le fichier /etc/X11/xorg.conf. Cette commande peut permettre de régler des problèmes de serveur graphique, de résolution d’écran, de clavier ou de souris. Toute la configuration, bien assistée et bien explicitée, se passe en mode texte. Il faut donc utiliser les flèches, la touche TAB et la touche Entrée pour naviguer et la touche espace pour les cases à cocher.
Publié dans Galères, Système | Laisser un commentaire

Installation complète de l’environnement de développement UIMA sous Linux

Ce billet décrit comment installer complètement l’environnement de développement UIMA sous une station de travail Linux sans avoir besoin des droits d’administrateur. Par installation complète il faut comprendre l’installation de tout ce qui est nécessaire : le SDK Java, Eclipse, les plugins nécessaires et le SDK UIMA.

Installation du SDK Java

La première étape consiste, si ce n’est déjà fait, à installer la dernière version du kit de développement de logiciels (SDK) Java. Commencer par télécharger le fichier d’installation (jdk-6u4-linux-i586.bin dans mon cas) dans le répertoire de son choix. Saisir ensuite, dans un shell, en étant dans le répertoire où le fichier a été téléchargé et où l’installation doit se faire :
$ chmod +x jdk-6u4-linux-i586.bin
$ ./jdk-6u4-linux-i586.bin

(Il vous faut répondre yes aux termes du contrat pour réaliser l’installation)

Installation de l’environnement de développement intégré (IDE) Eclipse

Si ce n’est déjà fait, installer la dernière version d’Eclipse (version 3.3.1.1, build id M20071023-1652 au moment de l’écriture de ce billet). L’installation se résume à décompresser à l’endroit de son choix le fichier téléchargé.
Pour exécuter la version d’Eclipse qui vient d’être d’installée avec la version de Java installée précédemment, il faut saisir dans un shell une ligne de commande du style (penser à créer un raccourci) :
$ ~/eclipse/eclipse -vm ~/jdk1.6.0_04/bin/
Ensuite, dans Eclipse, il faut préciser la version de Java qui sera utilisée. Aller dans :
Window → Preferences… → Java → Installed JREs → Add…
Puis préciser :
JRE name : Java jdk1.6.0_04
JRE home directory : ~/jdk1.6.0_04
Valider en cliquant sur Ok, puis penser à cocher la nouvelle version du JRE ajoutée avant de valider de nouveau en cliquant sur Ok.
Vérifier également, la cas échéant, que la variable d’environnement ECLIPSE_HOME est correcte (i.e. désigne bien le répertoire ~/eclipse) dans :
Window → Preferences… → Java → Build Path → Classpath Variables

Installation du plugin Eclipse EMF

Il faut ensuite installer le plugin EMF utilisé par UIMA. En fait, avec la dernière version d’Eclipse, Eclipse Modeling Framework (EMF) Updates apparait automatiquement dans la liste des sites d’installation automatique de plugins (sinon, se référer à EMF Update Manager Site). Une fois Eclipse lancé, il suffit donc de faire :
Help → Software Updates → Find and Install… → Search for new features to install → Next
Puis sélectionner Eclipse Modeling Framework (EMF) Updates, Ignore features not applicable to this environment et Automatically select mirrors puis Finish.
Ensuite déployer Eclipse Modeling Framework (EMF) Updates pour sélectionner EMF SDK 2.3.1 puis :
Next → I accept the terms in the license agreements → Next → Finish → Install All → Yes

Installation du plugin Eclipse UIMA

On peut alors passer à l’installation du plugin Eclipse d’UIMA :
Help → Software Updates → Find and Install… → Search for new features to install → Next → New Remote Site…
Saisir :
Name : Apache UIMA
URL : http://www.apache.org/dist/uima/eclipse-update-site
Puis Ok.
Sélectionner Apache UIMA, Ignore features not applicable to this environment et Automatically select mirrors puis Finish.
Sélectionner Apache UIMA puis :
Next → I accept the terms in the license agreements → Next → Finish → Install All → Yes

Installation du SDK UIMA

Il faut enfin installer le kit de développement de logiciels (SDK) UIMA. Télécharger la dernière version binaire (Binary) du SDK d’UIMA pour java, puis décompresser à l’endroit de votre choix le fichier téléchargé.
Éditez votre fichier .bashrc pour définir les variables d’environnement UIMA_HOME et JAVA_HOME et modifier le PATH en ajoutant les lignes suivante à la fin du fichier (adapter /home/audibert à votre propre installation, mais ne pas utiliser ~ qui cause parfois des problèmes) :
export UIMA_HOME="/home/audibert/apache-uima"
export JAVA_HOME="/home/audibert/jdk1.6.0_04"
export PATH=${PATH}:${UIMA_HOME}/bin

Puis saisir la commande suivante dans un shell pour mettre à jours les chemins des exemples du SDK :
$ adjustExamplePaths.sh
Penser à lire le fichier README dans le répertoire apache-uima pour plus d’information sur l’installation du SDK UIMA ainsi que pour une procédure permettant de tester votre installation (également décrite ici).

Sous Eclipse, vérifier également que la variable d’environnement UIMA_HOME est correcte (i.e. désigne bien le répertoire /home/audibert/apache-uima) dans :
Window → Preferences… → Java → Build Path → Classpath Variables
Si ce n’est pas le cas, il faut la modifier (bouton Edit…) ou la définir (bouton New…).

Si tout s’est bien passé, tous les fichiers concernant l’installation complète de l’environnement de développement UIMA doivent être répartis dans les répertoires apache-uima pour le SDK UIMA, eclipse pour l’environnement de développement intégré Eclipse et les plugins installés et jdk1.6.0_04 pour le JDK Java.

UIMA Manuals and Guides
Sommaire UIMA sur ce blog

Publié dans UIMA, Eclipse | Laisser un commentaire

LaTeX sous Ubuntu

Pour installer et travailler avec LaTeX sous Ubuntu, il faut installer les paquets suivant :
  • texlive correspond à l’installation minimale de LaTeX ;
  • texlive-fonts-recommended pour les fonts ;
  • texlive-lang-greek pour le symbole € ;
  • latex-ucs pour la prise en charge de l’UTF8 dans les documents LaTeX ;
  • latex-beamer pour les présentations en LaTeX ;
  • kile est un bon éditeur LaTeX ;
  • jabref ou pybliographer comme gestionnaire bibliographique ;
  • hevea pour générer des pages html.
Remarque : si vous êtes un utilisateur régulier de LaTeX, le mieux est d’installer le paquet texlive-full qui installe tous les paquets texlive.
Publié dans LaTeX | Laisser un commentaire

Configurer un moniteur LCD 22 pouces large (16:10) sous Ubuntu gutsy

Pour configurer un moniteur large (16:10) sous Ubuntu gutsy, il faut procéder de la manière suivante.
  1. Aller dans : Système > Administration > Écran et Affichage
  2. Choisissez votre modèle, par exemple Générique > LCD Panel 1680 x 1050 pour moniteur 22 pouces au format 16:10
  3. Cocher la case Écran large
C’est la troisième étape qui est contre-intuitive. En effet, on ne s’attend pas, après avoir spécifié LCD Panel 1680 x 1050, que la résolution 1680 x 1050 ne soit pas disponible ! Elle le devient si on coche la case Écran large
Il en va de même pour tous les écrans larges.
Publié dans Galères, Généralitées, Système | Laisser un commentaire

VLC Media Player, un client UPnP sous Ubuntu ?

VLC permet d’accéder directement au contenu UPnP AV mis à disposition sur le réseau. Pour cela, Vue > Liste de lecture… puis Gérer > Découverte de services > Découverte Universal Plug’n’Play (Intel) et le ou les serveurs UPnP AV apparaissent dans la liste de lecture.
Hélas, chez moi, VLC n’arrive pas encore à développer complètement l’arbre UPNP : le client UPnP de VLC n’est donc pas encore utilisable.
Publié dans UPNP-DNLA, Applications | Laisser un commentaire

Rhythmbox, un client UPnP sous Ubuntu ?

Théoriquement, Rhythmbox supporte maintenant l’UPnP. C’est très bien pour lire depuis Ubuntu la musique stockée sur son NAS et mise à disposition sur le réseau par une application comme TwonkyMedia par exemple. Cependant, Ubuntu Gutsy Gibbon n’est visiblement pas encore prêt pour ça. Tout d’abord, impossible d’activer dans Rhythmbox le greffon UPnP (Edition > Greffons… > Prise en charge du partage UPnP). Visiblement un problème de dépendance non renseignée par Rhythmbox. Ce n’est pas grave, il suffit d’installer le paquet python-louie avec Synaptic, par exemple, et le tour est joué : on peut activer le greffon UPnP. Mais il ne fait rien … En effet, pour fonctionner correctement, il faut aussi installer le paquet python-coherence qui lui, n’est pas encore disponible pour Ubuntu Gutsy Gibbon, mais le sera pour la prochaine version : Ubuntu Hardy Heron. Rendez-vous donc en avril 2008 pour un support de l’UPnP probablement effectif avec Rhythmbox.
Publié dans UPNP-DNLA, Applications | 1 commentaire

Lenteur du FTP vers la FreeboxHD causée par un problème d’interférences Wifi !

Depuis quelques semaines, le FTP vers la FreeboxHD est devenu lent et inutilisable avec un taux de transfert instable et inférieur à 5 KB/s ! Après de multiples tests et tentatives infructueuses de joindre la hotline de Free, j’ai fini par mettre le doigt sur le problème : interférences avec le Wifi du DLink DIR-635 ! En coupant, ou en baissant l’intensité Wifi du routeur tout rentre dans l’ordre (transfert stable de l’ordre de 1 MB/s). Il est probable qu’en éloignant les deux bestioles on obtienne le même effet. Curieusement, je n’avais pas de problème avec la diffusion de chaines de TV par ADSL. Dans tous les cas, il est bon de savoir que l’émission Wifi d’un routeur peut interférer avec la connexion Mimo (donc Wifi également) entre la Freebox et la FreeboxHD
Publié dans Galères, FreeBox, DLink | Laisser un commentaire

Restaurer le menu de démarrage de Windows écrasé par grub

Souvent, lors de l’installation de Linux, le chargeur de démarrage grub prend la place de celui de Windows. Voilà comment le restaurer :
  1. Déplacer grub sous linux (sur la partition hd0,4 dans cet exemple) :
    > sudo grub
    grub > root (hd0,4)
    grub > setup (hd0,4)
  2. Restaurer le MRB de Windows dans une fenêtre DOS (sous Windows ou en utilisant une disquette système) :
    fdisk /mbr
    ou
    > BOOTPART WINNT BOOT:C:
  3. Ajouter Linux au menu de démarrage de Windows (cf. Dual boot Windows NT/2k/XP et Linux) :
    > BOOTPART xx c:bootsect.lin Linux
Publié dans Galères, Généralitées | Laisser un commentaire

Personnaliser la page « Programmes » de Windows Mobile

Il devient très vite nécessaire de mettre de l’ordre dans sa page Programmes sous Windows Mobile. Pour pouvoir organiser ses raccourcis par répertoire, ou en créer de nouveaux, il suffit de savoir que la page Programmes correspond au répertoire WindowsMenu DémarrerProgrammes. On peut alors y ajouter les raccourcis que l’on désire et organiser le tout en créant des sous-répertoires.
Publié dans Windows Mobile | Laisser un commentaire