:: Enseignements :: Licence :: L3 :: 2007-2008 :: Introduction à l'informatique linguistique ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Racinisation et étiquetage morpho-syntaxique |
Ce TP consiste à utiliser un raciniseur de mots utilisant l'algorithme de Porter
et un étiqueteur morpho-syntaxique
TreeTagger.
Ressources
Pour cette séance, nous vous fournissons un certain nombre de ressources :
-
le module tagging.py qui permet de manipuler des textes étiquetés (classe taggedText),
Exercice 1 - Manipulation d'un raciniseur
Écrire une fonction qui prend une liste de mots en paramètre et retourne cette même liste de mots racinisés.
Vous utiliserez la classe PorterStemmer du module nltk et sa méthode stem qui prend un mot en argument.
Exercice 2 - Manipulation de TreeTagger
La classe
taggedText dans le module
tagging.py permet de représenter un texte étiqueté par une liste d'unités lexicales (classe
lexicalUnit). Une instance peut être créée en chargeant directement le texte étiqueté à partir d'un fichier au format TreeTagger ou d'un fichier texte non étiqueté qui est alors automatiquement étiqueté au moyen de
TreeTagger.
-
En utilisant la classe taggedText et ses méthodes, écrire une fonction qui prend un texte en entrée, fait un étiquetage morphosyntaxique au moyen de TreeTagger et l'affiche à l'écran.
-
Modifier le code précédent pour que le texte étiqueté soit sauvegardé dans un fichier au format TreeTagger (attention, il existe une méthode dans la classe!)
-
À quoi correspondent les étiquettes utilisées ?
Exercice 3 - Filtrage
-
Implanter la méthode filter(self,posSet) de la classe taggedText qui retourne un nouveau texte étiqueté :
celui-ci ne contient que les unités lexicales dont la catégorie grammaticale (ou partie du discours) est présente dans l'ensemble posSet.
-
Écrire une fonction qui prend un texte brut en paramètre et qui renvoie la liste des noms de ce texte sous leur forme lemmatisée.
-
Modifier la fonction précédente afin que celle-ci racinise les lemmes.
-
Comment pourrait-on améliorer la représentation des textes sous la forme de vecteurs de mots ?
-
[BONUS] Modifier la classe textVector des précédents TDs pour tenir compte de cette amélioration.
© Université de Marne-la-Vallée