Boîte à outils 2
Présentation
La Boîte à outils 2 consiste à
étiqueter les contenus textuels, avec Tree-Tagger et
Cordial. Ce module va nous permettre d'envisager deux façons
différentes de faire appel à des parseurs
syntaxiques (taggers) - l'un en ligne de commande et l'autre en
interface graphique -, dans une chaîne de traitement telle
que
celle-ci.
Etiquetage avec Tree-Tagger
Dans cette partie, le script de filtrage réalisé
lors de
la Boîte à outils 1, est repris et
complété pour automatiser le processus
d'étiquetage.
Avec Tree-Tagger, c'est simple : il suffit de l'appeler dans le
programme à l'aide de la commande
system,
qui permet d'invoquer un programme externe.
system ("treetagger
fichier-à-étiqueter
sortie-étiquetage")
L'étiquetage par Tree-Tagger est fait au fur et à
mesure du filtrage de contenus textuels.
Le fichier étiqueté est au format
TXT.
Or on a besoin d'une sortie
XML
...et... le programme lave plus
blanc que blanc! Il prend en charge
l'appel d'un
script
formatant la sortie finale en
XML.
Par contre, puisqu'il faut lui trouver un défaut qui n'en
est pas vraiment un, Tree-Tagger nécessite un
prétraitement du résultat de l'extraction : il ne
peut prendre en entrée que des fichiers avec un seul mot par
ligne. (cf. le
script
commenté)
Résultat
de l'étiquetage au format XML.
Etiquetage avec Cordial
Cordial est un peu taquin! Et exigeant! Il tient absolument
à passer par une interface pour
réaliser l'étiquetage des formes
filtrées.
Notons que Cordial ne veut que du fichier texte. On a donc
modifié notre programme de la BàO1 en retirant
tout simplement les balises
XMl(
script
modifié).
On le sustente donc avec la
sortie
texte,
quelques sucs gastriques de paramétrage lui sont
nécessaires pour digérer tout cela...
Le retour du charriot...
L'interprétation du retour-charriot, un
grain de sable insinué dans la petite mécanique
que voilà.
Dans le fichier résultant de l'extraction destiné
à Cordial, le retour
à la ligne est manifesté par
\n.
A l'édition, force est de constater qu'il y a un souci
d'interprétation :
Ce souci est évacué à l'aide d'un
petit
script
de remplacement, dont voici l'essentiel :
$Ligne=~s/(.*?)(\n)$/$1\r/g;
et l'interprétation est adéquate :
Et finalement, c'est merveilleux...
Ceci étant dit, ménageons la chèvre et
le chou : Tree-Tagger est le meilleur candidat parseur parce qu'il
permet
réellement de faire une chaîne de traitement
automatisée.
Cordial ressort un peu pâli de cette expérience :
en plus d'être payant, il nous faut lui ajouter une casserole
supplémentaire... l'interface.