Extraction d'information
Titre et description

-------------------------------------------------------------

Objectifs

      Nous voulons réaliser un script Perl qui permet qui travaille à partir d’une arborescence de fils d’actualité extraite du journal le Monde. Le but de ce travail est d’automatiser l’extraction de contenu textuel à partir de fichiers XML. Nous extrairons seulement pour ces programmes les titres et la description rapide de chaque article pour des rubriques ( thématiques ) données. Le travail se divise en deux programmes qui constituent deux approches : Le premier fait l’extraction à partir d’expressions régulières pour récupérer le contenu textuel compris dans les balises ciblées. Le second fait l’extraction du contenu des balises ciblées grâce au module perl XML::RSS.

Les grandes étapes

1. Méthode Regex

      Dans ce programme, nous commençons d’abord par paramétrer les arguments donnés au programme. Le premier argument doit désigner le nom du dossier à parcourir dans lequel nous allons chercher les fichiers XML à traiter. Nous nous assurons de la bonne syntaxe de la commande par une expression régulière qui permet d’éviter que le nom de chemin indiqué ne se termine par le caractère ‘/’ ce qui poserait problème à l’exécution. On crée ensuite deux fichiers qui vont recevoir le résultat de nos extractions, l’un au format texte et l’autre au format XML. Nous écrivons dans le fichier XML les balises de l’en-tête du fichier, et nous créons un dictionnaire dont chaque clé sera le titre extrait et chaque valeur sera la description de l’article. Il suffit enfin de lancer notre fonction ‘parcoursarborescencefichiers’ ( décrite plus bas ) sur le dossier désigné par le premier argument du programme de façon récursive.

Description de la fonction ‘parcoursarborescencefichiers’ (v1) :

      Cette fonction s’applique sur un dossier. Elle consiste à parcourir chaque dossier contenu dans ce dossier et à travailler sur les fichiers xml qui s’y trouvent. On va stocker le contenu du fichier XML courant dans une variable texte. Ensuite par le biais d’une expression régulière , nous allons récupérer le contenu des balises titre et description que l’on va assigner à d’autre variables au format texte, puis nous allons les ranger dans le dictionnaire initialisé dans le programme principal. Enfin, nous allons appliquer la fonction de nettoyage élaborée en cours sur notre dictionnaire pour se débarrasser du contenu textuel en trop qui compromettrait la syntaxe XML. Enfin, nous écrivons directement le contenu du dictionnaire dans le fichier texte, et nous écrivons ce même contenu accompagné des balises XML correspondantes au balises dans lesquelles nous voulons écrire le contenu du dictionnaire et nous fermons les balises XML ouvertes dans le programme principal.

2. Méthode XML::RSS

      Le programme principal a exactement le même principe que celui de la méthode précédente. Nous vérifions la bonne formation des arguments donnés au programme, créons des fichiers qui vont recevoir les résultats de l’extraction ( au format txt et au format XML ) et nous commençons à écrire les balises d’en-tête du fichier XML. On initialise un dictionnaire dont chaque clé sera le titre de l’article et chaque valeur correspondante en sera la description. La vraie différence entre les deux approches se situe dans la fonction ‘parcoursarborescencefichiers’ .

Description de la fonction ‘parcoursarborescencefichiers ’(v2) :

      Cette fonction s’applique toujours sur un dossier. Nous commençons ici aussi à parcourir le dossier et chaque sous dossier contenu à la recherche de fichiers XML. Nous utilisons la fonction du module XML::RSS pour vérifier la bonne formation des fichiers XML et ne traitons que ceux qui sont correctement formés. Pour chaque fichier XML bien formé, toujours à l’aide des fonctionnalités du module XML::RSS nous extrayons directement le contenu textuel des balises qui nous intéressent à savoir les balises ‹titre› et ‹description› que nous rangeons de nouveau dans des variables texte. Nous appliquons aussi de nouveau la fonction de nettoyage sur le texte contenu dans ces variables afin de s’assurer de la bonne formation de la sortie ( au format XML ). Nous mettons ces variables dans un dictionnaire et écrivons son contenu dans les fichiers de sortie, respectivement une sortie au format texte et une sortie au format XML.