Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Framework Apache UIMA cours pour débutant

Framework Apache UIMA cours pour débutant
Participez au vote ☆☆☆☆☆★★★★★

Framework Apache UIMA cours PDF pour débutant

...

UIMA

UIMA (Unstructured Information Management Architecture) est un framework de développement et de déploiement d'applications de traitement des données non structurées. Lancé par IBM, et maintenant en incubation à la fondation Apache, UIMA est en cours de normalisation à l'OASIS (Organization for the Advancement of Structured Information Standards). L'objectif de ce framework est de proposer une architecture supportant les différentes étapes du traitement d'un document non structuré (texte, image, vidéo, etc.) en vue d'en extraire de façon automatique des informations structurées. UIMA ne décrit ni comment ces informations doivent être extraites du texte, ni la façon de s'en servir. Par contre, cette plate-forme de développement prend en charge de nombreuses problématiques de façon native comme la réutilisation de composants, la montée en charge et le déploiement distribué, la prise en compte des erreurs, la mise en œuvre de services web, etc.

Qu’est-ce que UIMA ?

UIMA (Unstructured Information Management Architecture) est un framework de développement et de déploiement d'applications de traitement des données non structurées. Lancé par IBM, et maintenant en incubation à la fondation Apache, UIMA est en cours de normalisation à l'OASIS (Organization for the Advancement of Structured Information Standards). L'objectif de ce framework est de proposer une architecture supportant les différentes étapes du traitement d'un document non structuré (texte, image, vidéo, etc.) en vue d'en extraire de façon automatique des informations structurées. UIMA ne décrit ni comment ces informations doivent être extraites du texte, ni la façon de s'en servir. Par contre, cette plate-forme de développement prend en charge de nombreuses problématiques de façon native comme la réutilisation de composants, la montée en charge et le déploiement distribué, la prise en compte des erreurs, la mise en œuvre de services web, etc.

Le site Apache UIMA propose un schéma illustrant bien les différentes facettes d’UIMA.

Les composants (Components) sont les briques de base permettant de bâtir une application UIMA complète. Les composants d’annotation (Annotators sur le schéma) sont les composants qui supportent la responsabilité la plus importante qui est d’effectuer des traitements (un traitement par composant en principe). Le système de types permet de définir la hiérarchie de types (type au sens informatique du terme) qui supportera les annotations (i.e. c’est le diagramme de classes des annotations).

Les Frameworks sont l’ensemble des bibliothèques et outils permettant de développer et d’exécuter des applications UIMA

Principes d’une chaîne de traitements UIMA

L’objectif d’une chaîne de traitements UIMA est d’extraire de façon automatique des informations structurées à partir d’un document non structuré (texte, image, vidéo, etc.). Une chaîne de traitements UIMA respecte généralement les étapes suivantes :

  1. Charger un document non structuré (comme le texte du Petit Prince de Saint-Exupéry dans l’illustration ci-dessous).
  2. Générer le schéma d’annotation commun (Common Analysis Structure ou CAS) qui encapsulera toutes les annotations concernant le document analysé, ainsi que le document lui-même.
  3. Enchaîner les composants d’annotation (un segmenteur, un analyseur d’entités nommées et un annalyseur morpho-syntaxique dans l’illustration ci-dessous).
  4. Générer une sortie (généralement un fichier xmi) à partir des annotations contenues dans le CAS (le fichier xmi généré est visualisé dans l’outil UIMA Document Viewer dans l’illustration ci-dessous).

UIMA : les annotations

Les annotations permettent d’apporter des informations sur des éléments. Dans le cas de corpus textuels, ces éléments sont généralement des segments de textes. Les annotations peuvent être intégrées au document ou, au contraire, être déportées dans un fichier ou une zone séparés. UIMA a fait le choix de représenter les annotations d’une manière déportée. Ce choix présente deux avantages principaux :

  1. Le document source n’est pas altéré par l’insertion d’annotations.
  2. Déporter les annotations peut autoriser la représentation d’annotations concurrentes ou enchâssées.

Bien entendu, le recours à des annotations déportées nécessite la mise en place d’un système d’adressage pour référencer des segments du texte source. Dans UIMA, une annotation hérite généralement du type uima.tcas.annotation qui définit deux attributs begin et end . C’est deux attributs permettent d’identifier le début et la fin du segment annoté en terme de nombre de caractères depuis le début du texte analysé.

…

Il existe plusieurs façons de réaliser une telle indexation. La figure ci-dessus en illustre deux. Le choix fait par UIMA correspond à l’indexation inférieure qui pointe entre les caractères (ce qui est cohérent avec la philosophie des itérateurs java).

Le mot JULES est indexé de la manière suivante : begin = 0 et end = 5

Le mot VERNE est indexé de la manière suivante : begin = 6 et end = 11

La capture d’écran ci-dessous montre un exemple d’annotations visualisées dans l’outil Document Viewer d’UIMA. Le texte annoté est « 0123456789 ».

UIMA : Le schéma d’annotation commun (Common

Analysis Structure ou CAS)

Le schéma d’annotation commun (Common Analysis Structure ou CAS) est une notion centrale dans UIMA. Le CAS encapsule toutes les annotations concernant le document analysé ainsi que le document lui-même. Un CAS comporte deux types d’éléments :

  1. Le documents, appelé Sofa pour Subject of Analysis dans UIMA.
  2. Des annotations générées par des composants d’annotation.

Le CAS est une structure orientée objets permettant aux différents composants d’une chaîne d’annotation UIMA de représenter et d’échanger leurs annotations respectives. UIMA propose quelques types de base et permet de les étendre grâce au concept de système de types (Type System).

L’interface Java permettant de manipuler le CAS depuis du code Java se nomme JCas (cf. Tutoriel IV), mais le CAS reste tout de même accessible en Java sans passer par cette interface (cf. Tutoriel V).

UIMA : Le système de types (Type System ou TS)

Pour composer un CAS, UIMA propose quelques types de base et permet de les étendre grâce au concept de système de types (Type System ou TS). Un système de types est une hiérarchie de types qui défini l’ensemble des types qu’il est possible d’utiliser dans le CAS. Chaque composant UIMA (i.e. chaque Analysis Engines) défini son propre système de types. Pour assurer la cohérence d’une chaîne d’annotation UIMA, il est préférable que chacun des systèmes de types des composants de la chaîne soit un sous-ensemble d’un système de types plus général décrivant tous les types d’annotations que la chaîne peut produire. Un système de types est décrit dans un fichier XML qui peut être édité sous Eclipse par le Component Descriptor Editor :

…

Composant d’annotation (Analysis Engine)

Le composant d’annotation (Analysis Engine ou AE) est le composant élémentaire d’une chaîne de traitements UIMA. Son rôle est d’effectuer un traitement (comme l’étiquetage morpho-syntaxique) en utilisant éventuellement des annotations contenues dans le CAS (comme une segmentation en mots) et en produisant de nouvelles annotations dans le CAS (comme les étiquettes morpho-syntaxique de chacun des mots).

Un composant d’annotation UIMA (Analysis Engine) est constitué de deux parties distinctes :

Un descripteur de composant (componant descriptor) qui constitue la partie déclarative. Il contient des méta-données qui décrivent le composant (types de données en entrée et en sortie, identité …) et est stocké dans un fichier XML.

Un annotateur (Annotator) qui est en fait le code (en Java par exemple) effectuant le traitement proprement dit du composant.

En résumé :

Composant d’annotation = Descripteur de composant + Annotateur

Analysis Engine = Componant Descriptor + Annotator

... ... ...

UIMA : La chaîne de traitement

Une chaîne de traitement UIMA comporte trois types d’éléments :

Le Collection Reader : généralement le premier élément de la chaîne, il permet de créer des CAS autour de chaque ressource.

  1. Les Analysis Engines : raison d’être de la chaîne, ils effectuent les traitements en utilisant les annotations contenues dans le CAS et en produisant de nouvelles annotations dans le CAS.
  2. Le Workflow Controller : c’est lui qui orchestre l’exécution des Analysis Engines.

On peut distinguer deux types de Workflow Controller : - le CPM (Collection Processing Manager) et les service Vinci (Vinci Services) ; - et le tout nouveau AS (Asynchronous Scaleout) bien plus flexible.

L’interface graphique Collection Processing Managment, instancie un Workflow Controller du type CPM appelé FixedFlow qui consiste simplement à enchaîner séquentiellement un Collection Reader, puis un certain nombre d’Analysis Engine et enfin un CAS Consumer. Un CAS Consumer n’étant rien d’autre qu’un Analysis Engine particulier qui n’est pas destiné à enrichir un CAS mais qui génère une sortie (généralement un fichier) à partir des annotations contenues dans le CAS.

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.

I N S T A L L A T I O N D U S D K J AVA

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)

I N S T A L L A T I O N D E L ’ E N V I R O N N E M E N T D E

D É V E L O P P E M E N T I N T É G R É ( I D E ) E C L I P S E

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

I N S T A L L A T I O N D U P L U G I N E C L I P S E E M F

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

I N S T A L L A T I O N D U P L U G I N E C L I P S E U I M A

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

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

I N S T A L L A T I O N D U S D K U I M A

Il faut enfin installer le kit de développement de logiciels (SDK) UIMA. Télécharger la dernière version du SDK d’UIMA, 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 :

export UIMA_HOME="~/apache-uima"

export JAVA_HOME="~/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).

Decouvrir ces documents

  • Cours détaillé avec exemples sur le Framework JAVA Apache Velocity pour débutant

    Cours détaillé avec exemples sur le Framework JAVA Apache Velocity pour débutant

  • Cours pour démarrer avec le Framework Apache Jena

    Cours pour démarrer avec le Framework Apache Jena

  • Démarrer avec Apache luence support de formation avancé

    Démarrer avec Apache luence support de formation avancé

  • Guide de démarrage avec le Framework Apache HBase

    Guide de démarrage avec le Framework Apache HBase

  • Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

    Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

  • Manuel d’utilisation d’Apache Mesos Framework [Eng]

    Manuel d’utilisation d’Apache Mesos Framework [Eng]

  • Introduction aux principales fonctionnalités du Framework Apache Solr

    Introduction aux principales fonctionnalités du Framework Apache Solr

  • Cours développement d'application web avec le Framework Apache Pivot [Eng]

    Cours développement d'application web avec le Framework Apache Pivot [Eng]

Articles connexes

  • Cours de soutien scolaire bénévole - Informations et conseils
  • 16 meilleurs IDE / EDI pour en Django Python (Comparatif)
  • Exercices sur les commandes Unix de base pour débutant
  • Placement d'Or : Règles et astuces pour réussir son investissement
  • Comment créer et convertir vos vidéos pour vos cours en ligne ?
  • Cours particuliers : une nouvelle école informelle ?
  • Tuto Python & Django : créer une page web
  • Les différents types d'hébergement Web - Guide du débutant
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02