Accueil BaO1 BaO2 BaO3 BaO4

BOITE A OUTILS 1

Boîte à outils 1

Extraction du contenu textuel

Le but de la 1ère boîte à outils est de parcourir l'arborescence et d'extraire le contenu textuel des balises 'title' et 'description' de la rubrique qui nous intéresse dans des fichiers .xml des fils RSS du Monde. Les résultats doivent être stockés dans deux fichiers (avec le même contenu) par rubrique aux formats .txt et .xml. Ces fichiers seront utilisés dans la suite de la chaîne de traitement.

Perl

Extraction avec les expressions régulières

La méthode d'extraction du contenu textuel grâce aux expressions régulières en Perl fonctionne de la même façon qu'egrep d'Unix. Les fichiers .xml des fils RSS ont tous la même structure, ce qui nous permet de créer une expression régulière qui correspondent à "cherche tout ce qu'il y a entre les balises 'title' et 'description'". Le résultat de la recherche sera concaténé dans une variable. Pour pouvoir parcourir toute l'arborescence on précise dans le script qu'on effectue la recherche globale.
Dans le script on effectue également quelques fonctions supplémentaires pour adapter le texte au traitement suivant. Ainsi, on applique la fonction de nettoyage (e.g. elle supprime des entités html), on ajoute un point à la fin de chaque titre et on vérifie qu'il n'y a pas de doublons parmi les titres et les descriptions.
Pour lancer le script dans la ligne de commande:
perl bo1.pl *nom_de_répertoire* *nom_de_rubrique*


Python

Python possède plusieurs modules utiles qui permettent de traiter les fichiers .xml dans une arborescence. Une petite notice sur les modules découverts pour la création de la BaO1:
  • sys - le module qui lit la liste des arguments passée à la ligne de commande;
  • os.walk() - une méthode qui génère les noms des fichiers en parcourant l'arborescence;
  • xml.etree.ElementTree - le module qui permet le traitement des fichiers .xml.

  • Pendant l'exécution du script un problème a été rencontré. Pour certains fichiers, un message d'erreur indiquant que la description est vide apparaissait. Pour régler ce problème une condition a été rajouter - remplir par "nnnnnnn" lorsque la description est vide. Après avoir appliqué cette condition le message d'erreur a disparu.
    Le script en Python parcourt l'arborescence et cherche le texte qui se trouve entre les balises 'title' et 'description' grâce au modul de xml. Le résultat est écrit dans le fichier .xml et aussi .txt. A chaque itération, le nouveau contenu est ajouté dans ces fichiers.

    Pour lancer le script dans la ligne de commande il faut saisir:
    python3 B1.py *nom_de_répertoire* *nom_de_rubrique*
    Et voici le script:

    Avec ce script on obtient les résultats suivants: