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.
Publicités

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :