Etiquettage via Cordial et tretagger



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 on le lancera sur les fichiers au format XML.

1- CORDIAL




Notre fichier étant trop grand on a dû le diviser en 4 pour pourvoir l'étiquetter. Le résultat est un fichier .cnr présentant sous forme de tableau, le token suivi de son lemme et de sa catégorie syntaxique :





Aperçu du résultat









2- 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.



Le processus d'étiquetage comprend une étape de segmentation des contenus textuels en tokens avec le script Perl tokenise-utf8.pl (distribué avec TreeTagger et appelé par l'interface) et une étape d'étiquetage des tokens avec le logiciel TreeTagger.Avant d'étiqueter avec TreeTagger, il faut indiquer dans Perl le fichier d'entrée texteaetiqueter.txt stocké dans la variable $tmptag et le chemin où se trouve le logiciel pour pouvoir l'utiliser.Pour l'étiquetage morpho-syntaxique, on a choisi d'afficher avec la catégorie syntaxique, le lemme "-lemma" et le mot étiqueté "-token". En plus de ces options d'étiquetage, il faut aussi veiller à ne pas oublier de préciser le chemin du fichier de paramètre de la langue fourni par la bibliothèque de TreeTagger, french-utf8.par (français UTF-8).



Fonction treetagger intégrée au script PurPerl et XML::RSS





Pour l'étiquetage morpho-syntaxique, on a choisi d'afficher avec la catégorie syntaxique, le lemme "-lemma" et le mot étiqueté "-token". En plus de ces options d'étiquetage, il faut aussi veiller à ne pas oublier de préciser le chemin du fichier de paramètre de la langue fourni par la bibliothèque de TreeTagger, french-utf8.par (français UTF-8) :







Le résultat de l'étiquetage avec TreeTagger est semblable au résultat de l'étiquetage avec Cordial, on a un tableau avec une colonne token, une colonne lemme et une colonne catégorie syntaxique mais dans un fichier de sortie TXT : > treetagger.txt.Voici le résultat pour le script PERL:





Nous rajouteons également cette fonction dans notre script xml et nous lançeons le script sur la rubrique 3208 :





résultat





Les résultats XML de l'étiquetage TreeTagger ont un avantage en terme de structuration et de lisibilité mais le traitement via Perl / TreeTagger est beaucoup plus long que celui via Cordial