Boîte à Outils 2 - Annotation des Fichiers

Dans cette deuxième boîte à outils, nous passons à l'étape d'annotation syntaxique de nos fichiers. Pour cette étape nous avons utilisé deux outils différents: TreeTagger appellé via un script Perl et le logiciel Cordial que l'on utilise directement.
L'utilisation de deux outils différents, à cette étape nous donnera en sortie deux types de fichier: un fichier XML et un fichier .cnr (propre à Cordial de type texte). Ces deux fichiers ont un format totalement différent, ce qui nous amèneras à les traiter de façon totalement différente en BàO 3.

Annotation avec Treetagger

À l'étape précédente, nous avions deux scripts Perl: une version utilisant des expressions régulières, une autre utilisant la bibliothèque XML::RSS. Nous gardons ici ces deux scripts, cependant l'étape d'annotation ne présente aucune différence selon les deux scripts. Nous ne présenterons donc ici que l'étape d'annotation par TreeTagger, sans faire de distinction entre les deux scripts Perl.

Voici la fonction que nous avons ajouté à nos scripts pour l'étape d'annotation:

sub etiquetage {
	my ($text)=@_;
	my $codage="utf-8";
	my $tempo="tempo2.txt";
	open (TEMPO,">:encoding(utf-8)", $tempo); 
	print TEMPO $text,"\n";
	close (TEMPO);
	system("perl ./treetagger/tokenise-utf8.pl $tempo > ./SORTIES_BAO2/REG-EXP/token.txt");
	print "token ok \n";
	system ("./treetagger/bin/tree-tagger ./treetagger/french-utf8.par -lemma -token -sgml -no-unknown ./SORTIES_BAO2/REG-EXP/token.txt > ./SORTIES_BAO2/REG-EXP/sortie_tag.txt");
	print "etiq ok \n";
	system("perl ./treetagger/treetagger2xml-utf8.pl ./SORTIES_BAO2/REG-EXP/sortie_tag.txt $codage");
	print "xml ok \n \n";
	open(OUT,"<:encoding(utf-8)","./SORTIES_BAO2/REG-EXP/sortie_tag.txt.xml");
   my $fistline=<OUT>;
   my $texteetiquete="";
   while (my $l=<OUT>) {
		$texteetiquete.=$l;
	}
	close(OUT);
	return $texteetiquete;
}



➤ L'appel de cette fonction se fait par la ligne suivante: my $titre_etiq=&etiquetage($titre);, en faisant alterner l'argument $titre par $resume. Nous stockons ensuite cette variable dans un fichier temporaire, ici tempo2.txt.
➤ Nous utilisons ensuite des lignes system car nous appelons d'autre script Perl. La première ligne system fait appel au tokeniser de TreeTagger, avec en entrée notre fichier temporaire et qui crée en sortie, un fichier token.txt.
➤ Une fois notre fichier découpé en tokens nous étiquettons notre texte via une deuxième ligne system. TreeTagger crée en sortie un fichier texte brut.
➤ Finalement nous transformons ce fichier .txt en un fichier XML via un script Perl fourni par TreeTagger. Le tout est encodé en UTF-8.
➤ Le return de cette fonction est une variable contenant le texte étiquetté et non un fichier. Nous réécrivons le contenu du fichier dans une variable avec les dernières lignes de la fonction.

Annotation avec Cordial

L'annotation de Cordial se fait directement par l'interface du logiciel. Nous entrons un fichier. txt obtenus après la boîte à outils 1. Il faut modifier les paramètres pour obtenir notre sortie souhaitée:
➢ Dans la fenêtre de paramètres, nous décochons tout mis à part l'option Lemmes.
➢ Nous choisissons NON dans l'espace "Numérotation des mots de chaque phrase".
Abrégé en majuscules dans l'espace "Type grammatical".
Aucun dans l'espace "Codage spécialisé".
Ne pas corriger, ne pas signaler dans l'espace "Traitement des erreurs".