(restauration de la version du 8/08/2014)

Tutoriel de correction ou d'ajout de propriétés de mots

Ce tutoriel vous explique comment utiliser les macros BuildWordPropTable et InjectWordPropTable pour corriger n'importe quelles propriétés de mots (comme 'frpos' et 'frlemma'), ou en ajouter de nouvelles de votre propre cru (comme des catégories lexicales particulières ou des catégories d'analyse associées au discours par l'intermédaire de mots), dans un corpus déjà importé dans TXM.

La stratégie est la suivante :

  • d'abord BuildWordPropTable vous aide à extraire depuis le corpus TXM les informations qui seront utiles au travail de correction ou d'ajout (essentiellement sous forme d'une concordance enregistrée dans un tableau)
  • les corrections ou ajouts se font alors dans un tableur(*) (comme Calc ou Excel) en profitant de leurs possibilités d'édition de cellules, de tris de lignes et d'ajout de colonnes)
  • puis la macro InjectWordPropTable permet de mettre à jour les sources XML-TXM de votre corpus (les sources de votre corpus au format XML-TEI gérées par TXM) à partir du tableau résultat du travail de correction ou d'ajouts
  • enfin, votre corpus est ré-importé à partir de ses sources XML-TXM

Le tutoriel est composé de trois sections :

  • A) Préparation de l’environnement : ce qu'il faut faire pour obtenir l'environnement de travail adéquat
  • B) Procédure de la boucle de correction : la procédure point par point d'extraction-correction-ajout-réinjection-réimport
  • C) Déroulé pas-à-pas de la procédure sur un corpus exemple : l'illustration concrète de la procédure en corrigeant quelques propriétés 'frpos' et 'frlemma' de trois textes du corpus VOEUX

Dans un premier temps, nous vous recommandons de lire, voire de réaliser vous-même car les sources de l'exemple sont fournis, le contenu de la section C) pour découvrir et comprendre rapidement la procédure en vous exerçant sur un cas concret.


Notes :
(*) en attendant de pouvoir les faire directement dans des concordances de TXM

A. Préparation de l’environnement

1. Les macros sont disponibles dans TXM depuis la version 0.7.5. Nous vous recommandons de toujours récupérer la dernière version des macros sur le site de SourceForge : http://sourceforge.net/projects/txm/files/software/TXM%20macros
(les versions en ligne sont toujours plus à jour que les versions livrées avec le logiciel)

  • Décompresser dans <TXMHOME>/scripts/macro
  • Vous avez alors dans le dossier <TXMHOME>/scripts/macro/org/txm/annotation 3 fichiers de macros (d'extension ”.groovy”). Vous n'utiliserez que deux de ces macros, le troisième script étant utilisé par les deux autres.

2. Vérifiez que le corpus que vous souhaitez corriger contient les textes sources dans le dossier <TXMHOME>/corpora/<MONCORPUS>/txm/<MONCORPUS>

B. Procédure de la boucle de correction

  1. Exporter un état des propriétés de mots du corpus dans un tableau
    • Ouvrir la vue “Macro” (Menu “Affichage” / “Vues” / Macro”)
      • pour votre confort, vous pouvez déplacer l'onglet “Macro” pour l'afficher sous la liste des corpus, par exemple
    • Dans la vue “Macro”, ouvrir les dossiers “org”, puis “txm”, puis “annotation” pour que les macros s'affichent.
    • Dans la vue Corpus, sélectionner le corpus ou le sous-corpus que l'on souhaite traiter
    • Lancer la macro BuildWordPropTable en double cliquant dessus
    • Saisie des paramètres de la macro :
      • properties : saisir la liste des propriétés de mot à exporter (celles que l'on veut corriger), séparer les noms de propriétés par une virgule
        • il est inutile d'exporter la propriété “word” (forme du mot), car vous ne pourrez pas “réinjecter” les corrections des formes de mots
      • query : une requête CQL pour produire la concordance
        • exemple 1 : [] pour produire la concordance de tous les mots du corpus ;
        • exemple 2 : [frpos=“N.*”] pour produire la concordance de ce qui a été étiqueté comme nom.
        • remarque : la requête peut s'étendre sur plusieurs mots. Seul le premier mot de la séquence sera considéré dans les mises à jour.
      • contextsize : le nombre de mots avant et après le pivot
        • exemple 1: 10 affiche 10 mots avant et après le pivot
      • references : les références a afficher pour chaque ligne exportée. Il s'agit d'une liste des propriétés de structure séparées par une virgule
        • exemple 1 : text_id n'affiche que l'identifiant du texte du pivot
        • exemple 2 : text_id, p_id affiche l'identifiant du texte plus l'identifiant du paragraphe du pivot
      • tsvFile : le chemin vers le fichier TSV à construire (tableau contenant la concordance avec le caractère Tabulation comme séparateur de colonnes)
    • Résultat → La table a été créée dans le fichier.
  2. Éditer le tableau dans Calc de LibreOffice pour faire les corrections
    • Importer le fichier TSV dans Calc en sélectionnant le caractère Tabulation comme séparateur de colonnes, “UTF-8” (Unicode) pour l'encodage des caractères et pas de séparateur de texte.
    • Le travail de correction consiste à mettre à jour les cellules des colonnes <properties>
      • Attention : les modifications dans les colonnes “n”,”ref”,”ContexteGauche”,”Pivot” et “ContexteDroit” ne seront pas prises en compte
      • le contenu des colonnes “text_id” et “id” ne doit pas être modifié
    • On peut ajouter de nouvelles colonnes de propriétés à ajouter ou à corriger. Les noms des propriétés à ajouter doivent respecter les contraintes suivantes :
      • pas d'espace,
      • pas de caractères accentués,
      • pas de majuscule,
      • le premier caractère ne doit pas être un chiffre
      • éviter les ponctuations et les “caractères spéciaux” (pas testé en général), en particulier
        • ne pas utiliser underscore _ (caractère réservé dans les index CQP)
        • on peut utiliser le tiret - (e.g. frpos-orig)
    • On peut déplacer les colonnes
    • On peut trier les lignes comme on veut, sauf la première ligne qui nomme les colonnes
    • On peut supprimer des colonnes sauf les colonnes “id” et “text_id”, les colonnes <properties> restantes seront utilisées pour la mise à jour ou l'ajout de propriétés
    • On peut supprimer toutes les lignes de mots dont on ne souhaite pas la mise à jour (attention de ne pas supprimer la première ligne qui nomme les colonnes)
  3. Création d'une nouvelle version pivot (XML-TEI TXM) des sources du corpus à partir des sources d'origine et du contenu du tableau
    • Ouvrir la vue “Macro”
    • Lancer la macro InjectWordPropTable en double cliquant dessus
    • Saisie des paramètres du script :
      • xmlDir : le chemin vers le dossier de la version pivot des sources du corpus
        • exemple : <TXMHOME>/corpora/discours/txm/DISCOURS
      • outputDir : le chemin vers le dossier qui contiendra la nouvelle version pivot du corpus
      • tsvFile : le chemin vers le fichier TSV à lire pour la mise à jour
      • properties : saisir la liste des colonnes de propriétés de mot à injecter (celles que l'on veut mettre à jour ou ajouter), séparer les noms de propriétés par une virgule
        • vous ne devez pas réinjecter la propriété “word”
    • Résultat → Une nouvelle version pivot des sources a été produite
  4. Importer la nouvelle version pivot du corpus avec le module XML-TEI TXM
    • Lancer la commande Fichier > Importer > XML-TEI TXM

C. Déroulé pas-à-pas de la procédure sur un corpus exemple

Cette session de travail se déroule dans un environnement Windows 7, sous le nom d'utilisateur “demo”. Il faut adapter les chemins de répertoires et de fichiers pour les autres systèmes (Mac OS X et Linux).

Mise en place du corpus de travail

Nous allons utiliser la version XML des sources du mini-corpus échantillon du corpus VOEUX utilisé lors de l'atelier préparation&import dans TXM.

La procédure de correction et d'ajout de propriétés de mots s'applique à n'importe quel corpus quel que soit son format d'origine (TXT, XML, TEI, Transcriber, etc.). Le choix d'utiliser un corpus dont les sources sont au format XML dans ce tutoriel nous permettra de l'étendre aux cas où certains mots ont déjà été préencodés au sein des sources du corpus (avec des balises <w>…</w>). Ce qui permettra d'associer l'introduction à l'édition de propriétés de mots aussi bien dans les sources d'un corpus que lors de son analyse dans TXM. Pour l'instant ce tutoriel se déroule strictement de la même façon que si vous utilisiez la version TXT des sources du mini-corpus échantillon du corpus VOEUX.

Pour cela :

  • télécharger l'archive de documents supports de l'atelier préparation&import dans TXM se trouvant à http://sourceforge.net/projects/txm/files/course%20materials/PreparationImportTXM.zip/download
  • décompresser l'archive
  • lancer TXM
  • importer la version XML du mini-corpus VOEUX avec la commande 'File > Import > XML/w+CSV'
    • le répertoire source est <Préparation et import dans TXM>/corpus/voeux-xml
    • utiliser le modèle de langue du français moderne 'fr.par' pour TreeTagger, de code 'fr' dans TXM
  • un corpus 'VOEUXXML' est créé : il contient 3 discours (t0015, t0022 et t0036)
  • Vérification étape A.2 : vérifier que le répertoire '<TXMHOME>/corpora/voeuxxml/txm/VOEUXXML' contient bien les textes t0015.xml, t0022.xml et t0036.xml (ils sont au format XML-TXM)

Choix des corrections à effectuer

Nous allons corriger la propriété morphosyntaxique et le lemme des mots débutants la séquence “NOM suivi de NAM”. Cette succession de catégories est en effet souvent mal étiquetée par TreeTagger comme on peut le voir dans la concordance suivante dans ce corpus :

  • requête : [frpos=“NOM”][frpos=“NAM”] ;
  • propriétés affichées du pivot : word, frpos et frlemma.

	t0022	Mes	chères_NOM_chère Françaises_NAM_Françaises	et mes chers Français, Ce soir est une fête pour la
	t0036	Mes	Chers_NOM_Chers Compatriotes_NAM_Compatriotes	, Parmi les événements qui marqueront l’année 1994, le sauvetage
	t0036	pour l’emploi est-elle ainsi bloquée ? Mes	Chers_NOM_Chers Compatriotes_NAM_Compatriotes	, c’est la dernière fois que je m’adresse à vous

Création du fichier TSV de propriétés (étape B.1)

  • Si ce n'est pas déjà fait :
  • Lancer TXM
  • Sélectionner le corpus VOEUXXML dans la vue corpus
  • Afficher la vue Macro (on peut la déplacer sous la vue corpus)
  • Dans cette vue, aller dans le dossier org/txm/annotation
  • Lancer la macro BuildWordPropTable avec les paramètres suivants :
    • properties : frpos,frlemma (nous allons corriger des lemmes et des catégories morpho-syntaxiques)
    • query : [frpos="NOM"][frpos="NAM"]
    • contextsize : 10
    • references : text_id, p_n
    • tsvFile : C:/Users/demo/annotation-voeux.tsv
  • Cliquer sur “Exécution”

Le fichier “annotation-voeux.tsv” est créé et contient les lignes suivantes :

 n	Références	ContexteGauche	Pivot	frpos	frlemma	ContexteDroit	id	text_id
 706	t0022,	Mes	chères Françaises	NOM	chère	et mes chers Français,	w_t0022_2	t0022
 1845	t0036, 0	Mes	Chers Compatriotes	NOM	Chers	, Parmi les événements qui	w_t0036_2	t0036
 2531	t0036, 4	est-elle ainsi bloquée ? Mes	Chers Compatriotes	NOM	Chers	, c’est la dernière	w_t0036_688	t0036

La table est composée des colonnes suivantes :

  • n : la position du mot dans le corpus (entier positif), pour trier le tableau dans l'ordre des textes ;
  • Références : référence du pivot
  • ContexteGauche : contexte gauche du mot ;
  • Pivot : forme du mot
  • frpos : propriété morphosyntaxique du mot courant ;
  • frlemma : le lemme du mot courant ;
  • ContexteDroit : contexte droit du mot courant ;
  • id : identifiant unique du mot ;
  • text_id : identifiant unique du texte contenant le mot.

Correction des propriétés (étape B.2)

Nous allons corriger la catégorie NOM en ADJ, et les lemmes en passant.

  • Ouvrir le fichier TSV avec Calc (de préférence) ou Excel ;
    • Ligne 2, colonne E (n=706 et frpos=NOM) : remplacer par “ADJ” ;
    • Ligne 2, colonne F (n=706 et frlemma=chère) : remplacer par “cher” ;
    • Ligne 3, colonne E (n=1845 et frpos=NOM) : remplacer par “ADJ” ;
    • Ligne 3, colonne F (n=1845 et frlemma=Chers) : remplacer par “cher” ;
    • Ligne 4, colonne E (n=2531 et frpos=NOM) : remplacer par “ADJ” ;
    • Ligne 4, colonne F (n=2531 et frlemma=Chers) : remplacer par “cher” ;
  • Enregister et quitter.

Le fichier “annotation-voeux.tsv” contient désormais les lignes suivantes :

 n	Références	CG	keyword	frpos	frlemma	CD	id	text_id
 706	t0022, 	Mes	chères Françaises	ADJ	cher	et mes chers Français,	w_t0022_2	t0022
 1845	t0036, 0	Mes	Chers Compatriotes	ADJ	cher	, Parmi les événements qui	w_t0036_2	t0036
 2531	t0036, 4	est-elle ainsi bloquée ? Mes	Chers Compatriotes	ADJ	cher	, c’est la dernière	w_t0036_688	t0036

Création d'une nouvelle version des sources au format pivot XML-TXM (étape B.3)

  • Dans TXM, aller dans le dossier “org/txm/annotation” de la vue Macro
  • Lancer la macro InjectWordPropTable avec les paramètres suivants :
    • xmlDir : C:/Users/demo/TXM/corpora/voeuxxml/txm/VOEUXXML (**)
    • outDir : C:/Users/demo/xml/voeux-txm-corrige
    • tsvFile : C:/Users/demo/annotation-voeux.tsv
    • properties : frpos,frlemma
  • Cliquer sur “Exécuter”
    →Le répertoire C:/Users/demo/xml/voeux-txm-corrige contient alors une nouvelle version des fichiers sources pivot : t0015.xml, t0022.xml et t0036.xml.

Notes :
(**) Le répertoire C:/Users/demo/TXM/corpora/voeuxxml/txm/VOEUXXML contient une version interne à TXM des fichiers sources du corpus VOEUXXML qui a été construite automatiquement lors du premier import du corpus dans TXM.
Il est situé dans le répertoire TXM de l'utilisateur parce qu'il est supposé être interne au processus d'import du corpus dans TXM.
Il est tout à fait possible d'y accéder directement, vous n'avez pas besoin d'en faire une copie à l'extérieur du répertoire de TXM, la macro n'y accède d'ailleurs qu'en lecture.
Il est nécessaire d'utiliser cette version des sources du corpus parce que pour réinjecter les corrections de propriétés de mots dans les sources, TXM doit savoir où se trouvent les mots, ce qui n'est pas forcément le cas pour tous les formats de fichiers sources comme dans le cas du corpus VOEUXXML où les mots ne sont pas encodés (texte brut).
Cette version interne des sources d'un corpus est encodée en format XML-TXM, où chaque mot est encodé en détail en XML.
Pour un corpus MONCORPUS donné, la version interne est stockée dans le répertoire C:\Users\demo\TXM\corpora\moncorpus\txm\MONCORPUS.

Importation de la nouvelle version du corpus (étape B.4)

  • Dans TXM, lancer la commande 'File > Import > XML-TEI TXM' (attention, il ne s'agit pas du module 'XML/w+CSV' qui ne suffit pas pour cette opération. En effet, les fichiers XML-TXM pivots doivent être importés directement dans TXM - sans re-tokenization, lemmatisation, etc.)
    • le répertoire source est C:/Users/demo/xml/voeux-txm-corrige
    • lancer l'import
  • le nouveau corpus 'VOEUXTXMCORRIGE' est créé

Pour vérifier les corrections, vous pouvez faire la concordance de [word=“c.*”%c][frpos=“NAM”] dans ce corpus en affichant les propriétés word_frpos_frlemma dans la colonne de pivot. Vous devriez obtenir :

	t0022	Mes	chères_ADJ_cher Françaises_NAM_Françaises	et mes chers Français, Ce soir est une fête pour la
	t0022	Mes chères Françaises et mes	chers_ADJ_cher Français_NAM_Français	, Ce soir est une fête pour la plupart d’entre vous
	t0036	Mes	Chers_ADJ_cher Compatriotes_NAM_Compatriotes	, Parmi les événements qui marqueront l’année 1994, le sauvetage
	t0036	pour l’emploi est-elle ainsi bloquée ? Mes	Chers_ADJ_cher Compatriotes_NAM_Compatriotes	, c’est la dernière fois que je m’adresse à vous

Remarque : Dans l'état actuel du module d'import XML-TEI TXM :

  • les éditions produites sont plus limitées que celles produites par les modules d'import d'origine.

public/tutoriel_correction_mots.txt · Dernière modification: 2015/12/22 11:48 par slh@ens-lyon.fr