:: Enseignements :: Licence :: L3 :: 2007-2008 :: Introduction à l'informatique linguistique ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Représentation vectorielle des textes et recherche documentaire |
Le but de ce TP est de manipuler la notion de représentation vectorielle des textes dans le cadre de la recherche documentaire.
Ressources
Pour cette séance, nous vous fournissons un certain nombre de ressources :
- un module python (avec des trous) permettant de charger et manipuler des collections de documents textuels sous la forme de vecteurs ;
- un exemple d'utilisation du précédent module, pour lequel vous aurez besoin de créer un fichier texte data/corpus.txt ;
- une archive contenant un ensemble de textes anglais (dépêches Reuter).
Exercice 1 - Manipulation d'un document
- Créer un fichier texte en anglais (copier-coller une dépêche Yahoo par exemple).
-
A l'aide de la classe textVector et de son constructeur, charger ce texte sous la forme d'un vecteur.
Vous utiliserez l'expression rationnelle que vous avez utilisée dans le TD 1 pour tokeniser le texte (paramètre pattern du constructeur).
-
Afficher le vecteur associé au document à l'aide de la méthode printVector, de telle manière que les composantes soient les fréquences des tokens-mots.
Exercice 2 - Manipulation d'une collection de documents
- Créer cinq fichiers textes (dépêches Yahoo).
- A l'aide de la classe textVectorCollection, charger ces cinq fichiers sous la forme de vecteurs (utiliser le paramètre list de son constructeur).
-
Afficher pour chaque token-mot de la collection, le nombre de documents dans lequel il apparaît.
Vous utiliserez la méthode printSortedTokens de la classe textVectorCollection.
-
En faisant varier les paramètres with_freq et with_idf de la méthode printVector de la classe textVector,
afficher les vecteurs des textes de la collection de deux manières :
- chaque composante est la fréquence du token-mot associé ;
-
chaque composante est la pertinence tf.idf du token-mot associé dans le contexte de la collection de textes.
Ne pas oublier d'affecter la collection au paramètre collection dans printVector !
Exercice 3 - Application de requêtes sur une collection de documents
-
Charger maintenant 1000 textes de la collection Reuter qui vous est fournie (cf. ci-dessus).
Pour cela, vous créerez un fichier qui listera les chemins de ces textes (un chemin de fichier par ligne) en utilisant les programmes find et head dans un shell.
Vous utiliserez le paramètre file du constructeur de textVectorCollection.
-
Afficher pour chaque token-mot de la collection, le nombre de documents dans lequel il apparaît.
Vous utiliserez la méthode printSortedTokens de la classe textVectorCollection.
Que constatez-vous ?
-
Compléter la méthode scalarProduct de textVector, qui permet de calculer le produit scalaire entre le textVector self et le textVector vector.
Les paramètres with_freq et with_idf permettent de spécifier le type de composante des vecteurs (ex. fréquence, pertinence tf.idf, ...).
Le paramètre with_norm indique si l'on doit normaliser le résultat (i.e. un résultat compris entre 0 et 1).
-
Appliquer différentes requêtes à la collection de documents à l'aide de la méthode applyQuery de textVectorCollection, en faisant varier la nature des composantes des vecteurs des textes (poids binaire, fréquence, pertinence tf.idf,...).
Que constatez-vous ?
© Université de Marne-la-Vallée