:: Enseignements :: Master :: M2 :: 2009-2010 :: Traitement statistique de document et moteurs de recherche ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Classication supervisée de textes |
Dans ce td, nous proposons d'implémenter un outil de classication de textes,
utilisant la méthode K-NN.
Préliminaires
Pour cette séance, vous avez à disposition une collection de dépêches
Reuters à l'adresse suivante:
/home/ens/mconstan/tal/reuter-collection-tp2.
Cette collection de textes bruts a été extraite automatiquement de la collection
Reuters-21578.
Ces dépêches sont classées dans trois catégories :
sugar,
coffee et
gas.
A chaque texte, sont associés la ou les catégories auxquels il appartient.
Les différents textes se trouvent dans le répertoire
texts.
La collection est divisée en deux sous-collections:
l'une pour l'apprentissage (collection-app.lst), l'autre pour l'évaluation (collection-eval.lst).
Chacune d'elle est définie par un fichier qui contient la liste des dépêches avec la ou les catégories auxquelles elles appartiennent.
Exercice 1 - Représentation d'un texte
Ecrire une classe
Text qui représente un texte sous une forme vectorielle (
HashMap<String,Integer>).
Son constructeur prend le nom du fichier et la liste de ses catégories comme paramètres.
Elle possède plusieurs méthodes:
-
public String getName() qui renvoie le nom du fichier
-
public ArrayList<String> getCategories() qui renvoie la liste des catégories
-
public ArrayList<String> getWords() qui renvoie la liste des mots du texte
-
public int getWeight(String word) qui renvoie le poids logarithmique normalisé du mot word
-
public double sim(Text t) qui calcule la similarité avec un autre Text t.
Exercice 2 - Représentation d'une collection
Ecrire une classe TextCollection qui représente une collection sous la forme d'une liste de Text (ArrayList<Text>).
Son constructeur prend le nom du fichier définissant la collection, comme paramètre.
Elle contient une méthode public ArrayList<Text> getTexts() qui renvoie la liste des textes.
Exercice 3 - Algorithme k-NN
-
Implémenter, dans une classe KNNClassifier, l'algorithme k-NN vu en cours que vous adapterez aux trois catégories.
Tester en faisant varier k.
-
Evaluer le classifieur sur la collection d'évaluation.
Pour cela, mesurer la proportion de documents bien classés par votre classifieur par rapport à la classification dans la collection d'évaluation.
Tenir compte du fait qu'un document peut être dans plusieurs classes.
© Université de Marne-la-Vallée