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

Projet Nuages : Phase 2 / Etape 3 – Création du format d’entrée pour la chaîne d’information mutuelle (par Aurélia et Virginie)

Posted in Fil(s) de Presse, pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 26 avril 2006


Il s'agit de créer, à partir d'un fichier xml contenant les occurrences d'une forme, un fichier texte qui pourra être utilisé par les programmes qui constituent la chaîne d'information mutuelle. Cette chaîne permet de faire ressortir les mots qui s'attirent. Voir la description.

Le format d'entrée doit être sous la forme d'une suite de fenêtres (explications dans la description ci-dessus). Dans notre cas on considère que chaque balise description constistue une fenêtre.

Explications du programme :

#!/usr/bin/perl
print "Quel est le fichier à filtrer?\n" ;
$fichier=<STDIN> ;
chomp $fichier ;
open(FILEINPUT,"$fichier") ;
open(TEMP,">im.txt") ;
while ($ligne = <FILEINPUT>){
open(FILEOUTPUT,">res.txt") ;
# On recherche dans chaque ligne la balise description suivie de n'importe quels caractères suivi d'une balise fin de link suivi de n'importe quels caractères.
$ligne=~/(<description>.*<\/link>)(.*)/;
# On enregistre le contenu des variables mémorisé par les parenthèses lors de la recherche.
$date=$1;
$des=$2;
# On retire les balises MOT.
$des=~s/<\/?MOT>//g;
# On sépare le texte en un mot par ligne.
$des=~s/([ ,\;:!?\.'\"\(\)])/\n$1\n/g;
$des=~s/(<content>)/$1\n/g;

print FILEOUTPUT "$date $des" ;
close (FILEOUTPUT);

# Lancement du TreeTagger sur le fichier que l'on vient de créer.
system ("bin/tree-tagger.exe -token lib/french.par res.txt tree.txt");
open (TREE,"tree.txt");

while ($ligne=<TREE>){
# Dans le fichier étiqueté on remplace les tabulations par un underscore.
$ligne=~s/\t/_/;
# Remplacement des balises de fin de description par une balise FinFenetre nécessaire au programme d'information mutuelle.
$ligne=~s/(\/description.*)/\r\n<FinFenetre\/>\r\n/;
$ligne=~s/ //g;
# Modification des fins de ligne ^M par \r.
$ligne=~s/^M/\r/g;

# Impression dans le fichier de sortie quand il ne s'agit pas d'une ligne vide.
if ($ligne!~/^$/){
print TEMP "$ligne";
}
}
}

close(TREE);
close(FILEINPUT);
close(FILEOUTPUT);
close(TEMP);

Voir le fichier de résultats pour aviaire et celui pour chikungunya.

Publicités

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :