Boîte à outils 1

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

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, dont on se servira pour les étapes suivantes. On veut obtenir un fichier par rubrique. Notre corpus étant une arborescence, il va falloir le parcourir pour aller chercher uniquement les fichiers xml qui nous intéressent, soit les fichiers correspondant au flux RSS d'une rubrique du journal.

OBJECTIFS

MÉTHODES

Tous les fichiers xml ont la même structure, ce qui nous permet d'élaborer un seul script pour aller récupérer automatiquement les contenus pertinents. Afin de réaliser cette première tâche, nous avons utilisé un script Perl, un langage de programmation effectif au traitement des données textuelles ou langagières. Deux méthodes sont proposées pour effectuer l’extraction du texte :

Extraction grâce à des expressions régulières

Puisque nous connaissons déjà la structure de nos fichiers XML, nous pouvons élaborer une expression régulière pour matcher le contenu que nous devons trouver, et enregistrer ce contenu en mémoire pour pouvoir le traiter ensuite. Il convient ici de mentionner la fonction de regroupement des expressions régulières, qui permet d'utiliser des parenthèses pour définir des sous-expressions (également appelées "regroupement"), le contenu de ces sous-expressions pouvant être traité ultérieurement. Mais avant de capturer les contenus dont on a besoin, un petit nettoyage est nécessaire. Nous avons enlever tous les espaces, retours à la ligne etc. grâce à un sous-programme dans perl.

Le résultat d'exécution du programme est composé de deux fichiers : un fichier texte où les textes entre les balises titre et les balises description s’alternent, et un fichier XML où les couples titre/description sont contenus au sein de balises <item> (avec des balises <titre> et <description>).

Le progamme se lance comme suit :

perl programme_perl dossier_fils_RSS rubrique

Par exemple :

perl bao1.pl 2020 3208

N.B.: n’oubliez pas de changer de répertoire si votre dossier fils_RSS n’est pas dans le même dossier que le script.

Le programme et les résultats obtenus pour chaque rubrique sont disponibles ci-dessous.

Extraction grâce à XML::RSS

Cette seconde méthode utilise une bibliothèque de Perl : XML::RSS. En lui donnant les balises <title> et <description>, ce module nous permet d'extraire les contenus des balises. Ici, il suffit de remplacer la partie des expressions régulières du script précédent par le traitement de XML::RSS, tout le reste ne change pas.

Par contre, pour pouvoir utiliser XML::RSS, il faut qu'il soit disponible dans notre environnement. Dans le terminal, on exécute les commandes suivante pour l’installation :

Le programme se lance comme celui des expressions régulières(en changeant le nom du script bien sûr).

Le programme et les résultats obtenus pour chaque rubrique sont disponibles ci-dessous.

Comparaison des scripts : avec RegEx ou avec XML::RSS

Les contenus des résultats obtenus grâce aux deux programmes sont sensiblement les mêmes. Cependant on a l'impression que le script avec les expressions régulières a fourni des résultats très rapidement, et XML::RSS était beaucoup plus lent. Pour confirmer cette sensation, nous avons ajouté une fonction Timer::Simple() (Veuillez vous référer au XML::RSS ci-dessus pour l'installation) dans notre script pour mesurer le temps utilisé. Le premier est celui avec Regex, et le second est avec XML::RSS