Evaluation des Systèmes de Recherche d'Information

1. But du TP

Ce TP est dédié à l'utilisation d'un logiciel qui permet de réaliser des évaluations des systèmes de recherche d'information trec_eval.

2. Déroulement

2.1. Rapatriement et compilation de trec_eval

Dans cette partie, il vous est demandé de rapatrier le logiciel trec_eval. Deux cas sont possibles :

Sous UNIX/MacOS

Vous devez rapatrier le logiciel sur le site officiel TREC : trec_eval 9.0.7. Vous devez ensuite l'installer (en le décompressant avec

 gunzip trec_eval-9.0.7.tar.gz
 qui génére trec_eval-9.0.7.tar,

puis

 tar xvf trec_eval-9.0.7.tar

qui crée le fichier trec_eval.9.0

Enuite, vous le compilez avec

  make trec_eval

ce qui génère l'exécutable trec_eval.

Sous Windows

Cette version n'est pas garantie, mais vous pouvez essayer… Vous devez rapatrier le code exécutable trec_eval sous Windows, ainsi que le fichier de batch run_trec_eval.bat dans le même répertoire.

Vous devez rapatrier http://ctp.di.fct.unl.pt/~jmag/ir/materials/trec_eval_windows.zip. Dézipper le fichier, ce qui crée un répertoire trec_eval_windows. Rapatrier le fichier run_trec_eval.bat ainsi que les deux fichiers d'évaluation (xf. ci-dessous) avant d'exécuter ./run_trec_eval

2.2. Fichiers utilisés par trec_eval

Comme nous l'avons vu en cours, pour évaluer un système de recherche d'information il est nécessaire d'avoir à disposition, d“un côté

  1. les estimations réalisées par des humains, classiquement appelé trec_rel ou qrel.txt . Un exemple de fichier qrel.txt est donné ici
  2. les résultats du système évalué, appelé trec_top ou qtop.txt, est donné ici

Fichier trec_rel.txt

Ce fichier contient l'ensemble des documents pertinents d'après un humain, par requête. Le fichier trec_rel est composé de lignes de la forme : Query_id iter docno rel avec

  query_id : un entier identifiant une requête;
  iter : constant et égal à "0", il est ignoré mais il faut le mettre;
  docno : l'identifiant d'un document (chaîne de caractère);
  rel est un entier (1 pour pertinent, 0 pour non pertinent). (NOTE : les lignes avec 0 peuvent être omises). 

Les lignes sont triées par valeur de query_id croissant.

Un exemple de ligne, tiré du fichier qrel.txt qui vous est fourni, est :

  01 0 doc1 1

qui indique que pour la requête “01”, le document “doc1” est pertinent.

Pour que trec_eval puisse travailler il faut que les identifiants de documents du fichier trec_rel soient cohérents avec ceux du fichier trec_top (voir ci-dessous), et il en est de même pour les identifiants des requêtes.

Fichier trec_top_file

Ce fichier contient le résultat d'un système qui a exécuté une ou plusieurs requêtes. Le fichier trec_top_file est composé de lignes de la forme : query_id iter docno rank sim run_id séparés par un espace, avec :

  query_id : un entier identifiant une requête;
  iter : constant et égal à "0", il est ignoré mais il faut le mettre;
  docno : l'identifiant d'un document (chaîne de caractère);
  sim : une valeur réelle (notation anglaise avec des points) de valeur de pertinence calculée par le système;
  rank : le rang du résultat, un entier qui débute à 0;
  run_id : une chaîne qui identifie le système évalué. 

Le fichier est supposé trié sur les query_id, et pour une requête il est trié par valeur de pertinence sim décroissante.

Un exemple de ligne, tiré du fichier qtop.txt qui vous est fourni, est :

  01 0 doc1 0 12.5 0

qui indique que pour la requête “01”, le document en position 0 est “doc1” et que sa valeur de pertinence calculée par sysyème est 12.5 .

Explication des résultats de trec_eval

Quand on lance le programme trec_eval, il affiche un certain nombre de mesures d'évaluations à l'écran, en fonction des fichiers qtop et qrel qui lui sont passés en paramètre. Nous décrivons ici le comportement avec l'option -q, qui passe en revue chaque requête avant de donner un résultat global. La commande à lancer est :

  trec_eval -q qrel.txt qtop.txt

Dans les explications qui suivent, nous utilisons les affichages avec les fichiers fournis.

Sur Toutes les versions
   num_ret        	01	3
   num_rel        	01	2
   num_rel_ret    	01	1

Pour une requête (01), le nombre de documents retrouvés (3), pertinents (2) et pertinents retrouvés (1).

   num_q          	all	2
   num_ret        	all	8
   num_rel        	all	5
   num_rel_ret    	all	4

Pour une l'ensemble des requêtes, le nombre de requêtes (2), le nombre de total documents retrouvés (8), total de pertinents (5) et total de pertinents retrouvés (4).

   ircl_prn.0.00  	01	
   ircl_prn.0.10  	01	
   ...
   ircl_prn.1.00  	01	

Le tableau normalisé pour la requête 01.

   ircl_prn.0.00  	all	
   ircl_prn.0.10  	all	
   ...
   ircl_prn.1.00  	all	

Le tableau normalisé pour toutes les requêtes.

Les autres lignes ne nous intéressent pas ici dans le cadre de ce TP.

3. Questions

Partie 1 : les fichiers à utiliser

Les fichiers qrel.txt et qtop.txt suivants représentent une évaluation sur 2 requêtes, avec deux documents pertinents pour des humains pour la requête 01, et trois documents pour la requête 02. Vous pouvez soit les créer à la main, soit les rapatrier qrel.txt, qtop.txt

qrel.txt :

  01 0 doc1 1
  01 0 doc3 1
  02 0 doc6 1
  02 0 doc8 1
  02 0 doc10 1

qtop.txt :

  01 0 doc1 0 12.5 0
  01 0 doc2 1 10 0
  01 0 doc6 2 9 0
  02 0 doc6 0 145 0	
  02 0 doc7 1 120 0
  02 0 doc10 2 110 0
  02 0 doc8 3 11.3 0
  02 0 doc12 4 1 0

Lancer l'exécution du programme trec_eval pour les deux fichiers ci-dessus, avec l'option ”-q“. Dans le cas d'une utilisation sous windows, le fichier trec_eval.bat utilise ces deux fichiers et l'option ”-q“.

Vérifier que les résultats (courbes de rappel/précision normalisés) obtenus sont ceux que vous calculez (cf. le cours), pour la requête 01, la requête 02, et pour les deux requêtes prises ensemble et présenter vos résultats dans votre rapport.

Partie 2 : Deux exemples sur une requête.

Créez un fichier p2_qrel.txt, pour une requête 01 qui possède 3 documents pertinents (à vous de choisir des identifiants)

Créez 2 fichiers rel, appelés sys1_p2_qtop.txt et sys2_p2_qtop.txt Dans sys1_p2_qtop.txt on a 5 réponses, et les 3 premiers résultats correspondent aux 3 documents pertinents. Dans sys2_p2_qtop.txt on a aussi 5 réponses, mais les 3 document pertinents sont aux rangs 2, 3 et 4 (rappelons que la première réponse est au rang 0).

Lancer l'évaluation des sys1 et sys2 (en modifiant si nécessaire le fihier ”.bat“ sur windows), et vérifier que les tableaux normalisés donnent de meilleurs résultats pour sys1.

Partie 3 : Les exemples de l'exercice 9 vus en cours

Créez les fichiers ex9_qtop.txt et ex9_qrel.txt pour représenter les informations liées uniquement à le requête Q1 de cet exercice, dans un premier temps.

Lancer trec_eval -q ex9_qrel.txt ex9_qtop.txt et vérifier que le tableau de rappel précision normalisé obtenu est le même que celui que nous avons calculé.

Ajouter les informations relatives à Q2 pour les deux fichier ex9_qtop.txt et ex9_qrel.txt, et vérifiez encore une fois que trec_eval est cohérent avec vos calculs.

evaluation.txt · Last modified: 2024/02/29 08:39 by mulhem
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki