BàO1

- Récupération des titres et des descriptions des articles par rubrique

Introduction

Pour commencer, nous voulons extraire le contenu textuel des fils RSS de l'année 2019 du journal Le Monde. Plus précisément, nous voulons récupérer par rubrique le titre et la description de chaque article présent dans les fichiers RSS. Notre objectif est d'écrire un programme pour réaliser cette tâche. L'enjeu de cette étape est de réussir à extraire, sur l'intégralité de l'arborescence, les contenus textuels pertinents pour notre projet et de les concaténer en un seul fichier. Ainsi, pour creuser dans un arbre jusqu'à la feuille finale, nous avons employé la méthode de récursion.

Méthode

Le parcours récursif, plus concrètement dans notre projet, pourrait être expliqué par un bloc de pseudocode Fonction lireArb(REP):
on ouvre un répertoire REP et on examine son contenu (les i éléments)
- si i est un fichier à traiter => traiter
- si i est un répertoire => lireArb(i)
Notre but est d'extraire les contenus de deux balises dans chaque fichier: les balises titres et descriptions. Ces deux types de balises sont des couples correspondant à la mise à jour d'un article et sont situées au sein de balises.

Scripts

Les idées des scripts écrits en Perl et Python sont les mêmes. Comme on connaît la structure de nos fichiers XML, on peut élaborer une expression régulière qui va chercher les motifs qui nous intéressent. Ces scripts prennent en entrée le nom du répertoire contenant les fichiers xml à traiter et le nom(py)/code(pl) de rubrique. Ils nous renvoient 2 fichiers contenant les informations des titres et des descriptions sous 2 formats .xml et .txt.

Le module XML::RSS permet notamment de créer et de mettre à jour les fichiers RSS. Le parcours de toute l'arborescence devient plus facile grâce à ce module, ainsi que l'extraction des informations prévues grâce aux fonctions préexistées.

Une autre solution pour extaire les titres et les descriptions s'agit d'une requête XQuery, lancée sur le logiciel BaseX. Afin de pouvoir fouiller notre arborescence sur BaseX, il faut créer une base de données. On peut spécifier un motif que le logiciel utilisera pour sélectionner les fichiers xml qu'il rencontre. Une première base de données pourrait donc être créée avec l'identifiant de rubrique "3208", par exemple. Ensuite, on peut effectuer notre requête pour extraire les titres et les descriptions.



Résultats

Après le traitement de notre première boîte, nous obtenons des fichiers XML et TXT comme présentés ci-dessous. Ces ressources seraient également précieuses pour d'autres projets NLP. Pour les BàOs suivantes, nous prenons 3208, 3210 et 3476 comme entrées.

ID Rubrique Sortie TXT Sortie XML
3208 A la une aLaUne.txt aLaUne.xml
3210 International international.txt international.xml
3214 Europe europe.txt europe.xml
3224 Société societe.txt societe.xml
3232 Idées idees.txt idees.xml
3234 Economie economie.txt economie.xml
3236 Actualité-Médias media.txt media.xml
3242 Sport sport.txt sport.xml
3244 Planète planete.txt planete.xml
3246 Culture culture.txt culture.xml
3260 Livres livres.txt livres.xml
3476 Cinéma cinema.txt cinema.xml
3546 Voyage voyage.txt voyage.xml
651865 Technologies tech.txt tech.xml
TOUT TOUT tout.txt tout.xml