Andria RAJAONARIVELO et Princesse TCHAPDA vous présentent son projet pour le cours de Programmation et Projet Encadré.
Il s'agit dans notre projet de faire un parcours
d'arborescence dans notre corpus pour extraire des patrons
syntaxiques. Ce parcours va se faire à l'aide un script perl qui
va nous donner en sortie deux formats de fichiers: un format txt et un
format xml. Pour mener à bien notre projet, nous allons passés par
pluieurs étapes que nous nommerons "boîte à outil". De ce fait nous
aurons quatre boîtes à outils qui pour chacune symbolise une étape de
notre projet. Nous avons au départ un script perl fournit par notre
professeur qui nous permettra de débuter les extractions et qui sera
amélioré au fur et à mesure qu'on avance et en foncton de nos besoins.
Le projet se compose de 4 parties que nous appelons des BAO 1 à 4:
- BAO1 - Extraction du contenu textuel
Filtrer et nettoyer le contenu des fichiers XML afin d'obtenir deux deux sorties au format: XML et TXT.
- Boîte à outils 2 - Etiquetage des données
Récupérer le contenu "titre et description" de chaque rubrique
séparément.Le but est de faire des étiquetages morpho-syntaxiques à
l'aide de l'outil Cordial ou du programme TreeTagger.
- Boîte à outils 3 - Extraction des patrons Nom Adjectif et Nom Preposition Nom
Nous utilisons les sorties TXT de BAO2 avec le script de cordial et les sorties XML avec celui de treetagger.
- Boîte à outils 4 - Production des graphes
Nous produisons des patrons syntaxiques extraits des graphes pour
mettre en valeur et visionner les relations entretenues par les
différents tokens que nous pouvons paramétrer en motif.
Ci-après notre script de départ qui traitait un seul fichier RSS
#!usr/bin/perl
#programme d'extraction et de filtrage d'un fil RSS pour ne garder que le contenu
#textuel des balises title et description
#---------------------------------------------------------------------------------------------------
#ouvrir le fichier de travail en utilisant l'encodage UTF-8
open(FILE,$ARGV[0]);
open(OUT,">sortie.txt");
$i = 0;
#tant que je peux lire des lignes dans le fichier, tant que tu trouves tu traites et tu passes au suivant
while($ligne=<FILE>) {
$i++;
#on lit le fichier ligne à ligne
#je recupere tout où nous avons pas de chevrons ouvrant, mettre ( ) pour mémoriser la zone reconue, la 1ere parenthese dans $1 ...
#est-ce que la ligne contient title nommée title
if ($ligne=~/<title>([^<]*)<\/title>/) {
$chainetrouve=$1;
#& définit une procédure qui sera définit plus bas, on a une valeur qu'on a trouvé et on renvoie en bas qui sera nettoyé on recuperera la valeur ap nettoyage
$chainetrouve=&nettoyage($chainetrouve);
print OUT "$chainetrouve\n";
}
#c'est fini on passe à la ligne suivante
if ($ligne=~/<description>([^<]*)<\/description>/) {
$chainetrouve=$1;
$chainetrouve=&nettoyage($chainetrouve);
print OUT "$chainetrouve\n";
}
}
close(OUT);
close(FILE);
#remplacer #38 #39 par ' faire du rechercher remplacer toutes "g"
sub nettoyage {
#creer une variable qui n'existe que dans ce bloc, on supprime les elts et on renvoie la valeur recuperer en haut
#une fois que nettoyage est executé on obtient une valeur qui sera recupérer en haut
my $chainetrouve2=shift @_;
$chainetrouve2=~s/&#39;/'/g;
$chainetrouve2=~s/&#34;/"/g;
$chainetrouve2=~s/é/é/g;
$chainetrouve2=~s/ê/ê/g;
return $chainetrouve2;
}