Objectifs

L'objectif de la deuxième boîte à outils est l'étiquetage morpho-syntaxique du texte filtré obtenu à l'étape précédente, c'est-à-dire l'association de chaque mot du texte à sa catégorie syntaxique et à sa forme lemmatisée (non fléchie).

Outils

Pour faire cet étiquetage nous avons à notre disposition deux méthodes qu'on va toutes les deux tester :
  • Treetagger : un outil d'étiquetage en ligne de commande gratuit (disponible pour plusieurs langues) développé à l'Université de Stuttgart.
  • Cordial : un programme Windows manuel (et payant) développé par Synapse

haut de la page

Script bao2.pl

Nous avons repris le script bao1.pl que nous avons transformé de manière à ce qu'il exécute également les objectifs de BaO2 (exécutables dans le cadre d'un script perl). Les transformations apportées au script sont données en commentaire du script et sont détaillées dans la partie ci-dessous.

>> Voir le script

haut de la page

Méthode n° 1 : Treetagger

Treetagger présente l'avantage considérable d'être un outil en ligne de commande, donc intégrable dans un script. Son fonctionnement est le suivant : il prend en entrée un fichier .txt contenant un mot par ligne et produit en sortie un autre fichier .txt avec un mot par ligne suivi de son étiquette pos et de son lemme.

# Il faut donc d'abord sortir le filtrage des fils RSS au format texte. Le filtrage est fait en entier avant de lancer l'étape treetagger (l'étiquetage "à la volée" prend beaucoup plus de temps).

# On met ensuite en forme cette sortie (de la forme : un contenu de balise par ligne) pour obtenir un fichier avec un mot par ligne : cette étape est prise en charge par le script tokenise.pl fourni avec Treetagger.

# A partir de ce nouveau fichier on peut lancer Treetagger, dont la syntaxe est :

tree-tagger [options] <parametres> <textein> <texteout>

Avec :
- options : -lemma : afficher les lemmes
-token : afficher les tokens (l'occurrence du mot dans le texte)
-sgml : ne pas étiqueter les éléments sgml
- parametres : french.par
- textein : fic-filtré.txt
- texteout : fic-taggé.txt

# Enfin, on lance le script treetagger2xml.pl (modifié à la ligne 42 : insertion d'un $ pour empêcher un retour à la ligne après la valeur de l'élément <lemma>)

Voici la partie (commentée dans le script) du code consacrée à Treetagger dans le nouveau script : bao2.pl :
### Traitement treetagger :
my $nomrub;
foreach $nomrub (values(%F)){
system ("mkdir -p ./$resultat/tag");
system ("perl ./treetagger/cmd/tokenise-fr.pl $resultat/$nomrub.txt | ./treetagger/bin/tree-tagger.exe ./treetagger/lib/french.par -lemma -token -sgml > $resultat/tag/$nomrub.txt");
print "Tagging de $clef.txt en cours...\n";
system ("perl ./treetagger/cmd/treetagger2xml2.pl $resultat/tag/$nomrub.txt");
print "$nomrub.txt has been XMLized\n";
}
Nous obtenons en sortie un répertoire resultats comprenant :
  • 17 fichiers filtrés au format texte destinés à Cordial, du type : rubrique.txt >> aperçu (rubrique "A la une")
  • un répertoire tag contenant :
  • 17 fichiers taggés au format texte, du type : rubrique.txt >> aperçu (rubrique "Politique")
  • 17 fichiers taggés au format xml, du type : rubrique.txt.xml >> aperçu (rubrique "Voyages")

haut de la page

Méthode n° 2 : Cordial

L'étiquetage avec Cordial est manuel donc assez pénible quand on a beaucoup de fichiers à étiqueter, ce qui est notre cas. On reprend donc les 17 fichiers filtrés et son courage à deux mains et on lance pour chacun de ces fichiers l'étiquetage avec Cordial avec le paramétrage suivant :


Nous obtenons en sortie 17 fichiers au format .cnr dont l'étiquetage est un peu différent de celui de Treetagger (plus détaillé au niveau de l'étiquette morpho-syntaxique) :
>> aperçu (rubrique "Politique")

haut de la page