Boite à outils 2: Etiquetage
Basé sur le résultat de BàO 1. Une fois que le corpus est filté et nettoyé, nous avons deux méhotde pour réaliser l'étiquettage:
I: Treetagger + Script Perl;
II: Cordial
Afin d'optimiser notre programme, nous ajoutons l'élément qui vérifie la rubrique du journal
La methode Treetagger
Pour étiqueter la sortie en format xml, on utilise le Treetagger en l'ajoutant dans notre script, tandis qu'on utilise le logiciel Gordial pour étiqueter le fichier en format txt.
Le logiciel Treetagger est un logiciel moins efficace que Cordial pour certains points, il permet tout de même de tokéniser et d'étiqueter avec suffisamment de précision pour que nous puissions analyser les fichiers résultats.
Le programme doit construire un fichier structuré(XML) qui contient les contenus textuels étiquetés des balises DESCRIPTION et TITLE
Script:
Basé sur l'étape dernière, nous ajoutons un sous-programme pour nous aider à faire l'étiquetage des données.
#------------------------------------------------------------------------------------------------------------------
# Etape 3: etiquette : applique un traitement d’étiquetage sur chacun des fichiers rencontrés au moment du parcours
#------------------------------------------------------------------------------------------------------------------
sub etiquette
{
my $var1 = shift(@_); #$_[0]
my $var2 = shift(@_); #$_[1]
open (my $f1, ">>:encoding(utf8)", "title.txt") or die "NE PEUT PAS OUVIRE LE FICHIER !"; #>> ==> ajouter
open (my $f2, ">>:encoding(utf8)", "description.txt") or die "NE PEUT PAS OUVIRE LE FICHIER !";
print $f1 "$var1\n\n"; #ecrit dans title.txt $var1 qui a la valeur de $title
print $f2 "$var2\n\n"; #ecrit dans description.txt $var2 qui a la valeur de $description
close $f1;
close $f2;
#on veut lancer une commande hors la programme perl:
system("perl tokenise-utf8.pl title.txt | tree-tagger -token -lemma -no-unknown french-utf8.par > title_etiquette.txt");
#Tree-tagger [opt°] <input> <output>
system("perl treetagger2xml-utf8.pl title_etiquette.txt utf8"); #résultat est contenu dans title_tag.txt.xml
open ($f1, "<:encoding(utf8)", "title_etiquette.txt.xml") or die "NE PEUT PAS OUVIRE LE FICHIER !";
my $title_tag = "";
my $ligne = <$f1>;
while (my $ligne = <$f1>)
{
$title_tag = $title_tag . $ligne;
}
close $f1;
system("perl tokenise-utf8.pl description.txt | tree-tagger -token -lemma -no-unknown french-utf8.par > des_etiquette.txt");
system("perl treetagger2xml-utf8.pl des_etiquette.txt utf8"); #résultat est contenu dans description_tag.txt.xml
open (my $f2, "<:encoding(utf8)", "des_etiquette.txt.xml") or die "NE PEUT PAS OUVIRE LE FICHIER !";
my $description_tag = "";
my $ligne = <$f2>;
while (my $ligne = <$f2>)
{
$description_tag = $description_tag . $ligne;
}
close $f2;
return $title_tag, $description_tag; # envoyer deux valeur qui contiennent le contenue de title
} # fin de etiquette
Afin d'éviter les affichages d'erreurs liés aux charactères spéciaux
On force l'utilistion de l'encodge utf8. Les lignes de commandes sont ajoutées au début de script
#ce fichier en tête peut evider Wide character
use utf8;
binmode(STDIN, ':encoding(utf8)');
binmode(STDOUT, ':encoding(utf8)');
binmode(STDERR, ':encoding(utf8)');
Pour voir le script complet, cliquez sur le lien suivant
Fichier sortie avec Treetagger
Rubrique 3208: XML
Rubrique 3210: XML
Rubrique 3224: XML
Rubrique 823353: XML
La methode Cordial
Pour étiqueter la sortie en format xml, on utilise le Treetagger en l'ajoutant dans notre script, tandis qu'on utilise le logiciel Gordial pour étiqueter le fichier en format txt.
Cordial
Ce logiciel ne traite que les textes codés en iso. On doit donc convertir le fichier utf-8 en iso.
Après avoir chargé le fichier, on peut obtenir le résultat qu'on veut en changeant le paramètre.
Fichier sortie avec Cordial
Rubrique 3208: A la Une CNR
Rubrique 3210: International CNR
Rubrique 3224: France CNR
Rubrique 823353: Présidentielle 2017 CNR