jeudi 10 janvier 2008

Fin du projet

Ça y est. Le projet est fini.
Le compte rendu final peut être consulté aux adresses suivantes :

http://pierre.inalco.free.fr/shizen/index.html

http://tal.univ-paris3.fr/plurital/travaux-2007-2008/...

A bientôt, pour de nouvelles aventures!

lundi 17 décembre 2007

script.sh: amélioration

A partir des noms des fichiers d'URL, le script crée différents répertoires et y enregistre les pages aspirées, les dumps, les contextes.
Seulement voilà : ces noms de fichiers sont utilisés tels quels, avec leurs extensions, et nous nous retrouvons avec des répertoires "quelque_chose.txt" dans notre arborescence.
Pour remédier à ce problème, nous allons utiliser la commande basename avec la syntaxe suivante:

fic2=$(basename $fic .txt)


Nous allons ensuite utiliser la chaine de caractères stockée dans la variable $fic2 pour nommer nos répertoires:

mkdir ./pg_aspirees/$fic2


vendredi 30 novembre 2007

minigrepmultilingue 1.0

La dernière étape de notre projet (avant la mise en forme finale) consiste à extraire de nos fichiers dump, un motif et son contexte. Pour un texte en français ou en anglais la commande egrep aurait suffit, mais pour du japonais et du chinois, il nous fallait un équivalent supportant Unicode.
Nous nous sommes donc tournés vers minigrepmultilingue 1.0, parfait pour ce que nous avons à faire.


i. préparation


Télécharger et décompresser minigrepmultilingue.zip (c'est l'archive contenant le script et le module Unicode-String-2.09) dans un répertoire que nous appellerons "minigrepmultilingue".



Démarrer le gestionnaire de paquets de Cygwin (setup) et vérifier que make et gcc sont bien installés (ils se trouvent dans la catégorie Devel).



Sous Cygwin, se placer dans le repertoire "minigrepmultilingue" et décompresser le module Unicode-String-2.09 :

tar xzf Unicode-String-2.09.tar.gz




ii. compilation


aller dans le dossier du module Unicode-String-2.09 et lancer le script Makefile.PL :



lancer la commande make



et enfin make test




iii. installation


pour l'installation, rien de très compliqué, il suffit juste de taper: make install




iv. test

Pour s'assurer que tout s'est passé correctement, rien de tel qu'un petit test. Selon l'exemple fourni avec le script nous allons chercher le motif основных dans le fichier RU_Convention_UTF8.txt :

perl mini-grep-multilingue.pl "UTF-8" RU_Convention_UTF8.txt motif.txt

En sortie nous avons un fichier html, ca marche!




Pour plus d'informations: http://www.cavi.univ-paris3.fr/ilpga/ilpga/...

lynx -dump

Une fois nos pages aspirées avec wget, nous devons en extraire le texte.
Pour ce faire nous allons utiliser l'option dump de lynx
La syntaxe est la suivante:

lynx -dump [URL] > [dump].txt


w3m, un autre navigateur internet en mode texte, permet de faire la même opération. Mais attention! w3m gérant les frames il arrive que le fichier dump en sortie soit incompréhensible (des morceaux de textes de différentes parties de la page pouvant être mélangés).

vendredi 16 novembre 2007

%0D?

Mettre wget dans un script BASh devait permettre d'automatiser la tâche d'aspiration de mes pages. J'ai écrit un script qui parcourt chaque ligne (donc adresse) du fichier d'URL, extrait chacune des pages à l'aide de wget et, dans un tableau nouvellement créé, donne un lien vers la page online et un autre vers la page aspirée.
Tout allait pour le mieux dans le meilleur des mondes jusqu'à ce que je me rende compte que script.sh (c'est son petit nom) ne faisait pas ce que je lui avais demandé:


Que se passe t-il? J'ai beau vérifier mon script encore et encore, le réécrire de A à Z, essayer avec différents fichiers d'URL... wget n'arrive pas à trouver les pages que je lui demande d'aspirer.
Mais alors que je regarde ma fenêtre Cygwin d'un peu plus près, je remarque que les URL qui apparaissent dans mon script se terminent toutes par %0D... %0D! Ce serait pas un caractère de contrôle ça? Comme celui qui permet de faire un retour chariot? Je vérifie à nouveau le fichier texte contenant mes URL: comme je m'en doutais, %0D n'apparait nul part.



Tout devient clair! Les retours à la ligne de mes fichiers textes (tapés sous Windows XP) sont interprétés différemment par Cygwin (qui émule un système UNIX). Notepad++, entre autres, permet de régler ce problème en un seul click:



Je peux maintenant relancer mon script et constater avec satisfaction que le problème est résolu: