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