Projet Multilingue - v.1.0

Partie Corpus 2

Page Précédente Page Suivante

Une fois les pages récupérées dans les deux langues, il nous a fallu nettoyer ces fichiers afin d'en extraire les parties textuelles intéressantes. Pour ce faire, nous avons usé d'un premier petit script en perl pour éliminer les entêtes, les menus, les pieds de pages et tout autre élément indésirable de la page en html.
Nous en profitons également pour donner l'extension .xml aux divers fichiers qui sont codés en xhtml. En effet, nous utiliserons par la suite des requêtes xslt afin de transformer les fichiers et, dès lors, le fait que ces fichiers soient en xml (ou en xhtml dans le cas présent) devient un prérequis.

Voici le script perl utilisé : nettoyeur.pl (clic droit/enregistrer sous).


#!/usr/bin/perl
# lancer en utilisant : perl SCRIPTS/nettoyeur.pl PAGES_ASPIREES
use strict;
my $gen="$ARGV[0]";
opendir (GEN,$gen) or die "error : gen";
my @docs=readdir(GEN);
foreach my $doc (@docs)
{
print @docs;
next if $doc=~/^\.\.?$/;
my $dossier="documents_traites";
mkdir "$dossier/$doc";
opendir (DIR,"$gen/$doc") or die "error : doc";
my @fics=readdir(DIR);
#my $doc1="documents_traites"
foreach my $fic (@fics)
{
next if $fic=~/^\.\.?$/;
system("dos2unix $gen/$doc/$fic");
my $out=$fic;
if ($out=~/.*\.html/) {$out=~s/(.*)\.html/$1_a\.xml/;}
if ($out=~/.*\.htm/) {$out=~s/(.*)\.htm/$1_j\.xml/;}
open (FILEIN,"<$gen/$doc/$fic");
print "gen : $gen\n";
print "doc : $doc\n";
print "fic : $fic\n";
print "out : $out\n";
print "out : $out\n";
my $flag=0;
my $contenu="";
while (my $ligne = <FILEIN>)
{
#next if $ligne=~/\n/;
if ($flag==1)
{
if ($ligne=~ /(.*)<\/div>/)
{
$contenu.=$1;
$flag=2;
}
else
{
$contenu.=$ligne;
chomp($contenu);
$flag=1;
}
}
else
{
if ($ligne=~/<div class="post" id=(.*)>(.*)/)
{
$contenu=$2;
if ($contenu=~/(.*)<\/div>/)
{
$contenu=$1;
$flag=2;
}
else
{
chomp($contenu);
$flag=1;
}
}
}
if ($flag==2)
{
open (FILEOUT, ">./$dossier/$doc/$out");
print FILEOUT "$contenu \n";
}
}
}
}
close (FILEOUT);
close (FILEIN);
close (DIR);
print "BINGO ok!!!\n";


Un second nettoyage à la main est alors opéré afin d'enlever le surplus de balises et de commentaires dans les parties récupérées. Le nettoyage effectué permet d'avoir au final des fichiers propres et bien plus facilement alignables.
Au final, nous obtenons un fichier dont chaque partie textuelle est contenue dans une et une seule balise. Ce nettoyage permet ainsi de simplifier l'étape de l'alignement.


Page Précédente Page Suivante

©2008-2009 Marion Iché - Richard Delaplace