La Boîte à Outils 3
Qu'est qu'on fait avec la BAO3 ?

Maintenant qu'on a nos jolis fichiers étiquetés avec la BAO2, on va enfin pouvoir commencer à analyser nos données. Pour ça, comme j'en parlais dans la prédédentes boîte à outils, on va travailler par extraction de patrons. Nos patrons, ce sera des modèles syntaxiques. C'est toujours barbare, comme terme, mais c'est simple comme bonjour. En gros et pour faire court, on va avoir deux fichierq (qui sont juste là pour les fichiers TreeTagger et juste ici pour Cordial) qui vont contenir tous les modèles syntaxiques (MS) que l'on veut extraire de nos données. Cela va nous donner des fichiers de résultats qui contiendront, pour chaque catégorie, toutes les chaînes de caratcères qui correspondent à ce modèle.

C'est donc pour ça qu'on avait besoin d'étiqueter nos fichiers du Monde. Toutes les annotations morpho-syntaxiques qui ont été ajoutées à nos données vont servir à reconnaître les classes grammaticales des mots et donc de pouvoir les matcher (ou non d'ailleurs) avec nos fichiers de patrons.


Mais comment ça marche, votre machin ?

Comme on a deux architectures de données (Cordial et TreeTagger), on pourrait penser qu'il y a deux programmes différents. Sur le papier, c'est le cas, mais dans la vraie vie, rien ne se passe jamis comme prévu. Il n'y a en fait qu'un seul algorithme et c'est nous qui avons adapté les fichiers au programme, pas l'inverse. Pourquoi ?

Eh bien pour deux raisons. Rappelez-vous, les fichiers TreeTaggerisés sont passés dans un script Perl qui les rebalise dans un bel XML. C'est joli, mais pas très épuré : il y a des balises partout et c'est du coup beaucoup plus compliqué à traiter. Le fichier Cordial, quant à lui, a une architecture beaucoup plus simple : il n'y a par ligne que trois éléments séparés par des tabulations (sauf quand il bug sur les ponctuations et dans ce cas là, il n'y a que la ponctuation analysée sur la ligne) : le lexème, le lemme et son étiquette. TreeTagger rend exactement le même résultat qu'il est utilisé tout seul à la seule différence près qu'il rend les tois éléments eux-aussi séparés par des tabulations dans un ordre différent : le lexeme, l'étiquette et en enfin le lemme. Il suffisait alors de faire un petit script (juste là) pour rendre exactement le même résultat. Comment marche-t-il ? Il suffit simplement de passer en argument le fichier .txt obtenu dans la BAO2 correspondant à la catégorie voulue. On se retrouve donc avec exactement la même architecture qu'un fichier Cordial. On a donc fait cette manipulation sur les sept catégories choisies de la BAO2 et les deux de la profondeur. Voilà un exemple de fichier passé dans tag.pl avec un fichier de la surface, ici le 3208.


Super, on fait comment, maintenant ?

On va tout simplement passer tout ce beau monde dans un autre script qui prendra deux arguments : le premier, c'est la catégorie sur laquelle on veut travailler, le deuxième, c'est le fichier contenant les MS. Si vous le regarder, vous allez certainement dire : "c'est quoi ces dièses ?". Ils sont là comme séparateurs entre les différents éléments des MS, c'est simplement le symbole que l'on a choisi (on aurait très bien pu prendre l'espace, ou ça, ¤, comme personne ne sait ce que c'est (en fait, il paraît que c'était un symbole qui devait remplacer la monnaie, pour contrecarrer la montée en puissance du $, mais on s'éloigne du sujet)). Pour le fichier Cordial, l'étiquetage fournit des étiquettes beaucoup plus enrichies en informations que TreeTagger. Les crochets et autres + sont simplement des expressions régulières, puisque les différentes classes du MS sont analysées en tant que regex dans le script.

Remarque : Cordial n'est pas très sympa, sur cinq catégories des quatorze, il nous a rendu un fichier illisible. N'ayant pas accès au logiciel, nous avons donc fait les analyses sur neuf catégories. C'est mieux que rien quand même !


On peut voir la bête ?

Mais bien évidemment, c'est demandé si gentiment. Le script est juste là


Les Résultats

Encore un peu de balbla assommant avant que vous ne voyiez le résultat de nos efforts. Nous avons travaillé sur six MS : nom-adj (NA), nom-prep-det-nom (NPDN), nom-verbe-prep-det-nom (NVPDN), nom-verbe-prep-verbe (NVPV), nom-verbe-prep-nom (NVPN) et nom-adj-verbe-prep-det-nom (NAVPDN). Si jamais certaines catégories prises pour analyses ne sont pas présentes dans le tableau ci-dessous, c'est tout simplement que les MS n'ont donnés aucun résultat pour cette dernière.

Fichiers Surface TreeTagger
3208NANPDNNVPDNNVPVNVPNNAVPDN
3232NANPDNNVPDNNVPVNVPNNAVPDN
3236NANPDNNVPDNNVPVNVPNNAVPDN
3260NANPDNNVPDNNVPVNVPNNAVPDN
3476NANPDNNVPDNNVPVNVPNNAVPDN
3546NANPDNNVPDNNVPVNVPNNAVPDN
651865NANPDNNVPDNNVPVNVPNNAVPDN
Fichiers Surface Cordial
3208NANPDNNVPDNNVPVNVPNNAVPDN
3210NANPDNNVPDNNVPVNVPNNAVPDN
3242NANPDNNVPDNNVPVNVPNNAVPDN
3246NANPDNNVPDNNVPVNVPNNAVPDN
3260NANPDNNVPDNNVPVNVPNNAVPDN
3476NANPDNNVPDNNVPVNVPNNAVPDN
3546NANPDNNVPDNNVPVNVPNNAVPDN
651865NANPDNNVPDNNVPVNVPNNAVPDN
823353NANPDNNVPDNNVPVNVPNNAVPDN

Fichiers Profondeur TreeTagger
3260NANPDNNVPDNNVPVNVPNNAVPDN
651865NANPDNNVPDNNVPVNVPNNAVPDN