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

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 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 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

Météo textuelle (suite)

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

Projet « Fils de Presse« , URL : http://tal.univ-paris3.fr/filspresse/ (cf Projet Nuages du module “Programmation et projet encadré“, MASTER TAL 2005-2006 cf présentation du Projet Nuages)

On donne à voir ici deux nuages (dans 2 versions notées v1 et v2) disponibles couvrant la période disponible :
Nuage AFP v1 (i.e sans contexte) : 19/11/2005-28/01/2006 (2,5 Mo)
Nuage AFP v2 (i.e avec contexte) : 19/11/2005-28/01/2006 (4,6 Mo)
Nuage Le Monde v1 (i.e sans contexte) : 19/11/2005-28/01/2006 (ATTENTION : 56 Mo)
Nuage Le Monde v2 i.e avec contexte) : 19/11/2005-28/01/2006 (ATTENTION : 91 Mo)

Dans les nuages de mots dits v2, chaque mot donne accès via un clic aux contextes dans lesquels ce mot apparaît (colonne de droite) : ce contexte est constitué dans la version présentée ici par le titre de l’article et l’URL visée par cette description.

(à suivre…)

Commentaires fermés sur Météo textuelle (suite)

Météo Textuelle

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

Projet « Fils de Presse« , URL : http://tal.univ-paris3.fr/filspresse/ (cf Projet Nuages du module “Programmation et projet encadré“, MASTER TAL 2005-2006 cf présentation du Projet Nuages)

On donne à voir ici un index d’une partie des nuages disponibles à ce jour (site Le Monde) : INDEX Nuage (2 mois, heure par heure)

Dans les nuages de mots, chaque mot donne accès via un clic aux contextes dans lesquels ce mot apparaît (colonne de droite) : ce contexte est constitué par le titre de l’article, sa description « textuelle » dans le fil original et l’URL visée par cette description (l’image en donne une illustration).

(à suivre…)

Commentaires fermés sur Météo Textuelle

Projet Nuages : ChronoFil/ChronoMonde

Posted in Fil(s) de Presse, pr-Nuages (SF), Projet 2005-2006 by tal-p3 on 11 décembre 2005

cf Projet Nuages du module « Programmation et projet encadré« , MASTER TAL 2005-2006 (cf présentation du Projet Nuages)
Dans la cadre de ce projet, mise en place de 2 modules, ChronoFil et ChronoMonde :
ChronoFil construit une représentation graphique de l’évolution d’un mot dans les Fils de Presse archivés par le module du même nom dans le projet Fils de Presse
ChronoMonde construit une représentation graphique de l’évolution d’un mot dans la version électronique du journal Le Monde, [période : Avril 2003 – Décembre 2005] (cf Projet CLM)
Les deux applications fonctionnent sur le même principe : une interface WEB, une zone de saisie pour entrer le mot visé (en MAJUSCULE), en sortie les graphiques de ventilation.
Interface (provisoire) des 2 applications :

Exemples de sorties : Examen de la ventilation de la forme LAICITE :

Figure 1 : LAICITE dans le Fil AFP (ventilation du mot par heure)

Figure 2 : LAICITE dans le Fil le Monde (SURFACE) (ventilation du mot par heure)


Figure 3 : LAICITE dans le Monde (PROFOND) (ventilation du mot par jour)

Liens : Projet Fils de Presse, Projet ChronoFil et ChronoMonde (accès restreint provisoire pour les membres du projet NUAGES. Open Access en 2006 sur un serveur dédié.)