Boîte à Outils

Sommaire

  1. A propos de la BAO 2
  2. TreeTagger
  3. Le programme Recode
  4. Cordial
  5. Résultats
  6. Tableau Récapitulatif

A propos de la BAO 2

Nous possédons maintenant comme données d'entrée les fichiers de la BAO1. En sortie nous souhaitons obtenir les données de la BAO1 mais cette fois étiquetées syntaxiquement.
La BAO 2 se montre moins exigente que la BAO 1 puisque une partie des fonctions sont prises en charge par différents logiciels.
Néanmoins avant de pouvoir utiliser ces logiciels il convenait de prendre en compte leurs spécificités :
Un exemple concret, l'utilisation de cordial nécessite des fichiers texte, dont l'encodage est ... en ISO-8859-1 ... Bien que nous ayons extrait la plupart des textes sans soucis en utf-8 qui était l'encodage prépondérant dans le corpus de l'année 2013 (seulement 1 fichier en latin 1 et encore : vide car les balises title et description avaient déjà été extraites dans un autre fichier du même nom en utf8). Il allait falloir tout recoder en latin 1. Bien que nous ayons pu le faire avec un recode à la mode unix (cf photo suivante), la généralisation du processus les problèmes de caractères à recoder ensuite, la thématique du projet (on fait du perl ici après tout !) et enfin les problèmes relatifs à cette méthode qui ne marche pas systématiquement sont autant de raisons qui nous ont poussées à privilégier une solution Perl que nous allons expliquer ci après. Mais faisons d'abord un détour par Treetagger qui, étant installable et utilisable en ligne de commande, nous permettait un appel généralisé dans un script perl. Nous avons donc décidé d'incorporer les deux notions (recoder et "treetagger") dans le programme recode. Commençons le descriptif treetagger.

un recode à la mode unix
Un recode à la mode unix dans un autre projet

TreeTagger

Treetagger est un programme de lemmatisation, une fois installé en version complète il s'occupe aussi de la "tokenisation". L'ajout de différentes librairies permet de traiter différentes langues et aussi différents encodages (cf image).

Librairies treetagger
Librairies treetagger
Cerise sur le gâteau, on peut l'utiliser très simplement en ligne de commande, nous avons d'ailleurs établit un alias pour l'utiliser (encore plus) facilement :
Alias d'utilisation treetagger
Alias d'utilisation treetagger
Utilisation de Treetagger en ligne de commande
Utilisation de Treetagger en ligne de commande
Pour plus de détails, la page de Treetagger Passons maintenant à l'utilisation de treetagger dans le programme recode et aussi au descriptif du programme.

Le programme Recode

Nous avons déjà globalement décrit le but du programme (lemmatiser les fichiers via Treetagger et recoder ces même fichiers). Cependant deux cas se présentent, soit le fichier est en utf8 soit en iso-8859-1. De plus on veut traiter un ensemble de fichier en une seule fois.
Nous n'allons pas décrire en détail le programme dans la mesure où beaucoup de mécanismes ont déjà été abordés lors de la description de la BAO1. Nous détaillerons ici uniquement les grandes lignes :
L'argument paramètre de la ligne de commande du programme est un dossier portant un nom d'encodage issu de la BAO1. On commence par utiliser le nom de dossier (issu de la BAO1) qui porte le nom d'un encodage pour déterminer dans quel cas on se trouve (utf8 ou latin 1).
Cela diminue bien sûr la portabilité du programme mais s'inscrit dans une logique globale et à l'avantage d'être facile à mettre en pratique. On lance encore une fois un parcours d'arborescence similaire à la BAO1.
A ce moment nous décidons d'ailleurs que si l'occasion se présente nous allons exporter ce fonctionnement dans un programme, plutôt que d'insérer le morceau de code à chaque fois (ce que nous aurons l'occasion d'expérimenter dans la série de programme appel de la BAO3). L'instruction du module Switch permet de générer les deux cas avec des appels de fonction. On n'accepte ensuite que le traitement de fichier txt (pas ceux issus de xmlrss). Viennent ensuite les phases de recode adaptées selon les cas. On recode ensuite certains caractères qui posaient problème en sortie en utilisant leur valeur hexadécimal via une table de hachage, ceci n'étant possible que si le fichier n'est pas vide, auquel cas on ne fait aucun traitement. Les fichiers sont ouverts selon l'encodage que l'on cherche à obtenir, on appelle ensuite le treetagger adapté (utf8 français ou iso français) sur le fichier recodé. Le programme génère cependant quelques erreurs, nous sommes contraint de terminer certaines lemmatisations à la main.

erreurs d'exécution au déroulement du programme
erreurs d'exécution au déroulement du programme

Le lien pour téléchargement du programme : Cliquez ici
Le lien vers une page html simple afin de mieux visualiser : Cliquez ici ou cliquez sur l'image.

Le programme recode
Le programme recode

Cordial

Nous arrivons au deuxième logiciel d'étiquetage, Cordial. Une fois nos fichiers en latin 1 nous pouvons utiliser le logiciel Cordial. Son interface, moyennant un temps d'adaptation se révèle facile d'utilisation (cf infra).

L'interface cordial
L'interface cordial
Cordial en action
Cordial en action
Pour plus de détails le site de Cordial analyseur et la page wikipédia.

Nous pouvons maintenant passer sans plus attendre aux résultats.

Résultats

On obtient des fichiers recode+nom_de_fichier, et tagger+nom_de_fichier. Malgré les problèmes à l'exécution du programme sur treetagger.

Les fichiers tagger en sortie
Les fichiers tagger en sortie
Problèmes du programme résultat
Problèmes du programme résultat
Passons maintenant à la phase d'observation des résultats et ensuite direction la BAO3

Tableau Récapitulatif

ACTUALITE_A_LA_UNE
0,2-3208,1-0,0
treetagger
cordial
0,2-3404,1-0,0
treetagger
cordial
_A_LA_UNE
0,2-3208,1-0,0
treetagger
cordial
0,2-3404,1-0,0
treetagger
cordial
CINEMA
0,2-3476,1-0,0
treetagger
cordial
CINEMA_TOUTE_L'ACTUALITE_SUR
0,2-3476,1-0,0
treetagger
cordial
CULTURE
0,2-3246,1-0,0
treetagger
cordial
CULTURE_TOUTE_L'ACTUALITE_SUR
0,2-3246,1-0,0
treetagger
cordial
ÉCONOMIE
0,2-3234,1-0,0
treetagger
cordial
ÉCONOMIE_TOUTE_L'ACTUALITE_SUR
0,2-3234,1-0,0
treetagger
cordial
EUROPE
0,2-3214,1-0,0
treetagger
cordial
EUROPE_TOUTE_L'ACTUALITE_SUR
0,2-3214,1-0,0
treetagger
cordial
IDEES
0,2-3232,1-0,0
treetagger
cordial
IDEES_TOUTE_L'ACTUALITE_SUR
0,2-3232,1-0,0
treetagger
cordial
INTERNATIONAL
0,2-3210,1-0,0
treetagger
cordial
INTERNATIONAL_TOUTE_L'ACTUALITE_SUR
0,2-3210,1-0,0
treetagger
cordial
LIVRES
0,2-3260,1-0,0
treetagger
cordial
LIVRES_TOUTE_L'ACTUALITE_SUR
0,2-3260,1-0,0
treetagger
cordial
MEDIAS
0,2-3236,1-0,0
treetagger
cordial
MEDIAS_TOUTE_L'ACTUALITE_SUR
0,2-3236,1-0,0
treetagger
cordial
PLANETE
0,2-3244,1-0,0
treetagger
cordial
PLANETE_TOUTE_L'ACTUALITE_SUR
0,2-3244,1-0,0
treetagger
cordial
POLITIQUE
0,57-0,64-823353,0
treetagger
cordial
POLITIQUE_TOUTE_L'ACTUALITE_SUR
0,57-0,64-823353,0
treetagger
cordial
SOCIETE
0,2-3224,1-0,0
treetagger
cordial
SOCIETE_TOUTE_L'ACTUALITE_SUR
0,2-3224,1-0,0
treetagger
cordial
SPORT
0,2-3242,1-0,0
treetagger
cordial
SPORT_TOUTE_L'ACTUALITE_SUR
0,2-3242,1-0,0
treetagger
cordial
TECHNOLOGIES
0,2-651865,1-0,0
treetagger
cordial
TECHNOLOGIES_TOUTE_L'ACTUALITE_SUR
0,2-651865,1-0,0
treetagger
cordial
VOUS
0,2-3238,1-0,0
treetagger
cordial
VOUS_TOUTE_L'ACTUALITE_SUR
0,2-3238,1-0,0
treetagger
cordial
VOYAGE
0,2-3546,1-0,0
treetagger
cordial
VOYAGE_TOUTE_L'ACTUALITE_SUR
0,2-3546,1-0,0
treetagger
cordial