:: Enseignements :: Master :: M2 :: 2008-2009 :: Traitement Automatique des Langues ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Textes, mots et statistiques |
Ce TP sera consacré à l'étude de la fréquence des mots dans un grand corpus.
Préliminaires
Pour cette séance, vous avez à disposition une
archive comprenant une collection de dépêches
Reuters.
Cette collection de textes bruts a été extraite automatiquement de la collection
Reuters-21578.
La liste des textes est donnée dans le fichier
doc-list.lst se trouvant dans le répertoire principal de la collection.
Attention au format d'une ligne de ce fichier : il peut y avoir deux champs !
Les langages de programmation que vous pouvez utiliser sont Python et Java.
Exercice 1 - Fréquence des mots dans un corpus
- Ecrire une fonction tokenize qui prend comme paramètre un nom de fichier et retourne la liste des token-mots de ce fichier.
Si vous utilisez Python, vous vous aiderez des modules de NLTK (cf. documentation).
- Ecrire une fonction count_words qui prend comme paramètre un nom de fichier qui contient une liste de textes (soit un corpus).
Elle retournera un dictionnaire (ou table de hachage) qui, pour chaque mot du corpus, associe son nombre d'occurrences.
- Ecrire une fonction sort_words qui prend comme paramètre un dictionnaire qui associe à des mots leur nombre d'occurrences dans un corpus.
Elle retournera la liste des mots de ce dictionnaire, triés dans l'ordre décroissant en fonction de leur fréquence.
Exercice 2 - TF.IDF
- Modifier vos programmes précédents pour calculer un dictionnaire associant à chaque mot le nombre de documents dans lequel il apparaît.
- Trier les mots selon cette valeur. Qu'observez-vous?
-
Ecrire une fonction qui prend en paramètre un fichier texte.
Elle calculera un dictionnaire qui pour chaque mot du texte associera sa mesure TF.IDF vue en cours.
Trier les mots triées selon le TF.IDF.
Exercice 3 - Bonus
Créer un fichier au format
gnuplot contenant un ensemble de points associant le rang d'un mot à sa frequence.
A l'aide de
gnuplot, construire le graphe dessinant la courbe décrivant la fréquence d'un mot en fonction de son rang.
Tester pour l'ensemble des mots de la collection
Reuters
© Université de Marne-la-Vallée