Le traitement est décrit ci dessous. Les classes iterd et tagger de la
boite à outils ont été ré-utilisées :
Les étapes sont les suivantes (codées dans
le fichier fils2text.pl ).
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).
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 ).
Le fichier "filetotag"
est ensuite envoyé à tree-tagger qui fabrique le fichier "resultag" dans le même
répertoire.
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.
Problèmes
rencontrés ( Le traitement a été fait sur
un PIII / 700Mhz / 256 Mb ):
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 ...
Il n'a pas été possible de présenter le
"corpus étiqueté" sous forme d'un seul fichier xml car:
La librairie libxml ne peut allouer suffisamment de
mémoire pour le créer.
Une transformation xslt prenant un tel fichier en entrée
sera pour le moins "peu performante".
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...