Boîte à Outils n°2 : Etiquetage de Contenus Textuels



Présentation

1. Objectif

L’objectif de cette boîte à outils est d'étiqueter morphosyntaxiquement les fichiers de sortie de la BàO1 avec TreeTagger et Talismane, dans deux fichiers respectifs, un .xml pour TreeTagger, et un .tal pour Talismane.


2. Le corpus

Cette BàO, consistant en une amélioration de la BàO1, elle exécute les mêmes tâches que cette dernière, puis étiquette le fichier produit. Par conséquent, le corpus est le même que pour la BàO1 : les flux RSS du journal Le Monde de l'année 2019.


3. Qu’est-ce que l'étiquetage morphosyntaxique ?

L'Etiquetage Morphosyntaxique, ou Part-Of-Speech (POS) Tagging, se réfère à la méthode consistant à associer à chaque unité lexicale d'un texte une "étiquette" contenant des informations sur la morphologie et les relations syntaxiques de cette unité (comme le genre, le nombre, la nature grammaticale ou la fonction). Chaque étiqueteur a son jeu d'étiquettes, souvent similaire aux autres mais comportant quelques spécificités de dénomination ou d'analyse.

Exemple: étiquetage de la phrase "Le python c'est fantastique !" avec l'analyser LATL de l'Université de Genève.

étiquetage de la phrase 'Le python c'est fantastique !'


4. étiqueteurs utilisés

Le script se base, comme précisé précédemment, sur l'utilisation de deux logiciel d'analyse morphosyntaxique pour étiqueter le texte récupéré dans les fils RSS du Monde 2019.
Le premier étiqueteur est TreeTagger, de l'Université de München. Sa réputation n'est plus à faire, et il est utilisé de par le monde dans pléthore de projets et applications du domaine du TAL. Sa disponibilité en de nombreuses langues en fait un outil de choix, malgré les erreurs disparates que son excellent taux de précision laisse parfois passer.
Le second étiqueteur est Talismane, un analyseur développé par Assaf Urieli de l'Université de Toulouse. Il se focalise sur le français, a l'avantage d'être multiplateformes grâce à son codage en Java, et présente la particularité d'être configurable à chaque étape de traitement.


5. Langages utilisés

Pour la réalisation des différents programmes nous avons utilisé les langages de programmation Python et Perl.


Traitement

Notre BàO se décline sous ses versions Perl et sa version Python, avec des modes de fontionnement similaires : La partie de script originelle (BàO1) extrait les fils RSS, puis ceux-ci sont étiquetés par les deux logiciels. À l'origine, les scripts étiquetaient individuellement chaque titre et description qu'ils extrayaient, ce qui occasionnait un temps de traitement invraisemblablement long du fait de l'appel répété à chacun des étiqueteurs. Une fois le script modifié pour prendre en entrée le fichier de sortie BàO1 et d'en étiqueté le contenue d'une traite (donc un seul appel à chaque étiqueteur), l'efficacité du programme s'est révélée, avec des temps de traitement, notamment pour le programme python, passant de plusieurs heures à quelques minutes par rubrique.
Données de départ : fils RSS de l'année 2019 du journal Le Monde
Sortie : 1 fichier TXT brut & 1 fichier XML (partie BàO1), puis 1 fichier .xml (étiqueté avec TreeTagger) et 1 fichier .tal (étiqueté avec Talismane).


SCRIPT

Version 1 : SCRIPT PERL
Langage utilisé : Perl
Méthode : méthode vu en cours, à savoir, balisage TreeTagger en même temps que son extraction + balisage Talisman par fil RSS (donc appel aux commandes systèmes très récurrent ce qui explique le temps de traitement conséquent).
Commande :$ perl bao2_v-perl_regex.pl REPERTOIRE RUBRIQUE
Code :

Programme Perl REGEX


Version 2 : SCRIPT PYTHON
Langage utilisé : Python
Méthode : Balisage du fichier de sortie (txt) BàO1 contenant des séparateurs spécifiques aux frontières des balises items, titres et descriptions, puis substitution de ces derniers par lesdites balises.
Commande :$ python3 BAO2-Rapide.py REPERTOIRE RUBRIQUE
Temps de Traitement : TreeTagger seul: 1min10. Avec Talismane: 57m40s.
Code :

Programme Pyhton


Version 3 : SCRIPT PERL XML::RSS
Langage utilisé : Perl
Méthode : Etiquetage avec TreeTagger en même temps que l'extraction des contenus textuels + Etiquetage Talismane de l'ensemble du contenus extraits en une seule fois à la fin de l'extraction de toutes les balises.
Commande :$ perl bao2_v-perl_xmlrss.pl REPERTOIRE RUBRIQUE

Programme Perl XML::RSS


Version 4 : SCRIPT PERL XML::XPath
Langage utilisé : Perl
Méthode : Etiquetage avec TreeTagger en même temps que l'extraction des contenus textuels + Etiquetage Talismane de l'ensemble du contenus extraits en une seule fois à la fin de l'extraction de toutes les balises.
Commande :$ perl bao2_v-perl_xpath.pl REPERTOIRE RUBRIQUE
Code :

Programme Perl XPATH


Résultats

1. SORTIE Talismane

La sortie format texte brut TXT de l'étiquetage morphosyntaxique avec Talismane pour les rubriques : à la Une, Europe, International, Planète, Culture, Livre, Cinéma.

RUBRIQUE
FICHIER ÉTIQUETÉ AVEC TALISMANE
A la Une --- Nº 3208
International --- Nº 3210
Europe --- Nº 3214
Planète --- Nº 3244
Culture --- Nº 3246
Livres --- Nº 3260
Cinéma --- Nº 3476
TOUT

Exemple : sortie étiqueté avec Talismane pour la rubrique A la Une (3208)


2. SORTIE XML TREETAGGER

La sortie au format structuré XML étiqueté avec TreeTaggerpour les mêmes rubriques :

RUBRIQUE
FICHIER XML ÉTIQUETÉ AVEC TREETAGGER
A la Une --- Nº 3208
International --- Nº 3210
Europe --- Nº 3214
Planète --- Nº 3244
Culture --- Nº 3246
Livres --- Nº 3260
Cinéma --- Nº 3476
TOUT

Exemple : un extrait de la sortie xml étiqueté avec TreeTagger de la rubrique A la Une (3208)




3. REMARQUE :

Tester sur un même échantillon de fil RSS (2 jours) les scripts Perl connaissent des performances de temps de traitement différent :

SCRIPT
Temps d'exécution moyen
PERL REGEX
~1m37s
PERL XML::RSS
~0m55.5
PERL XPATH
~1m2s

Le script Perl le plus performant que nous avons est le script utilisant la bibliothèque XML::RSS qui ne comprend qu'un appel au script java permettant d'effectuer l'étiquetage avec Talismane.
A titre indicatif, ce script traite la rubrique A la Une en 1h30.