Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
bernardins.overblog.com

Le Monde du 2e semestre

Le but du Projet du 2e semestre est de traiter le corpus des fils RSS du journal Le Monde automatiquement.

Pour cela, à partir d'un script perl fourni obligeamment par nos GP (Gentils Professeurs) qui permet de parcourir l'arborescence d'un corpus réduit (le mois de janvier 2008), il faut récupérer le titre et la description des fils (aux formats txt et xml, en utf8).

Plusieurs problèmes à résoudre :

  1. éviter de récupérer le titre général du fil. C'est facile : il suffit de préciser que la balise <item> doit figurer juste avant la balise <title>. Pour cela, il vaut mieux supprimer tout ce qui peut se trouver entre les chevrons > et < grâce à une REGEX.

  2. supprimer toutes les entités HTML qui polluent la lecture. Sur le site d'un <a href "http://www.tal.univ-paris3.fr/plurital/travaux-2011-2012/projets-2011-2012-S2/Arij_SEDIRI/BAO1.html">étudiant</a> de l'an dernier, figure une liste très complète qu'il suffit de recopier dans une procédure.

  3. envisager qu'il n'y ait pas de retour à la ligne, ce qui retirerait toute efficacité à la recherche par ligne. La solution radicale est de supprimer <b>tous</b> les retours à la ligne avant de traiter le texte, puis d'utiliser l'option g à la fin de la REGEX pour traiter toutes les occurrences.

  4. Il faut enfin - et là je n'ai pas encore trouvé la bonne solution - transformer le texte de iso-8859-1 en utf8.

Voici le résultat :

Bout de script

Bout de script

Et voici le script qui marche très bien.

script parcours

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
C
J'ai trouvé une commande qui permet de convertir l'encodage vers UTF-8:<br /> $data = decode(&quot;iso-8859-3&quot;, $data), on l'ajoute en tête du script? <br /> pourtant, je peux pas lancer le script dans Cygwin...je trouve plus comment aller à la répertoire de destination.
Répondre
C
plutôt $data = decode(&quot;ISO-8859-1&quot;, $data); # convertit du natif vers utf-8