pluriTAL – BLOG Master pluriTAL [ParisX, ParisIII, INALCO]

Pour Françoise

Posted in Boîte à Outils, Master TAL Recherche, pluriTAL, Projet 2008-2009 by pluritaluser on 15 mars 2009

#/usr/bin/perl

my $rep= »$ARGV[0] »;

$rep=~ s/[\/]$//;

my $DUMPFULL1= » »;

my %tableaudestextes=(); #—————————————-

my $output1= »test1.xml »;

if (!open (FILEOUT, »>$output1″)) { die « Pb a l’ouverture du fichier $output1 »};

&parcoursarborescencefichiers($rep);

sub parcoursarborescencefichiers {

 my $path = shift(@_);

opendir(DIR, $path) or die « can’t open $path: $!\n »;

my @files = readdir(DIR);

closedir(DIR);

foreach my $file (@files) {

next if $file =~ /^\.\.?$/;

 $file = $path. »/ ».$file;

if (-d $file) {

&parcoursarborescencefichiers($file);

}

if (-f $file) {

if ($file=~/\.xml/){

open(FILEIN,$file);

printf « $file\n »;

   while ($ligne = <FILEIN>){

    if ($ligne=~/<description>([^<]+)<\/description>/){ 
 my $propre=$1;

 if (exists($tableaudestextes{$propre})) {

$tableaudestextes{$propre}++;

}

 else {

$DUMPFULL1.= »$propre\n »;

 $tableaudestextes{$propre}++;

}

}

}

}

 close(FILEIN);

}

 }

}

print FILEOUT « <?xml version=\ »1.0\ » encoding=\ »iso-8859-1\ » ?>\n »;
print FILEOUT « <PARCOURS>\n »;
print FILEOUT « <NOM> </NOM>\n »;
print FILEOUT « <FILTRAGE> ».$DUMPFULL1. »</FILTRAGE>\n »;
print FILEOUT « </PARCOURS>\n »;
close(FILEOUT);
exit;

Publicités

Notre blog

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 11 février 2009

Voici notre blog :

http://marconassimperl.over-blog.com/

Marco & Nassim.

Tragédie grecque des statistiques du corpus

Posted in Boîte à Outils, Projet 2008-2009 by pluritaluser on 3 février 2009

Nous avons lancé le script et nous avons constaté ce qui suit :

 

Le fichier xml de sortie présentait des répétitions de bouts de texte placés de façon aléatoire.

En premier lieu, nous avons pensé à une erreur dans le code PERL. Cependant, en analysant manuellement les fichiers xml, un par un, nous nous sommes aperçu que la rubrique que nous avons choisie (technologie : 2,0.-651865. 1-0-0) n’était pas mise à jour quotidiennement.

En regardant le résultat affiché pendant l’exécution du code, le script traitait le dossier dans un ordre qui ne correspondait pas l’ordre temporel, c’est-à-dire 1-10-11-12-13-14-15-2 etc., au lieu de 1-2-3-4-5 etc. Il manquait donc un zéro avant les unités.

Ces deux phénomènes associés engendraient le mauvais résultat obtenu au départ (doublons).

 Une question de nature éthique s’impose :

Est-ce qu’on doit être fidèles aux statistiques donc inclure les doublons ?

Marco & Nassim.

Question de codage caractères spéciaux XML

Posted in Boîte à Outils, Projet 2008-2009 by pluritaluser on 20 janvier 2009

Nous avons jeté un premier coup d’oeil au nouveau projet et, comme d’habitude, nous avons constaté des petits soucis de codage, notamment pour ce qui concerne les caractères spéciaux d’XML, par exemple  l’apostrophe, les guillemets et le &.

En effet, quand nous voulons afficher à l’écran ces caractères, il est nécessaire de les écrire avec une notation spéciale, soit en décimal, soit en hexadécimal. Par exemple, la notation que nous avons repérée pour l’apostrophe dans un des fichiers xml de notre corpus, est la suivante:

&#39

39 étant le code décimal de l’apostrophe en ASCII.

Nous nous sommes donc demandé comment il faudra eventuellement traiter ce genre de caractères.

Marco & Nassim

Sondage – la philosophie du script

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 3 décembre 2008

Ce message est adressé à tout le groupe du Master 1 et veut être un sondage sur les choix structurels que vous avez effectués pour votre script.

Depuis ce matin, en effet, je crois que mon script est en plein milieu d’une crise d’identité. En parlant un peu de ça à certains d’entre vous, j’ai dégagé deux « philosophies » de base:

1) Ligne sur ligne, c’est-à-dire généralement une boucle for après l’autre;

2) Boucle dans la boucle, c’est-à-dire une boucle for principale qui en inclut d’autres;

Or, je me pose peut-être trop de questions, mais je crois que la première « école » est assez particulariste et ponctuelle, alors que la deuxième est généraliste. Mon souci est donc le suivant:

est-ce que nous devons réaliser un script utilisable par d’autres personnes?

Merci de bien vouloir répondre à cet article: il pourrait non seulement fournir des données statistiques, mais aussi dégager une question « éthique ».

Marco

La nausée d’effacer les fichiers à la main

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 2 décembre 2008

Tout d’abord, merci à Agnieszka, Sophie et Marie pour la fabuleuse idée du petit script « destructeur » qui rend la vie plus serène et moins chaotique.

Totalement persuadé de la nécessité de cet outil, j’ai fouillé dans les options de la commande rm, afin de savoir s’il y avait une solution minimaliste au problème quotidien de l’élimination de nos fameux fichiers. Et bien, il y a l’option -i, qui demande à chaque fois de confirmer la suppression des fichiers, un par un:

rm: remove file ‘blablabla.bla’?

On tape y ou n un nombre énième de fois et c’est fini. Presque plus lourd que l’élimination manuelle, mais au moins on fait ça avec une commande Unix, sous un environnement Unix.

Ensuite, j’ai trouvé l’incroyable option -I (i majuscule), qui demande de confirmer la suppression des fichiers seulement 1 fois pour un ensemble de plus de 3 fichiers:

rm: remove all arguments?

On tape la confirmation et les jeux sont faits!

En dernier lieu, l’option -v affiche à l’écran les fichiers qui viennent d’être écrasés.

Voici donc ma version du script « destructeur »:

#!/bin/bash
echo "fais-gaffe à ce que tu vas faire...si tu tapes \"y\"
tu vas tout effacer, si tu tapes \"n\" tu vas rien faire";
rm -I -v ./CONTEXTES/*.*;
rm -I -v ./PAGES-ASPIREES/*.*;
rm -I -v ./DUMP-TEXT/*.*;
echo "maintenant je vais écraser le tableau";
rm -i -v ./TABLEAUX/*.*;
echo "congratulations, t'as plus rien!";

J’ai testé mon script sur les machines de l’ILPGA et avec grand malheur j’ai constaté que la version de rm installée ne contient pas l’option -I…Quelle déception!!!

Les machines, comme les être humains, sont toutes différentes!

Marco

P.S.: *.* – Peut-être l’expression régulière pour les fichiers la plus simple au monde (et la plus méchante)?

Notre blog

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 19 novembre 2008

Voici notre Blog : http://laviedesmotssurleweb.hautetfort.com/
Cécile / Anna/ Nassim

man wget

Posted in Projet 2008-2009 by tal-p3 on 11 novembre 2008

(cf message précédent…)

L’entrée du manuel pour wget sous cygwin donne la chose suivante (extrait) :

On peut aussi trouver de la documentation en ligne, par exemple ici : man wget (en français)

SF

Modif 1er script

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 10 novembre 2008

On a enlevé les 2 premiers « echo » du script fait-tablo v1 et on a enregistré les lignes de commandes qui correspondent à ces 2 « echo » sur un fichier txt dans notepad (donnees_frc pour les donnees en français, donnees_angl pour donnees en anglais et donnees_pl pour donnees en plonais . Dans ce fichier txt on a ecrit  ../URL/urlfrançais.txt et ../TABLEAUX/tableauenfrancaisavecclik.html , exemple du français) .

On a pris le premier script fait-tablo v1 et pour rendre les url cliquables dans le tableau,
on a ajouté la balise <href> dans le 1er echo de la boucle for

on execute donc 3 fois la commande sh + le script fait-tableau v1 modifié + < + donnes_frc (ou angl ou pl )

Cécile Darmé, Nassim Zellal et Anna Anna

Comment fonctionne WGET ?

Posted in Projet 2008-2009 by pluritaluser on 10 novembre 2008

WGET est un logiciel de téléchargement libre. Il permet le téléchargement de fichiers sur des réseaux et internet. Il est écrit en C. Il est principalement utilisé sous Unix.

Après avoir aspiré les fichiers, il vérifie automatiquement si il a eu des mises à jour sur les fichiers aspirés.

Pour l’utiliser, on entre dans la fenêtre de commande : wget http://…&#8230; (une URL)

Je pense qu’on pourrait peut être utiliser les chevrons pour dire qu’on veut prendre les fichiers des URLS contenus dans nos tableaux ( wget < tablo.txt). Par contre,  je n’ai pas bien compris quel format prendrait le résultat de l’aspiration et je ne sais pas non plus vers où on redirigera ce résultat.

Sophie PAPAZOGLOU

Wget – Ce qui se passe probablement avec wget

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 8 novembre 2008
J’ai tapé à l’écran une commande bash pour qu’elle éxécute mon programme V1PT.sh qui sert à récupérer un corpus pour le mot bouchon en lui demandant d’annoter tout ce qui se passe dans le répertoire où j’étais grâce à 2>>:
$ sh ./PROGRAMMES/V1PT.sh < ./PROGRAMMES/donneespt.txt 2>>wgetexplique.txt

D’après wgetexplique.txt, wget télécharge les pages en commençant par l’adresse http:// mentionée à première ligne du fichier texte et en terminant par celle de la dernière ligne de celui-ci. Puis passe au fichier texte d’après dont l’emplacement est référencé dans donneespt.txt. Il compte chaque page téléchargée de telle sorte que i=i+1 grâce à la commande let « i+=1 » et assigne chaque numéro de page html au nom de la page téléchargée ./PAGES-ASPIREES/$i.html. Toutes les pages sont stockées dans le répertoire choisi qui s’appelle /PAGES-ASPIREES/ à l’adresse relative choisie.
D’après l’aide de wget (wget -h), wget-O écrit des documents dans un fichier (write documents to file), c’est à dire prend le code source de l’adresse http:// à laquelle $nom1 se réfère à chaque fois que la boucle tourne, et l’écrit dans un fichier tout neuf dont le nom est identique au décompte des page ($i) et qui est transformé en fichier .html grâce à l’extension. En tout cas je pense, qu’on peut décoder ce que la commande wget -O ./PAGES-ASPIREES/$i.html $nom1 fait de cette manière-là.
De plus d’après wgetexplique.txt, il note dans les propriétés de chaque page la date et l’heure de sa création (exemple: –2008-11-08 15:44:19–). A chaque fois qu’il télécharge, il prend en compte le nom de domaine et l’adresse IP du site, il s’y connecte, puis il envoi une demande, probablement une demande d’autorisation pour télécharger la page, puis la page lui dit OK. Puis il estime la longueur de la page et le type de fichier dont il s’agit [text/html] puis il sauve la page vers ./PAGES-ASPIREES/$i.html. Et une fois que le processus est finalisé il dit OK et donne la vitesse de comunication en Kilobits par secondes.
Françoise Del Socorro

Wget installé !!! Comment installer une commande cygwin ? :)

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 6 novembre 2008

J’ai/on a réussi à intégrer le V2 au V1, il suffit de se demander comment on veut que le/les tableaux aient 2 colonnes en .html sans redondances, et de regarder ce qui est dans la boucle et ce qui est en-dehors, et de ne mettre qu’un seul compteur si on a plusieurs tableaux.

(WGET peut-être pas encore installé)

Quand à la commande wget, je pense qu’il faut l’installer à partir du miroir dans lequel on a pris le programme, il y a un site web qui donne des conseils d’installation, ça marche avec des arrangements jusqu’à la fin mais il y a des choses qu’il ne trouve pas:

http://www.scsh.net/docu/post/cygwin-reinstall.html

Rem: Mettre wget dans un répertoire et réfléchir en fonction du répertoire où le fichier  » configure  » se trouve.

"3. wget http://ftp.scsh.net/pub/scsh/0.6/scsh-0.6.2.tar.gz
4. tar -zxf scsh-0.6.2.tar.gz
5. ./configure, make, ./go
Welcome to scsh 0.6.2 (Gambit-C 4.0)
Type ,? for help.
> scsh 0.6.2 builds and runs fine under cygwin/win2k."

Donc je vais essayer avec mon mirroir (site d’installation) pour qu’il ne cherche que des fichiers que j’ai. http://www.goh4.com/cygwin/release-2/wget/

Je ne sais pas encore si ça va marcher, je verrai ça samedi. Si je n’y arrive pas, je vous le dirai.

Après je suppose qu’il doit aspirer les pages.

(wget installé !!!!)

Un grand ami informaticien m’a aidé !
  1. Aller sur http://www.cygwin.com/
  2. Cliquer sur install or update now
  3. Choisir install from internet
  4. Choisir ftp://cygwin.basemirror.de car l’allemagne c’est plus proche.
  5. Mettre View sur Full et rester sur la fenêtre.
  6. Regarder dans la même fenêtre dans Package (tout au fond).
  7. Chercher wget dans la colonne de Package.
  8. Dans la même fenêtre cliquer sur skip de manière à ce qu’il devienne 1.11.3-1 (nom de la version) et la prendre en binaire.
  9. Suivant.
  10. Downloading.
  11. Lancer cygwin (Pas le setup, le programme !)
  12. Taper wget -h
  13. waw toute une explication sur wget apparaît.
  14. Donc pour savoir si vous avez wget d’installé ou pas ? Il suffit de taper à l’écran wget -h (je pense que c’est le help de wget)
  15. Maintenant il faut tester…

Françoise Del Socorro

Et pour plus de précisions:

Lancer le setup.exe de cygwin sous windows pour les updates et pour aditionner des nouveaux packages. Et vérifier que  » install  » est écrit à la place de  » skip  » ou de  » default  » pour chaque package qu’on veut installer.

Détails pour installer le CD:

1.    Recopiez l’intégralité du CD dans le répertoire C:\cygwin\downloads
2.    Cliquer sur le setup.exe
3.    Choisir Install from local directory
4.    Choisissez comme Root Directory C:\cygwin
5.    Choisissez comme Local Package Directory C:\cygwin\downloads
Pourquoi ? – Parce que lorsqu’on lance le setup.exe cygwin s’installe en écrasant ses propres fichiers. Donc il faut que l’emplacement du  Local Package Directory = l’emplacement de setup.exe dans C:\ et que C:\ soit ré-inscriptible.
6.    Dans la fenêtre Select Packages, s’assurer que tous les Packages sont sur Install et pas sur Default, et il ne suffit pas que All soit tout seul sur Install, il faut que tout soit sur Install.
7.    Suivant.
8.    Downloading.
9.    Lancer cygwin (Pas le setup, le programme !)
10.   Lancer nom de la commande –h ou man nom de la commande pour vérifier qu’elle est installée.
11.   Cependant même lorsque cygwin est téléchargé complètement, il n’est jamais téléchargé complètement, si on relance tous les install à partir de internet, il fait le update de tout et il rajoute d’autres options et d’autres versions anciennes ou nouvelles ce qui fait que le programme grossit exponentiellement.

Détails pour installer une commande :

1.    Chercher dans le moteur de recherche de cygwin http://cygwin.com/packages/ comment se nomme le package où se trouve la commande que vous voulez installer. La plus part des fois nom du package = nom de la commande.
2.    Si vous ne savez pas où vous avez mis votre setup.exe, allez sur http://cygwin.com/ cliquez sur Install or Update now pour obtenir un autre.
3.    Attention : l’emplacement du setup.exe = l’emplacement des downloads = l’emplacement des programmes installés. Or Mozilla met tout sur le desktop, donc tout fermer et tout déplacer vers le répertoire où vous souhaitez l’installer (par exemple C:\cygwin\downloads)
4.    Cliquer sur setup.exe
5.    Choisir Install from internet
6.    Choisir http://ftp.uni-kl.de car l’Allemagne c’est plus proche.
7.    Dans la fenêtre Select Packages mettre View sur Full et rester sur la fenêtre.
8.    Regarder dans la même fenêtre la colonne intitulée Package (tout au fond).
9.    Chercher votre package (normalement nom du package = nom de la commande) dans la colonne de Package.
10.   Dans la même fenêtre cliquer sur skip de manière à ce qu’il devienne le nom de la nouvelle version (exemple: 1.11.3-1 ) et la prendre en binaire.
11.   Suivant.
12.   Downloading.
13.   Lancer cygwin (Pas le setup, le programme !)
14.   Lancer nom de la commande –h ou man nom de la commande pour vérifier qu’elle est installée.
15.   Ce test n’est pas fiable à 100% car on peut avoir installé le manuel de la commande sans avoir installé la commande même si toutes les fois où on installe la commande, on installe aussi son manuel.

(S’il y a des erreurs, c’est parce que je l’ai re-écrit 2fois)

Françoise Del Socorro

Comment taper sur les Fichier Texte et Cygwin des caractères qu’on n’a pas sur son clavier ?

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 1 novembre 2008
Je n’ai pas les symboles inférieur et supérieur sur mon clavier d’ordinateur portable. J’ai demandé à la prof d’informatique de l’Inalco si elle connaît une façon d’obtenir ces symboles avec des raccourcis, elle m’a dit de regarder sur mon clavier visuel, mais comme apparement son clavier visuel avait moins de touches que son clavier physique, elle m’a dit qu’elle allait chercher pour moi. Mais là j’ai regardé calmement chez moi et elle avait raison:
Programmes > Accessoires > Accessibilité > Clavier visuel
On peut changer le visuel de son clavier visuel en choisissant 102 touches.
http://www.microsoft.com/france/accessibilite/training/windowsvista/osklayout.aspx
On peut avoir des alphabets d’une autre nature sur son clavier visuel à condition d’avoir déclaré qu’on a installé Office de Microsoft.
http://www.microsoft.com/downloads/details.aspx?familyid=86A21CBA-E9F6-41DB-86EB-2ADFE407E620&displaylang=fr#AffinityDownloads
Mais comme j’ai accidentellement effacé des fichiers permettant à Word 2004 d’être mis à jour sur mon ordinateur et que ça m’empêchait d’installer des logiciels gratuits qui n’ont rien à voir avec Microsoft mais qui cherchent Word, j’ai dit à mon ordinateur que j’ai supprimé Word et je ne peux pas installer les autres langues de Microsoft sur mon clavier visuel:
http://www.technotes.co.uk/sku011-cab
Ce pendant je viens de découvrir qu’il existe plein de claviers virtuels gratuits / libres / freeware / opensource sur internet:
http://www.cvk.fr/
En résumé sur le clavier virtuel de Windows à défaut on peut:
Changer le visuel de son clavier visuel en choisissant 102 touches.
Faire en sorte qu’il obéisse au passage de la souris ou au clic sur la souris.
Paramètres > mode de saisie > pointer pour sélectionner
Paramètres > mode de saisie > cliquer pour sélectionner
Avec Texte Open Office (et la famille de logiciels gratuits Open Office) au départ le clavier Visuel de Windows ne voulait pas fonctionner, et là il a accepté. Je n’ai pas essayé les autres claviers gratuits. Mais en tout cas on peut avoir les signes supérieur > et inférieur < sur Cygwin et Notepad++ et faire des pages HTML et des transfert de contenus.

Françoise Del Socorro

助けて ( help)

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 29 octobre 2008

Incapable de faire une copie de l’écran noir, je recopie, avec mes gros doigts malhabiles ce que j’y ai écrit:

cd /cygdrive/d/MASTER_TAL/PROJET_MOT_SUR_WEB/PROGRAMMES

sh fait-tableau-v1.sh

Reaction de la machine:

Donnez le nom du fichier contenant les liens http:

fait-tableau-v1.sh: line 2: $’\r’: command not found

et voila,

Alain Courrier

_____

Tapez alors en allumant cygwin :

cd /cygdrive/d/MASTER_TAL/PROJET_MOT_SUR_WEB/PROGRAMMES

dos2unix fait-tableau-v1.sh

Richard

____

Merci pour ta constance à m’aider.

je tapes donc ça:

cd /cygdrive/d/MASTER_TAL/PROJET_MOT_SUR_WEB/PROGRAMMES

je fais « entrée » (pwd me confirme que je suis au bon endroit).

je tape:

dos2unix fait-tableau-v1.sh

Je fais « entrée »

le $ apparait,suivi d’une ligne vide.

Je tapes:

sh fait-tableau-v1.sh

Je fais « entrée » et retrouve:

« Donnez le nom du fichier contenant les liens http:

fait-tableau-v1.sh: line 2: $’\r’: command not found »

Alain Courrier

_____

il y a alors un problème car normalement lorsque l’on transcode un fichier il doit y avoir  une réponse de l’ordinateur telle que :

« fait-tableau-v1.sh : done »

Si aucun message de ce type n’apparait, c’est que le transcodage n’a pas été correctement effectué voire pas du tout.

Peut-être la version de cygwin utilisée n’est pas la plus récente. Dans ce cas là je préconise une mise à jour via internet. (mais je doute que ce soit là le problème…

Sinon une autre solution serait de retaper à partir de zéro un fichier sur notepad. (Parfois, il arrive que les copier/coller donne des résultats pas super.) Une fois la démarche effectuée, faire un dos2unix au besoin.

Si rien ne marche, là je sais plus trop quoi proposer. (Enfin, je proposerai peut-être des coups de marteau dans l’ordi mais ça arrange pas le problème… (ni le portefeuille en général…))

Tagged with:

La commande wget

Posted in pluriTAL, Projet 2008-2009 by pluritaluser on 29 octobre 2008

Voici donc la commande que nous allons devoir utiliser afin de recueillir les pages web sélectionnées.

Deux petits détails me posent toutefois problème.
En effet, après quelques expérimentations d’aspiration, je remarque que tous les sites web ne sont pas forcément aspirés.
Certains, semble-t-il, échouent lors du téléchargement.
Le second soucis est dans un but plus « pratique », puisqu’il s’agit de savoir comment inclure dans le tableau des pages entières de textes qui ne sont pas sous la forme d’un fichier comme pour les liens mais sous la forme de plein de fichiers (qui d’ailleurs ne sont pas forcément en format html).

Enfin, je me suis permis de changer quelques détails sur le script de mon précédent article de sorte qu’il apparaisse de façon automatique un titre pour chaque tableau.
(ATTENTION ! Ceci est vrai à la condition expresse que le nom de chaque fichier txt soit écrit d’une manière qu’il puisse être traité automatiquement.
« Liens en arabe d’égalité » doit donc être intitulé Liens_en_arabe_d-egalite.txt .)

_____

Concernant le transcodage du script :

je précise, au cas où, qu’il ne faut pas oublier de positionner le répertoire courant là où se situent les scripts, à défaut de quoi, il faudra taper toute l’arborescence.
(dans le genre : dos2unix /home/administrateur/plurital/PROGRAMMES/fait-tableau-v1.sh .)

Si ça ne marche pas malgré tout, faire un copier/coller du message qui apparait dans cygwin permettrait d’en savoir plus.

Bien cordialement,

Richard Delaplace