TP2 - Recherche d'information

Pour accéder au corrigé, ajoutez "correction" entre "TP2" et ".php" dans l'adresse de la page.

Le but de ce TP est de manipuler des documents sous la forme de vecteurs et d'implémenter un petit moteur de recherche.


Préliminaires

Pour cette séance, vous avez à disposition une collection de dépêches Reuters à cette adresse. Le fichier collection.lst contient la liste des textes de la collection.


Exercice 1 - Représentation d'un texte

Écrivez une classe Text qui représente un texte ou une requête sous une forme vectorielle (un dictionnaire Python qui a pour clés les token-mots du texte et pour valeurs leurs nombres d'occurrences dans le texte). Le texte se trouve soit dans un fichier soit dans une chaîne de caractères. Son constructeur prend donc deux paramètres optionnels (par défaut None) : le nom du fichier texte et une chaîne de caractères.

Exercice 2 - Représentation d'une collection

Écrivez une classe TextCollection qui représente une collection de documents sous la forme d'une liste (de Text). Son constructeur prend comme paramètre le nom du fichier définissant la collection. Elle contient la méthode getTexts() qui renvoie la liste des textes.

Exercice 3 - Moteur de recherche

À partir des classes précédentes, vous allez écrire un moteur de recherche simple qui lit en entrée standard les requêtes.

Exercice 4 - Bonus