#/usr/bin/perl <du fichierdu filtrage DOC #----------------------------------------------------------- $ARGV[0]="Mar/8"; my $rep="$ARGV[0]"; # on s'assure que le nom du répertoire ne se termine pas par un "/" $rep=~ s/[\/]$//; # on initialise une variable contenant le flux de sortie my $DUMPFULL1=""; #---------------------------------------- my $output1="SORTIE_ETIQUETTAGE.xml"; if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"}; open (OUTTAG, ">>resultat_tag.txt"); #---------------------------------------- #récupérer la date du jour sous forme de jj/mm/annee my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); my $date_du_jour = $mday."/".($mon+1)."/".(1900+$year); #-------------------------------------- &parcoursarborescencefichiers($rep); #recurse! #---------------------------------------- print FILEOUT "\n"; print FILEOUT "\n"; print FILEOUT "\n"; print FILEOUT " Nacer(Massinissa) HAMRI \n"; print FILEOUT " ".$date_du_jour." \n"; print FILEOUT "".$DUMPFULL1."\n"; print FILEOUT "\n"; close(FILEOUT); exit; #---------------------------------------------- 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); #recurse! } if (-f $file) { if (($file=~/AFP-stories\.xml/) || ($file=~/0,2-.*\.xml/)) { # TRAITEMENT à réaliser sur chaque fichier open(FILEINPUT,"$file"); print "$file\n"; $fichier = ""; $nom = "$file"; $fichier .= "".$nom.""; $contenu = ""; while ($ligne = ){ if ($ligne=~/(.*)<\/description>/) { #$ligne =~ s// /g; #$ligne =~ s/<\/description>/ /g; #************************ $lignetmp = $1; $lignetmp=~ s/&#39;/\'/g; # &#39; = apostrophe#39; $lignetmp=~ s/&#34;/"/g; # &#34; = guillemets ouvrants ou fermants. $lignetmp=~ s/é/é/g; # é = é $lignetmp=~ s/é/é/g; $lignetmp=~ s/ê/ê/g; # ê = ê= accent circonflexe $lignetmp=~ s/ê/ê/g; #ê ê= accent circonflexe $lignetmp=~ s/è/è/g; $lignetmp=~ s/Ã/à/g; $lignetmp=~ s/ç/ç/g; $lignetmp=~ s/à§/ç/g; $lignetmp=~ s/ô/ô/g; $lignetmp=~ s/"//g; $lignetmp=~ s/[ ,.;:?!'_]/\n/g; #************************** open (TEXTE,">>texte.txt"); #On est dans la "structure condition" qui concerne les fichiers de l'arborescence, pris un à un. Pour chaque fichier (F, $file) il va être créé un fichier texte (temporaire) dans lequel sera affiché le contenu extrait et organisé "un mot par ligne". Dans un premier temps, Tree-tagger va étiqueter dans ces fichiers séparés. En sortie, on doit remettre ces résultats au format demandé (voir instructions). print TEXTE $lignetmp; #Les résultats après les remplacements faits par $temp sont écrits dans un fichier .txt.(pour qu'il puisse être traité par Tree-Tagger. Reste à trouver une variable pour stocker les résultats de CHAQUE FICHIER de l'arborescence. close (TEXTE); $ENV{'PATH'} = "./D/massi/etiquetage/bin;"; system("set $ENV{'PATH'}"); system("./bin/tree-tagger.exe -token -lemma -no-unknown ./lib/french.par texte.txt outtagger.txt"); open (FICTAG, "outtagger.txt") or die "impossible ouvrir le fichier"; #***************************** #traitement ************* while ($ligne2 = ) { if ($ligne2!~/\ô\¯\:\\ô\¯\:\\/) { # Remplacement des guillemets par (évite erreur d'interprétation XML) #$ligne2=~s/\"//g; $ligne2=~/([^\t]+)\t([^\t]+)\t(.*)$/; $t1=$1; $t2=$2; $t3=$3; $t3=~s/\r//g; $ligne3="$t2\t$t3\t$t1\n"; # print "$ligne2\n"; #print Sortie $Li; $contenu .= $ligne3; # print "contenu; } } #*************************** } } close(FILEINPUT) ; $fichier .= $contenu; $fichier .= "\n"; # print $fichier; $DUMPFULL1 .= $fichier; # Insérer ici votre code (le filtreur) print $i++,"\n"; } } } } #-----