La deuxième phase du projet Boîte à Outils vise à étiqueter les contenus textuels ressortis à l'aide des trois méthodes présentées dans la BAO 1 (RegEx
, XML::RSS
et XML::XPath
). Pour ce faire, il a fallu avoir recours à deux programmes externes: TreeTagger et Talismane, dont on détaillera leur fonctionnement dans la section suivante.
Issu de l'Institut de Linguistique Computationnelle de l'Université de Sttutgart, TreeTagger est un outil d’annotation de textes contenant un lemmatiseur ainsi que des informations sur les parties de discours. Il a été conçu dans le but d'être utilisé dans presque toutes les langues parlées dans le monde (et même pour des langues mortes). En plus, il est inséré en tant que module dans un grand éventail de langages de programmation comme Python
, Java
, PHP
, etc.
La seule entrave du programme, c’est que, contrairement à Talismane, il ne propose pas un prétraitement de tokenisation (et non pas de normalisation), et il a pourtant besoin de recevoir en entrée un corpus déjà tokenisé, ce qui nous oblige notamment à utiliser un programme supplémentaire qui s'en occupe.
L'outil Talismane est un analyseur syntaxique pour la langue française écrit intégralement en Java. Dans le but de transformer un texte brut en un réseau de dépendances syntaxiques, Talismane utilise une analyse en cascade qui intègre quatre étapes successives : le découpage en phrases, la segmentation en mots (ce qui est notamment contraire à TreeTagger), l'étiquetage (qui attribue à chaque token une catégorie morphosyntaxique), et le parsing (qui sert à réperer et étiqueter les dépendances syntaxiques entre les mots).
Il faudrait noter que, à la différence de TreeTagger, il ne fait pas partie d'autres langages de programmation. Pour en savoir plus, cliquez ici.
De la même manière que BAO 1, BAO2 prend en entrée les fichiers XML de l'arborescence correspondante au corpus de la version numérique du journal Le Monde. Comme il a été mentionné précédemment, TreeTagger (qu'on appelle dès notre programme écrit en Perl) prend en entrée le fichier TXT tokenisé, tandis que Talismane reçoit un fichier TXT tel qu'il est, sans nécessité de prétraitements. Vu que dans notre programme le contenu textuel a été conservé dans une variable en tant que chaîne de caractères, il nous a fallu créer un fichier temporaire en format texte brut donné à TreeTagger et Talismane (où on sauvegarde à chaque fois le résultat de l'analyse) pour qu'ils effectuent l'étiquetage morphosyntaxique.
Le programme extrait les titres et les descriptions de chaque article et à ce stade produit deux sorties : un fichier XML étiqueté par TreeTagger (avec la catégorie grammaticale et le lemme correspondant) grâce au fichier de paramètres french-utf8.par
et un fichier en format texte brut tabulaire étiqueté par Talismane (contenant, entre autres, le lemme, le POS, rôle syntaxique, type de chunk, etc.). Cette sortie nous permettra éventuellement de faire de l'extraction de patrons en BAO 3 et de passer de textes aux graphes en BAO 4.
En se basant sur le premier script, qui s'occupe de l'extraction du titre et description, on peut donc partir des données textuelles qui nous intéressent pour effectuer l'étiquetage morphosyntaxique. Voici un aperçu des deux méthodes utilisées.
À la lumière des sections précédentes, on s'aperçoit effectivement des restrictions que TreeTagger suppose du côté de la segmentation et la tokenisation du texte. C'est pourquoi, on a intégré à notre programme principal deux scripts supplémentaires consacrés aux tâches de prétraitement.
En outre, visant à simplifier notre code, on a converti en procédure les longues invocations au programme:
À partir du script tokenise-utf.pl
, construit par les propres créateurs du TreeTagger, on a initialement rajouté des caractères délimiteurs des frontières de mot du français qui n'y étaient pas présents (tel que le caractère ′
représentant une apostrophe typographique), mais on s'est rendu compte au bout d'un moment que, même si la segmentation était correcte, l'étiquetage posait toujours des problèmes. Les lemmes des unités qui contenaient des apostrophes n'étaient pas bien taggés; c'est pourquoi on a dû normaliser toutes les apostrophes, ′
et '
, en apostrophe ASCII. Pour le télécharger, cliquez ici.
Fondé sur treetragger2xml-utf.pl
, son objectif est de produire un fichier structuré en format XML qui présente l'étiquetage morphosyntaxique opéré par TreeTagger. Visant à le rendre plus lisible et expliciter les relations de dépendance parmi les éléments, on l'a édité en rajoutant des indentations. Pour le télécharger, cliquez ici.
Quant à Talismane, il a suffi de lancer le programme dès notre script Perl. La seule insertion qu'on a effectuée s'explique pour des raisons de lisibilité et amélioration du balisage : pour bien distinguer les séquences correspondantes aux titres et descriptions, on a rajouté les frontières suivantes (ainsi que le chemin du fichier auquel il correspond):
Voici le script utilisé :
Voici la sortie résultante :
Exemple :
Voici la sortie résultante :
Exemple :