Boîte à outils 1

Le but de Bao1 est d'extraire tous les contenus des articles de la rubrique choisie en plus des titres des articles et le titre de la rubrique. Pour faire cela, il faut parcourir une arborescence de dossiers contenant les fichiers RSS des premiers trois mois de l'année 2008 enregistrés chaque jour à 19h. Les balises à extraire sont: <title> et <description>.

Par la suite, il faut nettoyer le texte extrait en remplaçant les caractères illisibles résultat d'un codage non convenable.

Pour faire ceci, on complète un script Perl basic existant pour l'adapter au problème concret.

La sortie du résultat sera organisée en fichier XML Sortie_Bao_1et2.xml.

Le point le plus important dans le script est le sous-programme récursif qui fait le parcours de l'arborescence, extrait le contenu des titres des articles (balise <title>) et leurs contenu (balise <description>), appel un autre sous-programme pour nettoyer l'extraction et complète un fichier XML avec le résultat obtenu.

On ajoute une marque de fin de ligne à la fin de chaque fermeture de balise pour les fichiers XML malformés qui ne contiennent qu'une seule ligne. Le problème s'est avéré pertinent, puisque le script ne fonctionnait pas sur les fichiers modifiés. De plus, le fait de modifier les fichiers malformés sur une grande arborescence prendrait beaucoup de temps. Le module Perl XML::RSS n'extrait pas entièrement le contenu des fichiers XML malformés. Donc, on s'est contentée de modifier le script pour extraire le maximum de contenu, aussi à partir des fichiers malformés qui ne sont pas écrits sur une ligne.

Dans ce sous-programme récursif sont utilisées deux boucles. Avec la première on lit le titre de la rubrique. Un flag de lecture du titre la rend inactive. La lecture du fichier continue dans la deuxième boucle. De même, on utilise des flags pour terminer la lecture d'un titre ou d'une description. Chaque extraction effectuée est associée à deux variables: une pour compléter le contenu du fichier Sortie_Bao_1et2.xml, l'autre – pour concaténer toutes les extractions dans un fichier all_extractions.txt qui sera utilisé dans la Bao2. Puisque un nettoyage est nécessaire plusieurs fois dans le script, le nettoyeur fait part d'un sous-programme qui est appelé dans le sous-programme récursif.

Résultats de Bao1:

Script Perl de Bao1 : bao1_et_2_3.pl

Résultat de Bao1 et 2 : Sortie_Bao_1et2.xml

Fichier txt avec les extractions des fils RSS : all_extractions.txt

Fichier txt avec un mot par ligne : all_tokens.txt

Fichier étiqueté avec Treetagger : Sortie_etiquetee.txt

Archive du programme utilisétreetagger-win32.zip


©  Ginka Yankova 2009