B A O

Projet Encadré 2 - 2018
Alice Missud, Clara Ponchard

PERL

Les scripts détaillés sur cette page représentent les différentes tâches opérées par les boîtes à outils. Plusieurs méthodes sont proposées pour chacune d'entre elles. Les BAO ont traité les rubrique 3208, 3210 et 3214 issues des fils RSS du journal Le Monde.

B A O 1

SANS MODULE

Cette première méthode pour la BAO1 n'utilise aucun module complémentaire. Le script parcourt ici l'arborescence de fichiers contenue dans le dossier entré en premier argument, jusqu'à tomber sur les fichiers XML qui nous intéressent, à savoir ceux dont le nom comporte l'indice de la rubrique entrée en second argument en ligne de commande. Trois fonctions sont déclarées ici : une première qui parcourt l'arborescence et qui peut être utilisée à l'intérieur d'elle-même afin de rendre le procédé récursif (notamment lorsqu'il n'existe pas de fichier dans un dossier), une deuxième qui nettoie le contenu textuel des fichiers XML, et une troisième qui, après extraction du texte entre les balises <title> et <description> à l'aide d'une expression régulière, rajoute les points qui manquent à la fin du titre à l'affichage. Le script rend deux fichiers : un fichier au format texte brut qui contient tous les titres et descriptions, et un fichier XML qui comprend ces mêmes titres et descriptions balisés.

TELECHARGER :

Pour lancer le script :
BAO1.pl nom_du_répertoire nom_de_la_rubrique


Résultats pour la rubrique 3208 : XML TXT

XML::RSS

Cette deuxième méthode utilise la bibliothèque XML::RSS. Celle-ci permet d'éviter l'utilisation d'une expression régulière pour récupérer le contenu textuel situé entre les balises pertinentes. Il suffit alors d'indiquer à la variable $rss de mettre dans une liste tout ce que contiennent les balises <title> et <description> en bouclant sur l'ensemble de ce que contiennent les balises <item>.

TELECHARGER :

Il est nécessaire d'installer la bibliothèque XML::RSS pour que le script fonctionne. Pour le lancer :
BAO1_RSS.pl nom_du_dossier nom_de_la_rubrique


Résultats pour la rubrique 3208 : XML TXT

B A O 2

SANS MODULE

La deuxième BAO procède comme la première, mais cette fois avec une fonction d'étiquetage supplémentaire. Cette fonction va utiliser un autre script en Perl pour tokeniser le contenu textuel du fichier XML (tokenise-utf8.pl), ainsi qu'un programme permettant d'étiqueter en tokens, lemmes et parties du discours l'ensemble de ce qu'entourent les balises avec TreeTagger. En sortie, le script rend un fichier XML entièrement étiqueté morphosyntaxiquement. Nous avons en parallèle utilisé Cordial pour l'étiquetage sur les mêmes fichiers afin de comparer les différentes approches.

TELECHARGER :

Ce script rassemblant deux BAO, il n'est pas nécessaire de procéder en deux temps. On peut donc directement le lancer de la même manière que la BAO1 :
BAO2.pl nom_du_répertoire nom_de_la_rubrique


Résultats pour la rubrique 3208 : TREETAGGER CORDIAL

XML::RSS

La même méthode fonctionne en utilisant la bibliothèque XML::RSS.

TELECHARGER :

Pour lancer le script :
BAO2_RSS.pl nom_du_répertoire nom_de_la_rubrique


Résultats pour la rubrique 3208 : TREETAGGER CORDIAL

B A O 3

Après l'étiquetage, nous procédons à l'extraction des terminologies. Nous exposons ici 4 méthodes différentes : deux en Perl, une à l'aide d'une feuille de style XSLT et une dernière avec le langage XQuery. Les fichiers exploités ont été étiquetés de deux manières, par Cordial ou par TreeTagger.

CORDIAL

Ce premier script permet l'extraction de terminologies à partir des sorties étiquetées par le logiciel Cordial. Il prend deux arguments en entrée : un fichier étiqueté, et un fichier texte comportant un ou plusieurs patrons (par exemple : NC.. ADJ, NC.. PREP.. NC..). En sortie, il renvoie un fichier texte comprenant l'ensemble des terminologies extraites dans l'ordre et regroupées par patrons.

TELECHARGER :

Pour le lancer :
BAO3-cordial.pl sortie_cordial.cnr patron-cordial.txt


Résultats pour la rubrique 3208 : ADJ NOM NOM ADJ NOM PREP NOM

TREETAGGER

Ce deuxième script s'attèle à en faire de même pour les fichiers étiquetés par TreeTagger lors du traitement de la BAO2, mais prend cette fois-ci en argument non pas un fichier de patrons mais un patron entré par l'utilisateur en ligne de commande. Il renvoie le résultat directement à l'affichage en ligne de commande, mais peut être envoyé vers un fichier avec une commande en bash.

TELECHARGER :

Le script se lance en entrant le patron que l'on souhaite en second argument :
BAO3-treetagger.pl sortie_treetagger.xml NOM ADJ > bao3_rubrique_NA.txt


Résultats pour la rubrique 3208 : ADJ NOM NOM ADJ NOM PREP NOM

XSLT

XSLT (eXtensible Stylesheet Language Transformations) est un langage de transformation XML de type fonctionnel. Il permet notamment de transformer un document XML dans un autre format, tel que HTML pour être affiché comme une page web. Nous l’avons utilisé pour extraire les patrons morphosyntaxiques du fichier XML obtenu à l’issu de la BAO2 afin d’obtenir un résultat structuré et visuel pour chaque séquence de patrons choisie. Pour visualiser les résultats, téléchargez la feuille de style et le fichier XML lié, et lancez le fichier XML dans votre navigateur (il faut que les deux fichiers se situent dans le même répertoire).

NOM ADJ ADJ NOM NOM ADJ VER PRP NOM PRP NOM NOM PRP NOM ADJ NOM VER NOM ADJ
XML lié XML lié XML lié XML lié XML lié XML lié

XQUERY

Nous avons voulu tester différentes méthodes afin d'évaluer la fiabilité des terminologies obtenues par les scripts Perl et Python ainsi que l’optimisation des différents outils. Nous avons commencé par utiliser le système de gestion de base de données XML Base X incorporant des données directement au format XML et proposant les langages XPATH et Xquery pour les interroger. Afin d’extraire le contenu textuel des balises >title< et >description< ainsi que les différents patrons morphosyntaxiques, nous avons utilisé les requêtes XQuery qui utilisent le modèle FLWOR ( for, let, where, ordre, return ). Ici sont détaillées les programmes permettant de réaliser les tâches des BAO 1 et 3.


Résultats pour la rubrique 3208 : ADJ NOM NOM ADJ NOM PREP NOM

B A O 4

Après avoir récupéré les fichiers contenant les patrons qui nous intéressent avec la BAO3 adaptée aux sorties de Cordial, le programme patron2graphe.exe nous permet d'obtenir des graphes afin de visualiser les différentes combinaisons possibles entre les mots selon leur étiquetage morphosyntaxique. Il est possible de voir toutes les combinaisons d'un résultat d'extraction obtenu avec la BAO3, ou bien de ne sortir que les combinaisons d'un mot en particulier.

SORTIE CORDIAL

Pour les fichiers résultant du script BAO3-cordial.pl, il faut lancer le programme avec un encodage ISO-8859-1 comme suit :

GLOBAL : .\patron2graphe.exe "iso-8859-1" patrons_sortie_3210.cnr.txt

PAR MOT : .\patron2graphe.exe "iso-8859-1" patrons_sortie_3210.cnr.txt motif-iso-8859-1.txt

SORTIE TREETAGGER

Pour TreeTagger, il faut lancer le programme avec un encodage UTF-8 :

GLOBAL : .\patron2graphe.exe "utf-8" patrons_e-3210.xml.txt

PAR MOT : .\patron2graphe.exe "utf-8" patrons_e-3210.xml.txt motif-utf-8.txt


Pour accéder aux graphes et aux comparaisons des temps de calcul -> RESULTATS.