La Boîte à Outils 2
Cette BAO, elle fait quoi ?

Une fois que l'on a nos fichiers exploitables, il serait de bon ton de commencer à en faire quelque chose. Nous, notre objectif, c'est d'en faire une analyse. Et le plus simple pour faire une analyse de texte plus ou moins automatiquement en informatique, c'est de l'étiqueter morpho-syntaxiquement. Ce sont deux (voire trois, mais là n'est pas la question) mots bien barbares pour décrire quelqe chose de très simple en soi : on va mettre à la chaîne de caractères (ici le mot) une étiquette qui va déterminer sa classe grammaticale et ses éventuelles flexions syntaxiques (comme les déclinaisons pour les langues à cas ou les conjugaisons pour les langes comme le français et bien d'autres).

C'est bien joli tout ça, mais on en fait quoi après ? Ça, on le verra dans la BAO3 où on utilisera des patrons, mais c'est une autre histoire.


Comment qu'on étiquette ?

Là encore, merci les ordinateurs. Nous avons repris le script de la BAO1 et nous lui avons rajouté une petite extension en plus : la partie étiquetage. Commençons déjà par le commencement.

Nous avons étiqueté avec deux logiciels. Le premier, c'est TreeTagger, un petit outils bien pratique qui marche sous tous les OS et développé par nos cousins germains (ou allemands si l'on veut parler français correctement). Il est surtout bien pratique parce que, contrairement à l'autre étiqueteur utilisé, on peut l'appeler à la ligne de commande et pas besoin d'installation (d'ailleurs, puisqu'on en parle, l'archive avec tous les outils est juste là). On veut quand même faire les choses bien et ce n'est pas que TreeTagger travaille mal (encore que quelques fois... mais passons), mais c'est quand même mieux d'avoir deux sons de cloche. Pour parfaire notre expérience, nous avons également utilisé Cordial. Il ets plus gros, il est plus beau, il est plus cher, mais surtout, il fait des analyses plus poussées au niveau des formes lexicales. Bien sûr, les sorties ne sont pas les mêmes (mais pas de panique, vous verrez tous les fichiers de résultat ou presque), mais le format est comme pour TreeTagger, plutôt facile à comprendre.

Maintenant que nous vous avons assommé avec nos précisions, laissez-nous vous assommer avec la façon dont nous avons procédé. Comme je le disais juste avant, nous avons juste rajouté un "petit" bout de code à celui de la BAO1. En essayant de rester simple (ce qui va être compliqué), voilà comment on fait. Premièrement, on va récupérer, section par section (donc titre et description séparément pour la surface, puis l'article en entier pour la profondeur) ce que l'on veut étiqueter. On va tout mettre dans des fichiers temoraires pour garder la structure du titre et de la description car le fichier que l'on veut obtenir au final, c'est un fichier XML. Une fois que le titre et la description sont mis dans des fichiers temporaires différents (car si c'et mis dans le même, la structure disparaît et c'est tout le contraire de ce que l'on veut), on va étiqueter ces fichiers temporaires. Finalement, on va passer le résultat de l'étiquetage dans le script treetagger2xml.pl pour créer un beau fichier XML tout propre. Pour la profondeur, on va faire presque pareil, sauf que l'on va simplement extraire les articles un par un (toujours avec un peu de bruit malheureusement), les étiqueter dans le fichier temporaire dans lequel ils seront tour à tour, puis le passer dans le même script afin d'obtenir également un fichier XML.

En plus du XML, nous avons également garder les données brutes dans un fichier .txt que vous pourrez aussi trouver plus bas.


C'est trop beau pour qu'on voie tout, c'est ça ?

C'est ça, enfin presque. Le souci, ce n'est pas que ça ne marche pas, (parce que promis, tout marche), mais que c'est très, mais alors très gros. Comme nous avons travaillé avec deux étiqueteurs, on a deux sortes de fichiers à vous présenter.

Pour notre travail avec TreeTagger, nous avons étiqueté la surface de sept catégories et pour la profondeur ... deux. Ça a l'air ridicule dit comme ça, je sais bien, mais laissez-moi vous dire pourquoi. Vous verrez dans le script, mais nous sommes obligées de constamment ouvrir, puis refermer, puis rouvrir, puis refermer (et ainsi de suite, ça pourrait durer longtemps) le fichier afin de l'étiqueter en gardant la structure comme expliqué plus haut. Et ça, eh bien, ça prend un paquet de temps et bien plus que ça en a l'air. Et les fichiers de résultats sont gros (environ 200 Mo pour la profondeur pour chaque fichier, ça en fait du texte, moi je vous le dis), tellement gros, que ça devient assez compliqué de les afficher sous un navigateur, et même sous un éditeur de texte (chrono en main, on en a bien pour 4-5 minutes).

Quand l'on passe à Cordial, toutes les catégories de la surface sont étiquetées avec ce dernier, mais pas la profondeur. Là enncore, par souci de temps et de taille.


Les Scripts

Je ne vais pas faire durer le suspens plus longtemps et je vais vous laisser admirer nos scripts que vous pouvez trouver ici pour la surface et ici pour la profondeur.


Les résultats

Et bien sûr, vous pouvez regarder ce que donne les résultats ici.

Fichiers Surface
TXTXML
32083208
32323232
32363236
32603260
34763476
35463546
651865651865
Fichiers Profondeur
TXTXML
32603260
651865651865
Fichiers Cordial
TXT
3208
3210
3214
3224
3232
3234
3236
3242
3246
3260
3476
3546
651865
823353