Boîte à outils 2: étiquetage


L'objectif de la BAO2 est d'étiqueter les données textuelles extraites lors de la BAO1. On parle bien d'etiquetage morpho-syntaxique en part of speech (parties du discours) et pour se faire on va utiliser deux outils: Tree-tagger et Cordial. Cordial est un logiciel qui prend en entrée des fichiers au format txt cependant il faudra convertir nos fichiers txt produits en BAO1 en iso-latin après tout le mal que l'on s'est donnée pour qu'il soit en utf-8. Cordial génère en sortie un fichier texte avec 3 colonnes (forme, lemme, catégorie). Tree-tagger lui se lance en ligne de commande il faudra donc l'intégrer à un script et le lancera sur les fichiers au format XML.

étiquetage cordial

Comme dit précedemment avec Cordial il faut dans un premier temps convertir les fichiers que l'on veut étiqueter en iso-latin. Pour cela, on peut procéder de différentes manières. On peut procéder: manuellement à l'aide d'un logiciel comme Notepad ou Word en choisissant l'encodage; en utilisant la commande "iconv" sous Linux. Pour l'utiliser sous Windows on peut télécharger une version d'iconv à cette adresse : https://code.google.com/p/win-iconv/downloads/list
La commande iconv fonctionne de cette façon:
iconv -f inputencod -t outputencod input file > output file
 
Après cette conversion il suffit d'ouvrir le fichier dans Cordial et sélectionner dans le menu "Syntaxe"  "Etiquetage du texte puis sélectionner les paramètres qui nous intéressent.














Le résultat obtenu est un fichier au format cnr qui est sous forme de colonnes avec le token (le mot) à la première colonne puis le lemme et enfin la catégorie syntaxique. Vous trouverez un exemple de sortie Cordial ci-dessous.

etiquetage avec treetagger


La seconde méthode d'étiquetage est avec Treetagger qui s'exécute en ligne de commande et peut s'intégrer au script de la BAO1 dans une fonction. On lance la commande system suivante dans la procédure:
system ("perl tokenize.pl $contenu | tree-tagger.exe TreeTagger/lib/french-utf8.par -lemma -token -no-unknown -sgml >> $sousrepertoire2/$outtree");
Le principe est de tokeniser le contenu textuel, c'est-à-dire mettre un token par ligne puis d'envoyer le résultat à TreeTagger pour qu'il étiquete le contenu. L'étape suivante consiste à passer le fichier de sortie étiqueté au programmme treetagger2xml.pl pour le convertir au format XML. On peut aussi l'intégrer à une fonction de notre programme globale ou faire appel au programme dans le script. Le programme treetagger2xml a été fourni par nos enseignants.
system ("perl treetagger2xml.pl $sousrepertoire2/$outtree utf-8 ");
Voici un exemple de sortie avec le fichier SORTIE_treetaggerCINEMA:











Remarque: Treetagger n'a pas séparé les déterminants avec apostrophes et on se retrouve avec des "d'un" tagger comme adjectif et des "l'" ou "d'" qui trainent. Ce résultat va influencer l'extraction de patron que l'on va faire en BAO3.
Vous trouverez tous les résultats et le script ci-dessous.