:: Enseignements :: Licence :: L3 :: 2007-2008 :: Introduction à l'informatique linguistique ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Classification et résumé de textes |
Dans ce TP, vous aurez à implémenter un algorithme simple de classification de documents et de l'évaluer.
Ensuite, vous devrez tester un outil simple de résumé automatique de textes et tenter de l'améliorer.
Ressources
Pour cette séance, nous vous fournissons un certain nombre de ressources :
-
le module textSpaceVector.py
qui permet de charger et manipuler des collections de documents textuels sous la forme de vecteurs ;
-
le module categorization.py
qui permet de classer des documents à partir d'une collection de documents déjà classés ;
-
le module summarization.py qui permet de résumer un texte ;
-
une archive contenant un ensemble de textes anglais déjà classés (dépêches Reuter).
Exercice 1 - Classification de textes
Le fichier sugar-coffee-gas-docs.lst contient un ensemble de textes auxquels ont été assignées une ou plusieurs catégories thématiques (coffee, gas et sugar).
Chaque ligne comprend un chemin relatif de fichier, une tabulation, puis une séquence de catégories séparées par des virgules.
-
Dans votre répertoire de travail, créer un répertoire data dans lequel vous placerez le répertoire extrait de l'archive.
-
Découper la liste de textes de sugar-coffee-gas-docs.lst en deux : placer 70% des textes dans le fichier cat_apprentissage.txt; placer les 30% restant dans le fichier cat_evaluation.txt.
-
En utilisant la classe catTextVectorCollection du module categorisation.py, charger l'ensemble des documents de cat_apprentissage.txt
et afficher le barycentre pour la catégorie gas.
-
Implanter la méthode getBestCat(self,file) dans la classe catTextVectorCollection qui calcule la meilleure catégorie pour un nouveau document donné (fichier file).
L'algorithme utilisé sera le suivant : pour chaque catégorie, on calcule sa similarité avec le document (utilisation de la méthode sim de textVector).
On garde la catégorie dont le barycentre est le plus proche du document en question.
-
Tester cet algorithme pour quelques documents de cat_evaluation.txt.
-
Ecrire une procédure d'évaluation automatique de l'outil de classification en utilisant l'ensemble des documents de cat_evaluation.txt et en calculant la précision générale.
La précision est le nombre de documents bien classés sur le nombre de documents testés (ceux de cat_evaluation.txt).
-
[Bonus] Implanter la méthode getBestCategories(self,file,ratio) dans la classe catTextVectorCollection qui calcule les meilleures catégories pour un document file.
Le paramètre ratio permet de déterminer le seuil à partir duquel une catégorie sera considérée comme bonne pour le document.
Ce seuil est la multiplication de ratio par la similarité de la meilleure catégorie du document avec le document.
Exercice 2 - Résumé automatique
Charger un document en utilisant la classe
summarizationText lui-même plongé dans une collection de textes (collection
Reuters par exemple).
- Faire le résumé automatiquement (méthode summarize).
- Evaluer l'algorithme utilisé.
- Réitérer ces opérations pour plusieurs textes.
- Améliorer l'algorithme et l'implémenter.
© Université de Marne-la-Vallée