Tree-Tagger
est un outil en ligne de commande disponible pour Windows, Unix et Mac. Il est utilisable pour plusieurs langues, dont le français. Une façon d'étiqueter un fichier par TreeTagger est la commande suivante :
cat fichier-à-etiqueter | tree-tagger-french > fichier-étiqueté
Tree-Tagger
ne s'efforce pas à étiqueter les balises XML
. Ceci nous permet d'enchaîner directement après le filtrage et de ne pas perdre de l'information (classement des éléments en title et description) comme dans le cas où on devait débaliser le fichier avant de le soumettre à l'étiquetage.
Voici un bout du fichier étiqueté par Tree-Tagger
(figure 1) :
Cependant, cette sortie de l'étiquetage n'est pas encore un document XML
bien formé, car Tree-Tagger
rajoute une balise <unknow>
pour le lemme des mots qui lui sont inconnus et contrairement aux règles de XML
, cette balise est uniquement ouvrant.
Cette erreur est corrigée à l'étape suivante car on applique à la sortie du Tree-Tagger
le script addSTRUCT.pl qui structure l'information de ce fichier afin qu'on puisse obtenir ceci (figure 2) :
En rajoutant au script de filtrage filtreRSS.pl l'appel du Tree-Tagger
et l'appel du script précédent nous obtenons le script filtreRSStagTT.pl. Ce script prend en argument l'adresse de l'arborescence des répertoires contenant les fils RSS. Son exécution prends 7 secondes sur un Intel Core 2 Duo sur 2,1GHz et 1Go RAM. Il produit trois fichiers :
SORTIEfiltreRSS.xml
qui est la sortie du filtrage identique à celle de l'étape 1.taggerTT
qui est la sortie du Tree-Tagger
affichée sur la figure 1.RSSstructTT.xml
qui est le document XML
final affiché sur la figure 2.Une partie du fichier RSSstructTT.xml (le fichier entier a 14,9 Mo) peut être affichée avec cette feuille de style XSL
Cordial
est un programme Windows et il ne peut pas fonctionner comme une partie des procédures appelées par un script, le fichier à étiqueter doit être passé à Cordial à la main.
J'ai décidé d'étiqueter le contenu débalisé du fichier SORTIEfiltreRSS.xml
, issu de l'étape filtrage. Pour débaliser le fichier, j'ai utilisé le script extractBalises.pl qui prend en argument le fichier XML
et qui recopie le contenu des balises <title>
et <description>
dans un fichier texte appelé InputCordial.txt.
Avant d'étiqueter le fichier avec Cordial
, il faut bien s'assurer que les fins de lignes dans ce fichier sont CRLF - Windows, sinon Cordial
ne prend pas le simple saut de ligne de UNIX - LF comme un séparateur et il colle tous les derniers mots d'une ligne (s'ils ne sont pas suivis d'un point) au premier mot de la ligne suivante.
Voici une illustration du fichiers étiqueté par Cordial
:
Le fichier étiqueté OutputCordial.cnr est ensuite converti en XML
par le script cordial2xml.pl qui structure le fichier de la même façon que le script addSTRUCT.pl qui a été utilisé pour le fichier étiqueté par Tree-Tagger
. La différence entre les deux est que le second script travaille avec du texte brut, tandis que le premier travaille déjà avec un document XML
.
Nous obtenons RSSstructCordial.xml
. Une partie du fichier RSSstructCordial.xml (le fichier entier a 14,9 Mo) peut être affichée avec cette feuille de style XSL