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

Projet Nuages : Phase 1 / Etape 2 (via Cordial) (par Anne Oganga)

Posted in pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 14 juin 2006

(voir aussi ici)

 

Projet Nuage Etiquetage sous CORDIAL

Oganga anne(master TAL)

Présentation du processus d’étiquetage CORDIAL

FILTRAGE

Extrait des textes des balises description des fils de presse : Le Monde et AFP

Un fichier volumineux divisé en plusieurs sorties.

ETIQUETAGE-CORDIAL

Etiquetage des textes avec cordial

Plusieurs sorties du même fichier-classement du 1-15 ou bien un mois entier. Etiquetage sous Cordial.

Information Mutuelle

Terminologie aux Graphe

Extrait le lemme et sa catégorie sous forme un item par ligne

Mesurer la valeur de l’information mutuelle des termes afin de former un graphe

Extraction des patrons des morpho-syntaxique

(NC[A-Z]+ADJ[A-Z]+)

 

Des textes aux graphes

Entrée fichiers de termes patrons

Sortie :patrons au format graphml

Application une feuille de style pour charger le résultat sous PAJEK pour un graphe

While (<>) {

If (/200[5-6] [A-Z] [a-z] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]+$/) {

Chomp($_);

Print $_;

Print " # " ;

}

}

Ensuite, nous avons lancé la commande d'Egrep pour récupérer la partie ne contenant que les contenus d'un mois, lorsque le fichier était encore trop volumineux sous Cordial, nous avons récupéré seulement celle du 15 jours. Enfin nous avons étiqueté tous les fichiers textes récupérés à l’aide de Cordial qui nous a fait remarquer qu’il n’acceptait que le fichier de moins de 5 M.

Le fichier étiqueté est présenté un mot par ligne avec le paramétrage de l’étiquetage : Lemmes, Abrégé en majuscules sous type grammatical, sans numéroter les phrases, sans codage spécialisé et sans corriger les erreurs. L’étiquetage Cordial est indiqué ainsi : mot lemme patron.

Il n’est pas possible de présenter ce corpus sous forme d’un seul fichier, il est donc découpé en plusieurs fichiers sorties nommés par date.

Voici le programme lancé.

Extractiondes patrons morpho-syntaxiques

A l’aide du programme d’extraction du projet précédent de boites à outils, nous obtenons des fichiers contenants tous les suites de mots correspondant au patron morpho-syntaxique choisi comme Nom + Adj (NC[A-Z]+ ADJ[A-Z]+). Dans cet étape, nous n’avons pas eu de problème dans le processus des traitement. Mais le processus se ralentit à cause des fichiers alourdis, cela nous a consacré beaucoup de temps pour chaque fichier.

Des textes aux graphes

Les extractions patrons obtenus dans l’étape précédent vont être représenté sous forme de graphe. Ce dernier est réalisé sous un logiciel Pajek qui permet de traiter des données de réseau de grande taille.

On transforme les fichiers des patrons morpho-syntaxiques au format graphml à l’aide d’un programme. Ces fichiers graphml sont convertis au format .net grâce à la feuille de style. Pajek est alors utilisé pour former des graphes.

On élabore le graphe d’un patron Nom + Adj pour le mois Décembre 2005.pajek1


Information mutuelle

Nous avons écrit un programme perl afin d’avoir une entrée fichier qui convient pour lancer dans cette partie.

Source : fichiers étiquetés

Voici le programme :

while ($l=<>) {

# récupération des lemmes $1 et leur catégories $2 dans tous les occurrences
if ($l=~/[^\t]+\t([^\t]+)\t([^\t]+)/) {
$a=$1;
$b=$2;
$b=~s/
//g;

# impression d’un tiret bas entre le lemme et sa catégorie
print $a."_".$b;
} <!–[if !supportEmptyParas]–> <!–[endif]–>
if ($l=~/#/) {
<!–[if !supportEmptyParas]–> <!–[endif]–>
# <FinFenetre/> marque les fins des fenêtres
print "<FinFenetre/>\n";
}
}

Nous avons utilisé les programmes fournis pour lancer cette chaîne.

Voici les paramétrages pour obtenir les graphes.

FaitCooccurrencesDansFenetre.pl

<!–[if !supportEmptyParas]–> les catégories Nom commun et Adjectif avec une distance plafond de 2 mots et une cooccurrence plancher de 1.<!–[endif]–>

CooccurrencesDansFenetre2IM.pl

<!–[if !supportEmptyParas]–> une fréquence plancher de 20.

IM2GraphML.pl

<!–[if !supportEmptyParas]–> une distance plafond de 2 et une IM plancher de 3.0

On élabore le graphe de l’information mutuelle avec la valeur ci-dessus pour le décembre 2005.pajek2

Projet Nuages : Phase 1 / Etape 2 (via treetagger) (par H.N)

Posted in pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 1 juin 2006

Présentation du travail ici

Projet Nuages : Phase 1 / Etape 2 (via Cordial) (par Li-chi WU)

Posted in pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 30 Mai 2006

(voir aussi ici)

 

Présentation du processus d'étiquetage CORDIAL

 

 

 

 

Filtrage

Extrait le texte des balises description

 

Nous avons modifié le script pour Cordial du projet Boites à outils et l’avons appliqué à l'ensemble de corpus Nuage de la version 1 (fils + nuages). Nous avons d’abord fait trois sorties de fichiers textes qui contiennent tous les contenus textuels des balises description : un fichier sur l'ensemble du corpus de la version 1 (l'année 2005 et 2006), deux autres année par année (l'un pour l'année 2005, l'autre pour l'année 2006).

 

Problèmes rencontrés

Nous avons essayé de lancer trois fichiers sous Cordial, malheureusement, cela n'a pas marché car tous les fichiers texte sont volumineux. Pour faciliter le travail sous Cordial, nous voulions avoir un fichier moins volumineux, aussi avons-nous décidé d'avoir plusieurs fichiers présenté par mois, voire par quinzaine, à partir des fichiers sorties textes (les fichiers de 2005 et de 2006).

 

Avant de découper les deux fichiers alourdis, nous avons créé un petit programme ci-dessous pour que des fils (des textes dans les balises ’description’) soient présentés par une seule ligne. Cela permet de mieux lancer le programme de l’étape suivant.

 

while (<>) {

 

if (/200[5-6][A-Z][a-z][a-z][0-9][0-9][0-9][0-9][0-9][0-9][0-9]+$/) {

chomp($_);

print $_;

print " # ";

$_=<>;

print;

}

}

 


Ensuite, nous avons lancé la commande d'Egrep pour récupérer la partie ne contenant que les contenus d'un mois, lorsque le fichier était encore trop volumineux sous Cordial, nous avons récupéré seulement celle du 15 jours. Enfin nous avons étiqueté tous les fichiers textes récupérés à l’aide de Cordial qui nous a fait remarquer qu’il n’acceptait que le fichier de moins de 5 M.

 

Le fichier étiqueté est présenté un mot par ligne avec le paramétrage de l’étiquetage : Lemmes, Abrégé en majuscules sous type grammatical, sans numéroter les phrases, sans codage spécialisé et sans corriger les erreurs. L’étiquetage Cordial est indiqué ainsi : mot lemme patron.

 

Il n’est pas possible de présenter ce corpus sous forme d’un seul fichier, il est donc découpé en plusieurs fichiers sorties nommés par date.

Voici le programme lancé.

Extraction des patrons morpho-syntaxiques

A l’aide du programme d’extraction du projet précédent de boites à outils, nous obtenons des fichiers contenants tous les suites de mots correspondant au patron morpho-syntaxique choisi comme Nom + Adj (NC[A-Z]+ ADJ[A-Z]+). Dans cet étape, nous n’avons pas eu de problème dans le processus des traitement. Mais le processus se ralentit à cause des fichiers alourdis, cela nous a consacré beaucoup de temps pour chaque fichier.

Des textes aux graphes

Les extractions patrons obtenus dans l’étape précédent vont être représenté sous forme de graphe. Ce dernier est réalisé sous un logiciel Pajek qui permet de traiter des données de réseau de grande taille.

 

On transforme les fichiers des patrons morpho-syntaxiques au format graphml à l’aide d’un programme. Ces fichiers graphml sont convertis au format .net grâce à la feuille de style. Pajek est alors utilisé pour former des graphes.

On élabore le graphe d'un Nom + Adj pour le mois novembre 2005.

 

Information mutuelle

Nous avons écrit un programme perl afin d’avoir une entrée fichier qui convient pour lancer dans cette partie.

 

Source : fichiers étiquetés

Voici le programme :

while ($l=<>) {

# récupération des lemmes $1 et leur catégories $2 dans tous les occurrences

if ($l=~/[^\t]+\t([^\t]+)\t([^\t]+)/) {

$a=$1;

$b=$2;

$b=~s/

//g;

# impression d’un tiret bas entre le lemme et sa catégorie

print $a."_".$b;

}

 

if ($l=~/#/) {

# <FinFenetre/> marque les fins des fenêtres

print "<FinFenetre/>\n";

}

}

Nous avons utilisé les programmes fournis pour lancer cette chaîne.

 

Voici les paramétrages pour obtenir les graphes.

FaitCooccurrencesDansFenetre.pl

les catégories Nom commun et Adjectif avec une distance plafond de 2 mots et une cooccurrence plancher de 1.

Cooccurrences DansFenetre2IM.pl

 

une fréquence plancher de 20.

IM2GraphML.pl

une distance plafond de 2 et une IM plancher de 3.0

On élabore le graphe d'information mutuelle avec la valeur ci-dessus pour le mois mars 2006.

 

 

mars 2006

Projet Nuages : Phase 1 / Etape 2 (via treetagger) (par Z. M.)

Posted in pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 28 Mai 2006

(voir aussi ici)

La chaîne des traitements

Le point de départ : Des arborescences de dossiers dans lesquels sont stockés des fils RSS le Monde et AFP.

Les traitements à réaliser : Effectuer sur les données des deux corpus les mêmes opérations définies dans les déférentes boîtes à outils.
Le schéma suivant résume ces opérations :

Le programme : Usage: perl projet_n.pl nom du répertoire chemin d’accées à Treetagger chemin d’acces à AltovaXSLT
Entrée: nom du répertoire racine de l’arborescence.

Sortie:
Une arborescence de répertoires de racine corpus_res qui regroupe :
1-Des fichiers contenant les textes des balises description.
2- Des fichiers contenant ces textes étiquetés avec Treetagger.
3- Des fichiers contenant les suite des termes correspondants aux patrons (NOM, ADJ) et (ADJ, NOM).
4. Des fichiers au format Graphml et Pajek.
Source: le programme commenté est disponible ici .

Exemple d’utilisation:
perl projet_n.pl e:/fils-presse-archivage/2005/ /cygdrive/c/TT/bin/treetagger.exe /cygdrive/c/altova/AltovaXSLT.exe

Fonctionnement:

Parcourir l’arborescence des répertoires en entrée à l’aide du programme de parcours de la boîte à outils 1.
À chaque passage par un dossier, si le niveau du dossier est supérieur au niveau choisi au lancement
du programme, créer un autre dossier portant le même nom dans l’arborescence résultat.
Extraire le contenu de balises description de chaque fil RSS, étiqueter le résultat avec Treetagger, puis à l’aide de la commande « system » de Perl, on appel tous les programmes déjà réalisés pour les boîtes à outils. Le regroupement des résultats se fait à l’aide de la procédure « regrouper », le niveau d’un dossier est calculé grâce à la procédure « niveau ».
Pour générer les graphes de BO4 et de l’information mutuelle, on utilise la procédure gengraphe

Le schéma suivant explique le fonctionnement du programme :

Utilisation du programme:

Dans cet exemple on lance le programme sur le dossier DEC (corpus fils-de-presse-archivage)

Trois regroupements sont possibles. Pour un regroupement par jour, on obtient l’arborescence résultat (de racine corpus_res) suivante :

corpus_T : le texte avec un mot par ligne.
corpus_E : le texte étiqueté.
corpus_XT : le suites {nom, adjectif} et {adjectif, nom}.
corpus_IM : le fichiers des fenêtres pour l’information mutuelle.
corpus_IM.net : le fichier Pajek pour l’information mutuelle.
corpus_P.net : graphe des termes de la boîte à outils 4.
patron-graphml.xml: le fichier graphml de la boîte à outils 4.
Les autre fichiers xml sont utilisés pour le calcul de l’information mutuelle.
Le graphe de l’information mutuelle pour le dossier 1 :

Remarques:

1-Le programme nécessite des heures d’exécution pour traiter complètement le corpus.
2- Pour générer les graphes Pajek (corpus_IM.net), il était nécessaire de changer
l’attribut encodage du graphe XML pour pouvoir le traiter avec AltovaXSLT .(le supprimer ou utiliser CP1252).
3- Les étiquettes traitées sont {nom, adjectif, abréviations} et les paramètres vus en cours
pour le calcul de l’information mutuelle sont utilisés dans l’exemple précèdent.
Z. MAAFA

Projet Nuages : Phase 1 / Etape 2 – version finale (par Y. L.)

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

Voir aussi ici

(précédente version de ce billet)

Fils RSS:

Le traitement est décrit ci dessous. Les classes iterd et tagger de la boite à outils ont été ré-utilisées :

process

Les étapes sont les suivantes (codées dans le fichier fils2text.pl ).

  1. On lit les fils dans l'arborescence donnée sur le CD /mnt/cdrom/xxx. ( Pour plus de commodité une copie a été faite sur le disque dur).
  2. Pour chaque fil, on extrait le texte des balises "description" ( avec le module XPath ) et le cumule dans un fichier ( fichier "filetotag" ) indiquant pour chaque fils son nom et le texte extrait. Chaque section se distingue avec un séparateur ayant un format précis que tree-tagger va marquer comme <unknown> et que l'on utilisera dans la partie suivante pour refabriquer l'arborescence. Le fichier "filetotag" est crée à la racine de cette arborescence "résultat" . ( Figure 1 ). Sur Windows le fichier filetotag est automatiquement coupé en morceaux afin de pouvoir être étiqueté
  3. Le fichier "filetotag" ( ou ses morceaux les uns à la suite des autres ) est ensuite envoyé à tree-tagger qui fabrique le fichier "resultag" dans le même répertoire.
  4. Le fichier "resultag" est lu. Sur un séparateur on recrée une structure identique à celle de départ, le texte taggé est alors transformé en xml et compressé. ( Figure 2 ).
Figure 1.L'arboresence des résultats
et les fichiers de travail
Figure 2. Les fils étiquetés
et compressés.
a q

Problèmes rencontrés ( Le traitement a été fait sur un PIII / 700Mhz / 256 Mb ):

  1. Le nombre très élevé de fils ( environ 15 000 ) donne un temps de création du fichier filetotag ( 10Mb ) d'environ 50 mn ( temps utilisateur ). Divers essais ont été faits pour créer un fichier compressé mais le temps d'exécution est multiplié par 4. De fait des problèmes de fuite mémoire sont apparus dans le module Compress::ZLib. Conclusion : Le processus se ralentit au fur à mesure qu'il avance… On a donc choisi de ne pas créer le fichier filetotag compressé.
  2. Il n'a pas été possible de présenter le "corpus étiqueté" sous forme d'un seul fichier xml car:
    1. La librairie libxml ne peut allouer suffisamment de mémoire pour le créer.
    2. Une transformation xslt prenant un tel fichier en entrée sera pour le moins "peu performante".
  3. On a donc choisi de créer un fichier xml par fil et de le compresser (*) pour ne pas utiliser trop de place.( Figure 2 ).
  4. Il est nécessaire pour la version Windows de tree-tagger de découper le fichier d'entrée en morceaux de moins de 200 k.

(*) Ces compressions ont été faites avec la commande system pour éviter les Pbs évoqués ci dessus. Ainsi au total environ 15000 processus auront été créés…

Données pour l'information mutuelle:
Le processus ci dessus a créé un fichier nommé im.win au même endroit que les fichiers filetotag et resultag ci dessus.

Il va pouvoir être à son tour donné comme entrée au script mknet qui se charge de créer le graphe final.

Les paramètres de ce script sont documentés dans l'aide en ligne . Ca ressemble à :

Usage : mknet [–garder='pattern' –distplaf=val –cooplanch=val –freqplanch=val –imdistplaf=val –Implanch=val ] mesfenetres.win mongraf.netPour plus d'info sur la signification des arguments voir doc information mutuelle.Ce qu'on peut dire ici :–garder='pattern' : liste d'étiquettes ( séparées par | ) relatives à l'étiqueteur utilisé
–distplaf=val : val est la distance plafond demandée par FaitCooccurrencesDansFenetre.pl
–cooplanch=val : val est la coocurrence plancher demandée par FaitCooccurrencesDansFenetre.pl
–freqplanch=val : val est la fréquence plancher demandée par CooccurrencesDansFenetre2IM.pl
–imdistplaf=val : val est la distance plafond demandée par IM2GraphML.pl
–Implanch=val : (noter I majuscule…) val est la valeur "IM plancher" demandée par IM2GraphML.pl

Il y a des valeurs par défaut qu'il est fortement déconseillé d' utiliser. Elles valent :

–garder=NIL ( ce qui revient à ne rien garder.. )
–distplaf=20
–cooplanch=3
–freqplanch=5
–imdistplaf=8
–Implanch=9.0

Les Arguments :
$1 : Le nom du fichier contenant les Fenêtres.
$2 : Le nom du fichier .net représentant le graphe Pajek

Exemple pour du beurre :
mknet –garder='ADV|ADJ|NOM' –distplaf=20 –cooplanch=3 –freqplanch=5 –imdistplaf=8 –Implanch=9.0 mesFenetres.win monGraphe.net

Notes sur l'utilisation du script mknet :

  1. Il fonctionne sur Linux et sur Cygwin mais pas sous msdosse.
  2. Il est nécessaire d'avoir dans le même répertoire les scripts utilisés à savoir:
    1. CooccurrencesDansFenetre2IM.pl
    2. FaitIndexDeFenetres.pl fils2text.pl
    3. FaitCooccurrencesDansFenetre.pl
    4. IM2GraphML.pl
    5. GraphML2Pajek.xsl
  3. Le script utilise xsltproc comme moteur xslt.

Projet Nuages : Phase 2 / Etape 2 – Concordances des formes aviare et chikungunya sous Lexico3 (par Aurélia et Virginie)

Posted in pr-Nuages (SF) by tal-p3 on 19 Mai 2006

Partant des fichiers XML, nous avons créé un script Perl permettant, non seulement de nettoyer le fichier des balises XML, mais également d'ajouter une balise date et une balise heure que Lexico3 pourra prendre en compte. Ces deux balises contiennent ce qui était présent dans les balises date et heure des fichiers XML initiaux. Nous en avons modifié la mise en forme afin d'obtenir un format lisible par Lexico3. Nous avons aussi ajouté un caractère § délimitant chaque fil, plus pertinent pour la segmentation que le point. En effet un même fil peut contenir plusieurs phrases.

Voici un extrait du fichier de sortie :

§ <date=2006-01-28> <heure=15> En raison du virus chikungunya, qui touche la Réunion depuis mars 2005, le préfet de l'île, Laurent Cayrel, a décidé de différer la rentrée scolaire d'une semaine.
§ <date=2006-01-29> <heure=13> Le gouvernement a décidé samedi d'accentuer la mobilisation pour tenter d'enrayer l'épidémie de Chikungunya à La Réunion, qui a déjà touché quelque 30 000 personnes depuis février 2005, dont plus de 5 000 nouveaux cas dans la deuxième semaine de janvier.
§ <date=2006-02-06> <heure=11> Quelque 230 000 élèves de La Réunion reprennent le chemin de l'école lundi, avec une semaine de retard due à la désinsectisation des établissements scolaires pour éliminer le moustique vecteur du chikungunya.
Nous avons soumis les deux fichiers, aviaire et chikungunya, au logiciel Lexico3. Ce dernier crée automatiquement un dictionnaire. Pour chacun des fichiers nous avons sélectionné les mots les plus fréquents et les plus pertinents afin d'étudier leur distribution (carte des sections). Nous avons également utilisé ce logiciel pour extraire les concordances de ces deux termes, c'est-à-dire leurs contextes d'apparition.

Voir le rapport sur aviaire

Voir le rapport sur chikungunya

Interprétation des résultats :

– la carte des sections de la forme "avaire" a montré que sur les 224 occurrences de cette forme, une seule n'apparait pas avec le mot "grippe" mais avec le mot "crise".

– le concordiancier de la forme "H5N1" permet de constater que cette forme est toujours utilisée avec le mot "virus". De plus, elle est généralement suivie de l'expression "de la grippe aviaire".

– le graphe comparant les expressions "grippe aviaire" et "virus H5N1" nous indique que c'est l'expression "grippe aviaire" qui est plus utilisée que "virus H5N1".

– le concordancier du mot chikungunya permet de voir qu'il est souvent utilisé (16 fois sur 31 fois où ce mot apparaît) avec l'expression "épidémie de".

Projet Nuages : Phase 2 / Etape 3 – Application de la chaîne d’information mutuelle – Graphe (par Aurélia et Virginie)

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

Les programmes utilisés dans cette partie ainsi que leurs explications sont présents ici.

On applique ces programmes Perl sur le fichier de sortie crée pour la chaîne d'information mutuelle (cf post "Création du format d'entrée pour la chaîne d'information mutuelle") lui même obtenu à partir des fils contenant la forme "aviaire".

Pour aviaire :

Programme FaitCooccurrencesDansFenetre.pl :

Nous avons gardé les catégories NOM et ADJ, sur une distance plafond de 20 mots et une cooccurrence plancher de 2.

Programme CooccurrencesDansFenetre2IM.pl :

Nous avons utilisé une fréquence plancher de 3.

Programme IM2GraphML.pl :

Nous avons utilisé une distance plafond de 8 et une IM plancher de 9.0

On élabore le graphe d'aviaire avec Pajek et on obtient :

(Cliquez sur l'image pour l'agrandir)

Pour chikungunya :

Programme FaitCooccurrencesDansFenetre.pl :

Nous avons gardé les catégories NOM et ADJ, sur une distance plafond de 20 mots et une cooccurrence plancher de 2.

Programme CooccurrencesDansFenetre2IM.pl :

Nous avons utilisé une fréquence plancher de 2.

Programme IM2GraphML.pl :

Nous avons utilisé une distance plafond de 2 et une IM plancher de 3.0

On élabore le graphe de chikungunya avec Pajek et on obtient :

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.

Projet Nuages : Phase 1 / Etape 2 – étape préliminaire (Y. L.)

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

(voir aussi ici )

Fils RSS:

Le traitement est décrit ci dessous. Les classes iterd et tagger de la boite à outils ont été ré-utilisées :

process

Les étapes sont les suivantes (codées dans le fichier fils2text.pl ).

  1. On lit les fils dans l'arborescence donnée sur le CD /mnt/cdrom/xxx. ( Pour plus de commodité une copie a été faite sur le disque dur).
  2. Pour chaque fil, on extrait le texte des balises "description" ( avec le module XPath ) et le cumule dans un fichier ( fichier "filetotag" ) indiquant pour chaque fils son nom et le texte extrait. Chaque section se distingue avec un séparateur ayant un format précis que tree-tagger va marquer comme <unknown> et que l'on utilisera dans la partie suivante pour refabriquer l'arborescence. Le fichier "filetotag" est crée à la racine de cette arborescence "résultat" . ( Figure 1 ).
  3. Le fichier "filetotag" est ensuite envoyé à tree-tagger qui fabrique le fichier "resultag" dans le même répertoire.
  4. Le fichier "resultag" est lu. Sur un séparateur on recrée une structure identique à celle de départ, le texte taggé est alors transformé en xml et compressé. ( Figure 2 ).
Figure 1.L'arboresence des résultats
et les fichiers de travail
Figure 2. Les fils étiquetés
et compressés.
a q

Problèmes rencontrés ( Le traitement a été fait sur un PIII / 700Mhz / 256 Mb ):

  1. Le nombre très élevé de fils ( environ 15 000 ) donne un temps de création du fichier filetotag ( 10Mb ) d'environ 50 mn ( temps utilisateur ). Divers essais ont été faits pour créer un fichier compressé mais le temps d'exécution est multiplié par 4. De fait des problèmes de fuite mémoire sont apparus dans le module Compress::ZLib. Conclusion : Le processus se ralentit au fur à mesure qu'il avance …
  2. Il n'a pas été possible de présenter le "corpus étiqueté" sous forme d'un seul fichier xml car:
    1. La librairie libxml ne peut allouer suffisamment de mémoire pour le créer.
    2. Une transformation xslt prenant un tel fichier en entrée sera pour le moins "peu performante".
  3. On a donc choisi de créer un fichier xml par fil et de le compresser (*) pour ne pas utiliser trop de place.( Figure 2 ).

(*) Ces compressions ont été faites avec la commande system pour éviter les Pbs évoqués ci dessus. Ainsi au total environ 15000 processus auront été créés…

Projet Nuages : Phase 1 / Etape 1 – Organisation des données (par Z.M)

Posted in Fil(s) de Presse, pr-Nuages (SF) by tal-p3 on 29 mars 2006

Au niveau de la racine du DVD on trouve trois dossiers : fils-presse-archivage qui contient le premier corpus, fils-presse-articles-archivage contenant le deuxième corpus et un dossier outils dans lequel sont regroupés des programmes développés pour traiter l’ensemble des données

1. Le dossier fils-presse-archivage :

Dans ce dossier on trouve deux arborescences de dossiers, la première de racine 2005 pour stocker les fils reçus en 2005 et la deuxième de racine 2006 pour les fils de presse des trois premiers mois de l’année 2006.

Une version compressée pour chaque arborescence est également disponible dans ce dossier.

On trouve, en plus, un index et des fichiers xsl et java script.

Chaque arborescence est formée d’un ensemble de dossiers organisés en niveaux :

1. le premier niveau correspond à l’année de publication des fils.

2. le deuxième niveau correspond aux mois.

3. le troisième niveau correspond aux jours de publications.

4. le quatrième niveau contient les dossiers dans lesquels sont regroupés tous les fils de presse reçus au même moment

5. le cinquième niveau contient les documents RSS qui forment le corpus et des fichiers html permettant la visualisation du corpus et des nuages de mots.

Les dossiers de chaque niveau contiennent les dossiers du niveau suivant.

Exemple :

Le dossier mois « Dec » contient 31 dossier jour (de 1 a 31)

2. Le dossier fils-presse-articles-archivage :

Ce dossier contient le deuxième corpus organisé dans une arborescence de racine 2006.Il est aussi disponible sous forme d’une archive.

Les arborescences de dossiers du premier et du deuxième corpus ont la même structure.

Le deuxième corpus contient en plus des fils de presse, une version texte format lexico3 pour chaque fil.

3. Utilisation de l’index :

A partir du document html index qui se trouve au niveau de la racine du DVD, on peut accéder à tous les fichiers des deux corpus et au contenu du dossier outil.

Un premier lien index permet l’accès à tous les fils de presses (Monde et AFP) du premier corpus.

Pour les fils de presse le monde reçus au même moment, on trouve un nuage de mots et un autre nuage avec des liens vers le contexte.

De même, deux nuages sont créés pour le fil AFP.

Un comptage des formes est également disponible avec des liens qui pointent vers leurs définitions dans le TLFI.

Le deuxième lien index permet l’accès au second corpus de la même manière, on trouve, en plus, des liens vers des fichiers lexico3 associes aux fils de presses le monde.

On trouve aussi les deux types de nuages décrits précédemment et un comptage des formes.

Z.MAAFA

Projet Nuage : présentation du corpus par Li-Chi et Anne

Posted in pr-Nuages (SF) by tal-p3 on 21 mars 2006

Dans le projet nuage, on nous a fourni un CD qui contient :

-le corpus « Fils de presse »

-le corpus « Fils de presse+Articles complets associés au format Lexico3 »

-les outils

  • Le Corpus Fils de Presse

Le lien « index » pointe des liens vers les fils de presse classés par date et heure. Le corpus est tiré de la période du 19 nov 2005 au 23 fév 2006. Ces liens donnent accès aux fichiers en format xml et les liens (contenant la presse Le Monde et AFP) de nuages de mots. Ces derniers contiennent les liens vers des nuage de mots en version 1 et 2, le titre, son lien en ligne vers l’article, sa description (le résumé de l’article), sa date de publication et son lien permanent. La version 1 n’a que les mots classés par ordre de fréquence dans les fils, leur taille est déterminée par cette fréquence (plus le mot est fréquent, plus sa taille de police est grande). La version 2 a également les nuages de mots dans lequel chaque mot donne accès via un clic aux contextes dans lesquels ce mot apparaît. Le contexte est formé par le titre de d’article, sa description dans le fil original et URL de cette description et son lien en ligne. Dans la page des nuages de mots, on trouve aussi les nombres de comptages des nuages de mots classés par ordre de fréquence et son nombre de fréquence, et un lien de la définision du mot dans le TLFi.

  • Le Corpus de Fils de Presse + articles complet au format Lexico3

Le lien « index » pointe vers une page contenant des liens vers le fils de presse (Le Monde) classés par date et heure. Le corpus est tiré de la période du 17 jan 2006 au 23 fév 2006. Ces liens donnent accès aux fichiers en format xml, aux extraits du texte brut et aux liens de nuages de mots. Les contenus de ces liens sont les même que ceux du lien « index » précédent. On ne le répète plus.
Li-chi

Anne

Projet Nuages : Phase 1 / Etape 1 – Observation du corpus (par Aurélia et Virginie)

Posted in pr-Nuages (SF) by tal-p3 on 19 mars 2006

Les Fils au format XML

Les fils sont principalement issus du site Le Monde (certains viennent de l'AFP) qui édite, des fils RSS qui ont été archivés heure par heure.

Aperçu de l'arborescence

Ces fils sont au format xml et ils ont la forme suivante :

Ils contiennent une balise "description" qui fera ensuite l'objet de l'étiquetage

Les Nuages

Ils permettent, à partir du nombre d'occurrences de chaque mot du texte, de visualiser leur fréquence (voir le paragraphe "Architecture du projet nuage de mots" dans le descriptif du projet).

Plus le terme apparaît tôt et plus sa case est grosse, plus il est fréquent dans le texte de départ.
Exemple

Il existe deux versions du corpus :

  • Version 1 : Les fils au format xml + les nuages qui contient environ 49100 fils.

  • Version 2 : Les fils au format xml + les nuages + les articles complets au format texte préparés au format Lexico 3 qui contient environ 31700 fils.

Dans les fichiers textes,en plus du contenu des balises description, on trouve le contenu de l'article qui n'était mentionné que par la présence d'un lien dans le fichier XML (cela crée un lien entre le "monde profond", c'est-à-dire l'intégralité des textes du monde, et le "monde de surface", les fils rss contenant la balise description qui est a priori un résumé de l'article ) et des balises qui permettront l'analyse par le logiciel Lexico3.

Les balises titre présentes dans les fichiers xml sont absentes des fichiers texte. Pourtant, il aurait pu être utile de les conserver puisque certaines sont indispenseable à la compréhension du contenu de la description.

Aurélia, Virginie

Projet Nuages : Phase 1 / Etape 1 – Présentation du corpus (par Hoby, Yann et Violeta)

Posted in Fil(s) de Presse, pr-Nuages (SF) by tal-p3 on 15 mars 2006

Le corpus est stocké sur un dvd et il occupe plus ou moins deux giga-octets.
On a un index,avec un tableau dans lequel on trouve des liens vers les
fils de presse classés par date et heure. Ces liens pointent vers des fichiers au format texte et leur pendants au format xml.

(lien vers image index.bmp)

On trouve aussi un lien direct vers les nuages de mots v1 (nuages de mots uniquement ) et v2 (nuages de mot et contextes dans les articles) Il y a aussi des liens vers les versions en ligne des articles.
Sur le dvd on trouve une panoplie d'outils qui vont nous servir a exploiter le corpus proprement dit.

Description interne

Sur la page index on trouve:
1 un lien vers le site du projet nuages
2 des liens vers les versions xml et txt etiquetées avec lexico 3 des fils présentés dans un tableau
3 sous ce tableau on trouve egalement un lien vers les nuages de mots extraits de ces fils en et hors contexte
4 on trouve egalement dans cette page les liens vers les articles en ligne
présenté comme suit :
le titre de l'article
le lien vers cet article
le contenu de la balise description
la date et l'heure de publication
ainsi que le lien permanent (souvent la même url que le premier lien)

Yann HIARD

Hoby RATSIMBA

Violetta Ordonez

Projet Nuages : Phase 1 / Etape 1 – Commentaires sur le Corpus (par Yann L.)

Posted in pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 15 mars 2006

Organisation des fils de presse sur le DVD.

La racine 2006 est divisée en 3 parties : Jan , Feb , Mar qui correspondent aux 3 mois de l’année sur lesquels le travail va porter.
Cette racine contient un index général (index.xml ) qui pointe sur les différents fils organisés dans les répertoires décrits ci dessous.

Pour chacune de ces 3 parties on trouve correspondant à chaque jour du mois, un répertoire qui contient tous les fils arrivés dans une demi-heure donnée. De plus ce répertoire contient un index local qui associe un fil avec son correspondant au format Lexico3.

Un second index pointe sur 2 nuages. Un contenant les mots , l’autre contenant les mots avec un extrait du contexte et les liens vers l’article du Monde.
En plus un résumé de chaque article est disponible sur cet index avec un lien vers l’article.

Exemple: Les fils arrivés à 12h30 le 15 Février 2006 sont dans le répertoire F:\fils-presse-articles-archivage\2006\Feb\15\12-30-00.

Format des fils:
Ils sont au format xml conforme au schéma RSS. Le nom de chaque fils est une identification de l’article correspondant dans le journal Le Monde.

Yann

Projet Nuages (Phases de travail)

Posted in pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 1 mars 2006

Le travail à réaliser sur ce projet est décrit dans le document suivant : NUAGES-WIP (format PDF). On présente ci-dessous les grandes étapes de ce travail. [Remarques : (1) Ce document sera mis à jour régulièrement, (2) les données présentées dans ce document seront accessibles en ligne au format HTML dans la page Nuages de ce blog]

Présentation des données disponibles sur votre DVD

  • Le corpus Fils de Presse : Cette page suivante rassemble chronologiquement les archives des Fils de Presse (Le Monde) utilisées pour le projet. Période traitée : 19/11/2005 – 23/02/2006
  • Le corpus Fils de Presse + articles complets au format Lexico3 : Cette page rassemble chronologiquement les archives des Fils de Presse (Le Monde) et les contenus textuels au format Lexico3 (fil + article). Période traitée : 17/01/2006 – 23/02/2006
  • Les outils : Outils « Fils de Presse » + Outils « Fils de Presse + articles »

PHASE 1 :

Etape 1 : prise en main
• Parcourir les 2 états du corpus : (V1) la version « fils+nuages », (V2) la version « (fils+nuages)+(articles complet au format Lexico3)
• Rédiger un court texte de présentation de ces données (sur ce blog)

Etape 2 : étiquetage et graphe
• Etiquetage du corpus : en utilisant les « boîtes à outils » développés en cours, vous devrez étiqueter l’ensemble du corpus (versions (V1) et (V2)) : 1 groupe de travail treetagger et 1 groupe de travail Cordial
• Extraire une liste de termes sur la base d’un patron morphosyntaxique à définir (cf Boite à Outils n°3) et en construire une représentation sous la forme d’un graphe via Pajek (cf Boite à Outils n°4) : chaque groupe travaillera sur ses propres résultats
• Préparer un format de sortie pour la chaîne de traitement « information mutuelle » : (voir la présentation dans la phase 2 (cf NUAGES-WIP))

Etape 3 : les segments avec Lexico3
• A partir de la version V2 du corpus, construire un corpus chronologique pour Lexico3 couvrant toute la période disponible.
• Construire la liste des Segments répétés (longueur 2…). Construire une représentation graphique de ces segments via pajek

IMPORTANT : toutes vos activités doivent conduire à rédiger des notes sur ce blog

PHASE 2 :

Dans cette partie, on va s’intéresser à deux formes graphiques particulières : « aviaire » et « chikungunya ». On commence par présenter des données complémentaires autour de ces 2 formes (cf NUAGES-WIP), on donne ensuite des pistes de travail sur le corpus de travail déjà utilisé dans la phase 1 (cf NUAGES-WIP).

Commentaires fermés sur Projet Nuages (Phases de travail)