Moteurs de recherche textes

Transcription

Moteurs de recherche textes
Moteurs de recherche textes
Projet
1
Introduction
L’objectif de ce projet est de réaliser un moteur de recherche textuel qui doit ordonner
les documents d’une collection suivant une requête libre donnée. Ce moteur est totalement générique dans le sens où il est basé sur un modèle vectoriel et qu’il n’a pas de
paramètres à être estimés sur une base étiquetée donnée. Ce moteur sera testé sur la base
CACM, qui contient les titres, auteurs et résumés (lorsque ces derniers sont disponibles)
d’un ensemble d’articles scientifiques, ainsi qu’un ensemble de requêtes et de jugements
de pertinence. Partant du texte brut de le base, vous devrez programmer l’ensemble des
étapes menant à un moteur de recherche opérationel: prétraitements de la base, création du vocabulaire, indexation et les algorithmes de recherche. Vous pourrez ensuite
évaluer les performances de votre moteur de recherche en terme de rappel/précision sur
les requêtes et leur ensemble de jugements de pertinence fournis de la collection CACM.
De plus, vos applications devront fonctionner sur le web (par la CGI) et auront chacun
deux modes de fonctionnement :
• Un mode d’interrogation dans lequel on entre une requête (sous forme de mots clés)
pour le premier moteur, ou un numéro d’image test (voir ci-dessous) pour le second,
et pour lesquels les systèmes retournent une liste de documents ou de concepts
ordonnée selon un score représentant la similarité entre la requête ou l’image par
rapports aux instances (documents ou images) des collections respectives.
• Un mode évaluation dans lequel on entre, soit une requête de la base CACM, soit
un nombre d’image de la base test sur lesquels on va calculer les statistiques. On
affichera la performance du système en fonction des paramètres choisis en termes
de rappel et de précision.
Le système aura aussi des paramètres de configuration comme le type de mesure de
similarité (cosine ou BM25), ou le nombre de voisins utilisés pour le moteur images.
2
Moteur de recherche textes
L’ensemble des documents est disponible à l’adresse suivante:
http://ir.dcs.gla.ac.uk/resources/test_collections/cacm/
Le répertoire contient 6 fichiers, cacm.all, cite.info, common_words, qrels.text,
query.text et README. Ce dernier contient des informations sur les fichiers précédents.
La collection contient 3204 documents, dont le texte est disponible dans le fichier
cacm.all. Dans ce fichier, chaque document est séparé par une balise .I (suivie de
l’identificant du document) qui contient le titre du documents (balise .T), les auteurs
(balise .A), la date de publication (balise .B), l’abstract (balise .W), des mots-clefs (balise
.K) ainsi que d’autres informations que nous ignorerons (en particulier des informations
1
ISN
Moteurs de recherche textes et images
par rapport aux articles cités dans la balise .X). Certaines informations (par exemple
abstract ou mots-clefs) peuvent ne pas être disponibles pour certains documents. le
fichier query.text contient le texte des requêtes. Chaque requête est précédée d’une
balise .I (suivi de l’identifiant de la requête), le texte de la requête est contenu dans
la balise .W, la balise .N donne l’auteur de la requête (à ignorer). Certaines requêtes
sont données avec une balise .A qui représente des auteurs spécifiques pour les articles à
renvoyer. Le fichier qrels.text contient les identifiants des documents pertinents pour
les requêtes. Chaque ligne donne un couple d’idientifiants (requête, document pertinent
pour la requête). Ce fichier sera utile lors des évaluations de votre système. Enfin,
le fichier common_words contient les mots fréquents de la collection, et nous servira de
stop-list. Le fichier cite.info contient des informations relative au codage des citations
(balise .X) dans le fichier cacm.all. Ce fichier est ignoré dans la suite.
2.1 Effectuez les prétraitements suivants :
• Pour chaque document, supprimez le contenu de toutes les balises sauf .T, .A, .W
et .B. Supprimez ces balises de façon à ce que chaque document contienne tout le
texte contenu dans ces balises sans distrinction de la balise d’origine.
• Considérez tous les caractères non alphanumériques comme des séparateurs de
mots, puis supprimez les.
• Supprimez la casse en mettant tous les mots en minuscule.
• Supprimez les mots appartenant au fichier common_words.
Quels sont les avantages et les inconvénients de tels prétraitements pour la recherche ?
Vous pourrez vous appuyer sur les exemples suivants:
• [email protected]
• 100,000.52 $
• C++
• Bill Gates
Donnez un(des) exemple(s) d’autres prétraitements standard en recherche d’information
(ou des alternatives à ceux qui sont proposés).
2.2 Indexation :
1. Pour chaque mot apparaissant dans la collection, calculez et stockez (en mémoire
ou sur le disque dur) les valeurs des idf. Quelle est la taille du vocabulaire considéré
?
2. À partir de la collection prétraitée et du vocabulaire, écrivez une routine permettant de calculer les représentations booléennes et tf.idf des documents et de
[email protected]
2
ISN
Moteurs de recherche textes et images
les enregistrer sur le disque dur dans deux fichiers différents. Attention cependant au point suivant: les matrices sont très creuses (la plupart des entrées sont
nulles). L’implémentation doit être faite de façon à ce que les valeurs nulles ne
sont stockées ni en mémoire ni sur le disque dur.
3. En utilisant les jugements de pertinence fournis dans le fichier qrels.text, pouvez
vous dire si certaines requêtes n’ont aucun document pertinent dans la collection
? Si oui, ignorez ces requêtes dans la suite. Séparer ensuite les requêtes restantes
en deux ensembles d’apprentissage et de test, et écrivez une routine qui estime les
paramètres du modèle probabiliste sur la base d’apprentissage.
2.3 Recherche et interface utilisateur (en CGI)
Écrivez une interface utilisateur permettant d’interroger le moteur, puis de voir combien
de documents le moteur de recherche renvoie, le temps de traitement de la requête,
ainsi que la liste ordonnée selon le score de pertinence des identifiants des N premiers
documents. Votre algorithme de recherche peut utiliser la fonction cosinus et BM25 pour
calculer la similarité entre une requête et un document dans le cas vectoriel. Le nombre
N de documents ordonnés retournés doit être paramétrable et saisi dans l’interface
2.4 Mesures de performance
Dans votre module d’évaluation, vous devez évaluez votre moteur de recherche en
utilisant les requêtes de la base CACM et en utilisant les jugements de pertinence
associés. Donnez la courbe précision/rappel de votre système opérant soit avec la
mesure cosinus soit avec la fonction de score BM25, où pour chaque valeur de rappel r ∈ {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}, on calcule la précision moyenne sur
l’ensemble des requêtes de la base.
[email protected]
3

Documents pareils