La Boîte à Outils

La BàO 3 correspond à l’extraction de patrons morpho-syntaxiques à partir de fichiers étiquetés via Cordial ou Treetagger. Pour ce faire, nous avons utilisé plusieurs méthodes proposées par les professeurs, toutes rédigées en Perl, selon si nous voulons analyser un fichier généré par Cordial ou par Treetagger. Bien entendu, nous pouvions adapter les scripts à notre convenance. Nous avons, par exemple, ajouté la création d’un fichier de résultats, ce qui permet de visualiser ceux-ci dans un fichier plutôt qu’en ligne de commande, où l’encodage est problématique. Nous nous sommes intéressée aux patrons suivants (suivis de leur REGEX) :

Pour les sorties Cordial

La première méthode est proposée par S. FLEURY. Concernant les fichiers générés par Cordial (en TXT donc), le programme nécessite un fichier TXT dans lequel nous indiquons les REGEX des patrons désirés. Ces derniers sont lus par le programme et stockés dans une liste. Ensuite, il crée une liste pour les lignes, pour les lemmes, les tokens et les POS. Le programme lit le fichier donné en argument ligne à ligne. Il rempli ensuite les listes par les informations pertinentes (lemmes, POS et tokens). Les patrons sont segmentés, et le programme vérifie s’ils correspondent à ceux désirés par les REGEX. Si c’est le cas, il imprime le résultat. Nous pouvons créer un petit programme permettant de traiter tous les fichiers des différentes catégories, afin d’éviter d’avoir à le faire manuellement. Voici un extrait des résultats pour la rubrique IDEES concernant les patrons ADJ NOM :

Extrait de résultats d'extraction de patrons à partir des sorties Cordial

Le lien du script est téléchargeable ci-dessous :

Script pour les sorties Cordial

Pour les sorties TreeTagger

La seconde méthode, proposée par R. BELMOUHOUB, utilise XPATH à partir du fichier XML généré par Treetagger. Le programme nécessite donc la bibliothèque XML::Xpath, permettant d’intégrer des requêtes XPATH dans un script Perl. Il faut préciser en paramètres le nom du fichier taggé dans lequel se feront les recherches, ainsi que le fichier de patrons où ceux-ci sont exposés chacun sur une ligne. Les motifs recherchés sont insérés dans un tableau préalablement initialisé. Le programme parcourt ensuite le fichier taggé ligne à ligne, en cherchant le chemin XPATH indiqué, motif par motif.

Remarque : notre patron concernant les noms et adjectifs n'est plus ici ADJ NOM mais NOM ADJ. Il demande donc les adjectifs postposés au nom.

Nous avons par ailleurs évalué le chemin XPATH à l’aide d’XMLCopyEditor. Les chemins que nous avons soumis au logiciel sont les suivants :

Pour le patron NOM PRP NOM :

//element[contains(data["type"],"NOM")][following-sibling::element[1][contains(data["type"],"PRP")]][following-sibling::element[2][contains(data["type"],"NOM")]]

Pour le patron NOM ADJ :

//element[contains(data["type"],"NOM")][following-sibling::element[1][contains(data["type"],"ADJ")]]

Cette méthode pose un problème avec les gros fichiers, car elle requière beaucoup de mémoire. Au-delà de 20 Mo, le fichier ne peut pas être traité par le programme.

Voici un extrait du résultat généré par ce programme sur la rubrique VOYAGE, avec le patron NOM ADJ :

Extrait de résultats d'extraction de patrons à partir des sorties TreeTagger

Le lien du script est téléchargeable ci-dessous :

Script pour les sorties TreeTagger

Dernière méthode : XSLT

Une troisième méthode consiste à utiliser une feuille XSLT, permettant la transformation d’un fichier XML en HTML. Ainsi, nous pouvons obtenir un tableau correspondant à une requête, à l’aide du langage de requête XPATH, énumérant tous les résultats d’un patron. Nous avons donc utilisé deux feuilles de style XSL, à savoir une pour chaque patron syntaxique. Cela nous permet aussi d'obtenir un résultat propre et coloré selon notre convenance, de préférence dans un tableau pour plus de clarté.

Nous utilisons donc un chemin XPATH pour récupérer les informations pertinentes par rapport au patron, allant jusqu'à l'élément "element" correspondant, à l'aide d'une boucle if :

Code XSLT pour récupérer les éléments

Voici un exemple du résultat :

Exemple de sortie XSLT

Vous pouvez obtenir les feuilles de style avec les liens suivants :

Feuille de style XSLT pour le patron NA

Feuille de style XSLT pour le patron NPN

Les extractions pouvant maintenant être effectuées, nous pouvons désormains procéder à une analyse des résultats.

Et pour finir, c'est ici avec la BàO 4 !

Master Ingénierie Linguistique - BAO 2014 - page : BàO 3