Master M2 - IP Recherche d’Information - TME 1. Indexation
•La balise Ldonne les liens vers d’autres documents (liste d’identifiants séparés par
des espaces). Cela sera utile lors de l’utilisation d’algorithmes utilisant les liens
entres articles ;
•La balise Cdonne le contenu
Les fichiers de question et de jugements de pertinence seront décrits dans un TME
ultérieur.
Dans ce TME, vous allez :
•Écrire un lecteur (parser) qui permet de lire les fichiers contenant les documents
et de renvoyer ceux-ci un par un ;
•Écrire l’ensemble des pré-traitements qui permettent de transformer un texte en
un ensemble de mots ;
•À partir des deux premiers composants, écrire un programme qui permet de con-
struire un index sur le disque. Cet index sera utilisé lors des TPs ultérieurs.
2 Lecture des documents
Dans un premier temps, il s’agit de construire un lecteur (Parser) de documents, qui
permet d’extraire les documents d’un fichier correspondant à une collection. Chaque
Parser est spécifique au type de données qu’il a à traiter et contiendra au minimum
une méthode, nextDocument, qui retourne le prochain document dans le fichier. Un
document est un objet qui contient un identifiant (chaîne de caractères), un titre, un
ensemble de liens vers d’autres documents (identifiants), et un texte.
3 Pré-traitement des documents
Afin de segmenter les documents, la méthode la plus simple est de chercher les suites
de caractères alphabétiques contigües. En Java, il existe une classe StringTokenizer qui
permet d’effectuer ce travail.
Pour normaliser, vous pouvez utiliser n’importe quel stemmer (ou écrire le votre...). Le
projet "Snowball" contient des stemmer en Java, C et python:
http://snowball.tartarus.org/download.php
En Python, vous pouvez utiliser le stemmer du projet "nltk" (qui contient également
un segmenteur):
http://www.nltk.org
4 Indexation des documents
Afin de mener à bien les TMEs suivants, les structures de données suivantes sont néces-
saires :
•Un index "direct" pour chaque document, qui contient le titre du document et
l’ensemble des termes apparaissant dans le document ainsi que leurs fréquences
associées ;
2