Accueil BaO1 BaO2 BaO3 BaO4

BOITE A OUTILS 2

Etiquetage morpho-syntaxique

Le but de la 2ème boîte à outils est de réaliser l'étiquetage morpho-syntaxique à l'aide de deux outils: TreeTagger et Talismane.
Pour la réalisation de la 2ème boîte à outils deux programmes déjà fait (fournis par M.Fleury) en Perl ont été utilisés. Le 1er fait la tokenisation ("tokenise-utf8.pl") et le 2ème transforme le fichier au format .xml ("treetagger2xml-utf8.pl"). Nous avons également fait quelques modifications de ces scripts de Perl (e.g. l'apostrophe typographique).

Perl

La 2ème boîte à outils en Perl fait la même démarche que la 1ère (extraction du contenu textuel) en y ajoutant l'étiquetage par Treetagger et Talismane. Le script suit le schéma suivant: extraction -> tokenisation (script Perl) -> étiquetage (+ -> transformation au format .xml (script Perl)). Pour les deux étiqueteurs le programme réalise 3 fichiers finaux: 1) le fichier .txt contenant le contenu textuel des titres et des descriptions; 2) le fichier .xml étiqueté par TreeTagger, et 3) le fichier .txt étiqueté par Talismane.
Le script crée des fichiers temporaires où on réalise l'étiquetage. Ensuite, il concatène cette partie avec le reste des résultats et nettoie les fichiers temporaires pour la suite de l'étiquetage.
*** L'exécution du programme a pris 12 heures, je fournis donc l'étiquetage d'une seule rubrique. ***
perl b2.pl *nom_de_répertoire* *nom_de_rubrique*

Python

Les fichiers obtenus lors de l'exécution de la 1ère boîte à outils ont été utilisés pour l'étiquetage morpho-syntaxique. La 2ème boîte à outils prend donc en entrée le fichier .txt contenant le texte des titres et des descriptions.
Ce programme réalise la tokenisation par Perl, les tokens sont ensuite étiquetés en lemmes et POS par TreeTagger. Ce dernier fichier est fourni à un autre script en Perl, qui le transforme au format .xml. Au total, pour l'étiquetage de TreeTagger on obtient 3 fichiers: le fichier de tokens et les deux fichiers étiquetés par TreeTagger aux formats .txt et .xml.
Pour l'étiquetage par Talismane le programme prend en entrée le fichier .txt de la 1ère boîte à outils et retourne le fichier .txt étiqueté en POS, relations de dépendances et lemmes. Cet outil d'étiquetage possède sa propre méthode de tokenisation.
*** Le programme écrit en Python ne donne pas les mêmes fichiers finals pour TreeTagger, mais ils restent convenant pour la suite du projet. L'étiquetage prend 40 minutes pour une rubrique. ***
python3 B2.py *nom_de_fichier.txt*

Avec ce script on obtient les résultats suivants:


Comparaison des étiqueteurs

TreeTagger est un outil probabiliste qui réalise l'étiquetage à la base des arbres de décision (source). Plusieurs problèmes ont été rencontrés lors de l'étiquetage des articles. Après l'étiquetage avec le script en Python, la tokenisation n'a pas été bien faite: l'article a été annoté ensemble avec le nom:



Une solution testée pour résoudre ce problème a été de rajouter un espace après l'article. Cependant dans ce cas, la tokenisation se réalisait de la façon suivante: "l"-"'"-"mot" et l'article est annoté comme un nom. Néanmoins, cette solution créait un nouveau problème, il était donc préférable de garder la 1ère méthode. L'annotation réalisée avec Perl ne pose pas de problèmes dans la plupart de cas, à part quelques exemples, comme le suivant:



Treetagger reconnaît bien les entités nommées:



Talismane analyse le texte en 4 étapes: découpage en phrases, tokenisation, étiquetage et parcing. Chaque étape est résolue comme une tâche de classification réalisée de façon statistique (source). Contraire à TreeTagger, l'outil a des problèmes à reconnaître certaines entités nommées: