TP5 - Étiquetage morphosyntaxique
Le but du TP est de manipuler les expressions rationnelles pour découper les textes en tokens.
Nous aborderons l'indexation de documents et la recherche de motifs.
Préliminaires
Exercice 1 - Étiquetage morphosyntaxique
Pour cet exercice, on utilisera seulement les fichiers A01.txt, A02.txt et A03.txt.
Installation et prise en main de Weka
Nous allons utiliser le logiciel Weka, dans lequel plusieurs algorithmes de classification supervisée sont implémentés.
- question(); ?>Installez Weka sur votre compte.
- Pour prendre en main le logiciel, nous allons utiliser ce fichier exemple qui correspond
à l'exemple, en deux dimensions, de classification à trois classes donné lors du cours 3
(diapo 25).
question(); ?>Téléchargez-le !
- question(); ?>Ouvrez-le pour avoir un aperçu de la structure du fichier CSV
(les colonnes sont séparées par des virgules) et noter les éléments suivants :
- chaque ligne correspond à un élément
- chaque colonne correspond à un attribut des éléments (il est possible de ne pas utiliser d'attributs entiers, mais des
chaînes de caractères)
- la dernière colonne correspond à l'étiquette, elle contient un point d'interrogation
pour les éléments à classer.
- Faites un essai de classification sur ce fichier :
- question(); ?>après ouverture de Weka, cliquez sur le bouton Explorer
- question(); ?>dans l'onglet Preprocess ouvert par défaut, cliquez sur Open File
et choisissez le fichier TP5-training.csv (sélectionnez la bonne extension de fichier...) ;
l'interface de Weka vous permet alors d'explorer les données en représentant des histogrammes pour chaque classe et chaque attribut (chaque couleur correspond à une classe)
- question(); ?>dans l'onglet Classifier, cliquez sur Choose pour choisir une méthode de
classification supervisée (par défaut, ZeroR attribue à tous les éléments la classe la plus fréquente ; vous trouverez
sur cette page une description
et des références sur les principales méthodes de classification proposées)
- question(); ?>Cliquez sur le bouton More options... afin de cocher la case Output predictions qui aura pour effet de calculer les étiquettes pour les éléments étiquetés par un point d'interrogation
- question(); ?>Cliquez sur le bouton Start : par défaut, Cross Validation
est coché et fixé à 10, cela signifie que Weka utilisera 90% du corpus comme corpus d'apprentissage et 10% du corpus comme
corpus de test, et répétera 10 fois l'opération de telle sorte que chaque mot apparaitra dans exactement un corpus de test.
- Weka affiche alors un rapport de résultats, notamment, dans la section Summary, le taux
d'éléments correctement classés, et dans ConfusionMatrix, la correspondance entre les classes réelles et les classes supposées.
- question(); ?>Essayez plusieurs classifieurs, notamment dans la catégorie rules, afin d'avoir des aperçus (dans le rapport) du
type de règles calculées.
Test des méthodes de classification supervisée de Weka pour l'étiquetage grammatical
- question(); ?>Écrivez en Python un script qui crée à partir de la concaténation des fichiers A01.txt, A02.txt et A03.txt un fichier CSV qui sera utilisé en entrée de Weka :
vous utiliserez 3 attributs pour chaque mot à étiqueter : le mot lui-même, le précédent, et le précédent du précédent (modèle
des trigrammes), et la classe de chaque élément sera l'étiquette grammaticale du mot.
- question(); ?>Testez divers algorithmes de classification de Weka en comparant les résultats, et en tentant de comprendre le modèle utilisé, décrit dans la fenêtre des résultats (particulièrement pour les méthodes de type rules ou tree). Certaines méthodes
sont très lentes, ou font planter Weka pour des problèmes de mémoire (notez que la barre d'état vous indique si la méthode est en train de construire son modèle à partir du corpus d'apprentissage, ou si elle est à une étape ultérieure...), essayez une autre méthode si vous rencontrez ces désagréments.
- question(); ?>Modifiez le fichier CSV fourni en entrée, en vous limitant par exemple au modèle des
bigrammes (ou en ajoutant d'autres paramètres), et comparez les résultats obtenus.