9 Annoter un corpus

9.4 Annotation avec un modèle Unité-Relation-Schéma (URS) au fil du texte

Dans un modèle d’annotation Unité-Relation-Schéma (URS), les Unités (ou entités) portent sur une séquence contiguë de mots, possèdent un nombre quelconque de propriétés et peuvent être reliées entre elles par les deux autres types d’éléments: les Relations reliant deux éléments du modèle, et ayant un nombre quelconque de propriétés (relation de type 1-à-1), et les Schémas contenant des éléments du modèle, et ayant un nombre quelconque de propriétés (relation de type 1-à-n). Les annotations URS sont conçues pour encoder des éléments du discours comme les chaînes de co-référence au sein des textes (Schnedecker, Glikman, & Landragin, 2017).

Le modèle URS a été créé à l’origine dans le logiciel Glozz (Widlöcher & Mathet, 2009). Il est documenté dans le manuel « Glozz User’s Manual » <http://glozz.free.fr/glozzManual_1_0.pdf>. Il a également été implémenté dans le logiciel Analec49 (Landragin, Poibeau, & Victorri, 2012).

L'annotation d’éléments d’un modèle URS dans TXM se fait par le biais d'une extension Analec50 reprenant l’implémentation du logiciel Analec. Elle permet d'annoter les textes d'un corpus et de réaliser diverses exploitations de ces annotations.

La première version de l'extension permet d'annoter interactivement les unités au sein des éditions de texte de TXM, ainsi que d'enrichir l'annotation, de vérifier sa cohérence, de procéder à quelques extractions pour affichage ou décomptes à l'aide de macros TXM.

L'interface d'annotation des unités reproduit celle du logiciel Analec, dont nous vous invitons à consulter le manuel <http://www.lattice.cnrs.fr/IMG/pdf/ManuelAnalec_1501.pdf> pour apprendre à utiliser la barre d'outils d'annotation des unités (en particulier la section “Annoter des unités” page 15).

9.4.1 Installation de l’extension Analec

Appeler la commande « Fichier > Ajouter une extension » :

    1. choisir l'extension Analec

    2. accepter la licence

    3. lancer l'installation

    4. redémarrer TXM

9.4.1.1 Compatibilité et Prérequis

En mars 2017 sous Windows 7 : pour que l'extension Analec puisse mettre en évidence les unités annotées dans l'édition vous devez disposer d'une version d'Internet Explorer plus récente que celle livrée avec le système d'exploitation (dans ce cas il faut mettre à jour votre Internet Explorer vers une version plus récente) [voir le ticket #2017 <http://forge.cbp.ens-lyon.fr/redmine/issues/2017>].

9.4.2 Préparation d'un corpus pour l'annotation

9.4.2.1 Corpus TXM quelconque

Tout corpus importé dans TXM peut être annoté avec un modèle URS.

Il faut pour cela lui associer au préalable un modèle URS :

Dès qu'un modèle URS est associé à un corpus, son Édition dispose d'un bouton « Annoter » actif (bouton « crayon » situé en bas à gauche) qui permet de lancer une session d'annotation interactive.

9.4.2.2 Corpus TXM prêts à l'annotation

Certains corpus binaires contiennent déjà un modèle URS. Par exemple le projet ANR DEMOCRAT51 propose un corpus binaire exemple contenant déjà le modèle URS du projet :

  1. télécharger le corpus « PRINCESSE-modèle-annotation-democrat-sans-annotations.txm »52

  2. depuis TXM charger le corpus PRINCESSE-modèle-annotation-democrat-sans-annotations.txm avec la commande du menu « Fichier > Charger »
    → un nouveau corpus PRINCESSEBRUTSIMPLIFIETEXTE apparaît dans la vue Corpus ;

  3. voir la section « Créer des annotations… » suivante pour procéder à l'annotation.

9.4.2.3 Corpus déjà annotés dans Analec ou Glozz

Il y a deux façons d'importer dans TXM un corpus déjà annoté dans Analec :

Import XML-TEI Analec de corpus
    • xmlFile : le fichier XML-TEI Analec exporté depuis Analec (eg Le_Capitaine_Fracasse_or.xml)
      → un nouveau corpus LECAPITAINEFRACASSEOR est ajouté à la vue Corpus (il a été importé par une version interne du module TXT+CSV de TXM et contient les annotations Analec et leur modèle URS)

Le corpus résultat contient un seul texte dont le nom correspond à celui du fichier importé.

Exemple de fichier XML-TEI Analec du projet ANR DEMOCRAT : Le_Capitaine_Fracasse_or.xml.

Import Glozz de corpus : à partir de trois fichiers .aa, .aam et .ac
    • aafile : le fichier d'annotations (eg Cleves-brut-simplifie-annotations.aa)

    • aamfile : le fichier modèle d'annotations (modèle URS) (eg Cleves-brut-simplifie-structure-annotation.aam)

    • acfile : le fichier texte (eg Cleves-brut-simplifie-texte.ac)
      → un nouveau corpus CLEVESBRUTSIMPLIFIETEXTE est ajouté à la vue Corpus (il a été importé par une version interne du module TXT+CSV de TXM et contient les annotations Analec ou Glozz et leur modèle d'annotation URS)

Exemple de fichiers .aa, .aam et .ac exportés depuis Analec pour le projet ANR DEMOCRAT : Cleves-brut-simplifie.zip.

Le module d'import vous demandera de désigner un répertoire contenant votre corpus (.ac) et vos annotations (.aa). Le fichier modèle d'annotation (.aam) peut se trouver dans un autre répertoire.

Le corpus résultat contient un seul texte dont le nom correspond à celui du fichier d’extension « .ac ».

9.4.3 Annoter des unités interactivement depuis une édition de texte

9.4.3.1 Lancer une session d'annotation

9.4.3.2 Visualiser les unités présentes

9.4.3.3 Créer des unités

9.4.3.4 Éditer les propriétés d'une unité

9.4.3.5 Sélectionner des unités

9.4.3.6 Rechercher des unités par la valeur de leurs propriétés

On peut rechercher des unités par leurs propriétés en cliquant sur le bouton “Chercher” (icone de loupe). Cette commande ouvre un formulaire de recherche dans une nouvelle vue, qui s'ouvre par défaut en bas de l'interface de TXM.

Le formulaire de recherche comporte :

9.4.3.7 Rectifier les bornes d'une unité

Il y a 3 modes de rectification des bornes d'une unité :

9.4.3.8 Créer des unités à cheval sur deux pages d'édition

Selon le module d’import utilisé, et certains paramètres d’import comme le nombre de mots par page, certaines éditions de textes peuvent être paginées. Dans ce cas s’il est nécessaire de créer des unités à cheval sur plusieurs pages :

9.4.3.9 Supprimer une annotation

9.4.4 Annoter des éléments URS automatiquement par scripts

Les macros qui suivent permettent à l'utilisateur de prototyper des scripts d’annotation URS basés sur des annotations URS et toutes autres informations disponibles dans la plateforme TXM.

9.4.4.1 Utilisation de macros

Pour exécuter les macros il faut :

En général, il faut sélectionner le corpus sur lequel on veut travailler dans la vue Corpus avant de lancer la macro.

Pour lire ou modifier le code Groovy d'une macro :

9.4.4.2 Macros d'ajouts d'annotations

9.4.5 Enregistrer les annotations

Le travail d’annotation est sauvegardé avec le bouton d'enregistrement (bouton crayon+disquette situé en bas à gauche de l'édition).

Il est important de sauvegarder régulièrement son travail, notamment parce que la fonction annuler n’est pas disponible.

9.4.6 Exploiter des annotations URS avec des macros

Les macros qui suivent permettent à l'utilisateur de prototyper des calculs basés sur des annotations Analec et toutes autres informations disponibles dans la plateforme TXM.

9.4.6.1 Macros de vérification de cohérence

Ces macros sont accompagnées de macros préliminaires de contrôle de la cohérence des annotations (proto-validation des annotations d'un texte par rapport à la structure d'annotation utilisée). Elles ont été développées pour vérifier la cohérence des annotations entre plusieurs annotateurs (les mesures supposent une cohérence parfaite).

 

9.4.6.2 Macros de mesures

Un premier jeu de macros a été réalisé pour calculer différentes mesures à l'occasion de l'écriture d'un article pour Langue française n° 195 (3/2017) (CG, JG, VO).

 

9.4.6.3 Macros de visualisation d’annotations

Cette macro liste pour chaque chaîne d'un corpus la valeur de sa propriété « Nom du référent » (par défaut) suivie des formes (par défaut) de ses unités successives.

Par exemple pour le corpus DESPERIERS pour la propriété 'word' (forme graphique) des mots on obtient :

Caillette: à Caillette, le povre Caillette, disoit, il, qu’il, sa, le, le, l’ha, l’ha, l’ha, Caillette, son, tu, Caillette, je, de ce sage homme Caillette, Caillette, qui, moy, luy, Caillette, Caillette, le, luy, luy, son, il, luy, il, Je, va

auteur: LES pages, les pages, les pages, tous ses gens de bien de pages, leur, à tous l’un apres l’autre, vous, qu’ilz, tous, qu’ilz, les, n’en, tant d’honnestes jeunes gens, qui, tous, les autres, avec les pages, je

un Seigneur de cour: un des Seigneurs de court, qui, qui, du Seigneur, ses

lecteur: vous, vous, vous, vous

un page (2): moy, qu’un, lequel, il, je

auteur: mon, je, Moy, m’escouter, je, Mon

Triboulet: Triboulet, Qui, ses, sa, Il, il, il, Il, luy, le, le, luy, vous, vous, vous, Triboulet, qui, son, luy, son, Triboulet, il, il, vous, son, Triboulet, il, je, je

maitre de Triboulet: un maistre, povre maistre, tu, Ce maistre, je, son maistre, son maistre

le cheval: son cheval, le cheval, qu’il, le, luy, luy, cheval, ce meschant cheval, le, il

les hommes: d’hommes, lesquelz, ilz, savent, qu’ilz

Polite: un autre fol nommé Polite, qui, Polite, mit, il, il, qu’il, il, tenoit, il, Polite, tu, Po lite, il

Abbé de Bourgueil: à un abbé de Bourgueil, Monsieur l’abbé, luy, le, l’abbé, Moyne, moy, l’abbé, moy, moy, l’abbé, l’abbé, moy, le moyne, il, il

le chantre: un chantre, qui, lequel, qu’il, qu’il, l’appelloyent, luy, luy, son, il, je, je, Je, je, Je, Sa, luy, te, luy, t’en, il, luy, t’oubliera, tu, luy, qu’il, ce Bassecontre, servoit, il, sa, qu’il, le povre chantre, luy, le Bassecontre, qu’il, qu’il, son, son, sa, il, il, qu’il, il, qu’il, il, il, pria, luy, sa, qu’il, il, qu’il, luy, luy, ce Bassecontre, sa, sa, le chantre, lequel, me, il, il, qu’il, Le chantre, Mon chantre, qui, venoit, luy, il, il, tu, tes, ce fol, le Bassecontre, il, Je, me, je, t’ha, tu, il, il, je, qu’il, tu, tu, il, apporta, qu’il, qu’il, son, luy, ses

les chanoines: les chanoines, qui, qu’ilz, d’eux, tes chanoines, nous

partie des chanoines: Monsieur, vous, vous, vous autres, d’eux, ilz, messieurs, ilz, des messieurs, qu’ilz, leur, ilz

messieurs tel et tel: messieurs tel et tel, ceux, qu’il, leur, ilz, leur, d’eux, messieurs, eux

principaux chanoines: aux principaux d’entre eux, les, l’un apres l’autre, qu’ilz, leur, leur, leur, les, leur, Ilz, ilz, qu’ilz, leur, messieurs, qui, tous, leurs, leur, ilz, ilz, ilz, ilz, chacun, leur, qu’ilz, leur, ilz, nous, nous, les nostres, les vostres, Les nostres, ilz, chacun, leurs, ilz, avons, les, Messieurs, voz, ilz, vous, vous autres messieurs, vous, chacun, soy, vous, vous, vous, vous, vostre, vous, voz, ilz, ilz, nous, nous, vous, leur, leur, ilz, allerent, conclurent, qu’ilz

un chanoine: monsieur vostre maistre, il, il, il

un chanoine2: je, l’un, j’avois, je

un autre chanoine: l’autre, j’avois, je, moy

valets chanoines: aux valetz, qui, qu’ilz

on: on, qu’on, qu’on, qu’on

Si on coche l'option buildCQL de cette macro, on génère à la place une requête par chaîne qui cherche tous les mots de ses unités.

Par exemple pour la chaine Caillette on obtient :

Caillette: ([id="w_Desperiers_17"] [id="w_Desperiers_18"])|([id="w_Desperiers_27"] [id="w_Desperiers_28"] [id="w_Desperiers_29"])|([id="w_Desperiers_35"])|([id="w_Desperiers_39"])|([id="w_Desperiers_46"])|([id="w_Desperiers_53"])|([id="w_Desperiers_65"])|([id="w_Desperiers_75"])|([id="w_Desperiers_92"])|([id="w_Desperiers_102"])|([id="w_Desperiers_108"])|([id="w_Desperiers_122"])|([id="w_Desperiers_126"])|([id="w_Desperiers_139"])|([id="w_Desperiers_150"])|([id="w_Desperiers_152"])|([id="w_Desperiers_177"] [id="w_Desperiers_178"] [id="w_Desperiers_179"] [id="w_Desperiers_180"] [id="w_Desperiers_181"])|([id="w_Desperiers_250"])|([id="w_Desperiers_255"])|([id="w_Desperiers_264"])|([id="w_Desperiers_276"])|([id="w_Desperiers_288"])|([id="w_Desperiers_349"])|([id="w_Desperiers_356"])|([id="w_Desperiers_363"])|([id="w_Desperiers_368"])|([id="w_Desperiers_374"])|([id="w_Desperiers_381"])|([id="w_Desperiers_388"])|([id="w_Desperiers_390"])|([id="w_Desperiers_394"])|([id="w_Desperiers_402"])

On peut alors copier/coller la requête de Caillette dans le champ “Requête” d'une concordance et on obtient :

Concordance de la chaine Caillette
Illustration 9.6: Concordance de la chaine de co-référence "Caillette"

La concordance permet alors également de naviguer dans la chaîne par retour au texte :

Retour au texte de la chaine Caillette
Illustration 9.7: Retour au texte de l'unité "le povre Caillette" de la chaîne Caillette

Pour obtenir cet affichage :

On peut par ailleurs tester par exemple la Progression de plusieurs chaînes, l'index des mots des unités d'une chaîne, etc.

9.4.7 Exporter des annotations

9.4.7.1 Dans un corpus binaire TXM

9.4.7.2 Au format XML-TEI URS

9.4.7.3 Au format Glozz

9.4.8 Importer des annotations

Il est possible d'importer dans un corpus TXM pré-existant des annotations URS représentées dans le format XML-TEI URS. Pour cela il faut que les textes du corpus contiennent des mots correspondants aux annotations (les annotations sont définies par les empans de mots sur lesquels elles s'appliquent).

La commande “Import XML-TEI URS annotations…” du menu principal Analec importe les annotations URS à partir d'un ou de plusieurs fichiers d'annotations encodées au format XML-TEI URS.

Elle prend comme paramètres :

Remarques :


49  http://lattice.cnrs.fr/Telecharger-Analec

50  Le développement a été financé par le projet ANR DEMOCRAT <http://www.lattice.cnrs.fr/democrat>.

51  http://www.lattice.cnrs.fr/democrat

52  La « Princesse de Clèves » équipé du modèle d'annotation DEMOCRAT mais sans annotations.

53  ATTENTION : Le champ « NEW » est ajouté dans la structure, mais il n'est pas affiché dans la vue. On ne peut donc pas le corriger directement. Pour le faire, il faut d’abord enregistrer les annotations et relancer TXM. La vue sera alors rafraîchie.

54 <https://groupes.renater.fr/wiki/txm-info/public/annotation/specs_annotation_analec/export_import#commande_exporter_corpus_au_format_xml-tei_urs>