2010-11-25 21 views
13

¿Hay algún cuerpo que haya usado TREC_EVAL? Necesito un "Trec_EVAL para dummies".¿Cómo evaluar un motor de búsqueda/recuperación usando trec_eval?

Estoy tratando de evaluar algunos motores de búsqueda para comparar parámetros como Recall-Precision, ranking de calidad, etc. para mi trabajo de tesis. No puedo encontrar cómo usar TREC_EVAL para enviar consultas al motor de búsqueda y obtener un archivo de resultados que se puede usar con TREC_EVAL.

+0

¿Sigues interesado en este tema? – shellter

+0

Tengo una duda relacionada, ¿cómo manejar las etiquetas de relevancia no binarias? – Shashank

Respuesta

16

Básicamente, para trec_eval necesita una verdad sobre el terreno (generada por el ser humano). Eso tiene que ser en un formato especial:

query-number 0 document-id relevance 

Dada una colección como 101Categories (wikipedia entry) que sería algo así como

Q1046 0 PNGImages/dolphin/image_0041.png 0 
Q1046 0 PNGImages/airplanes/image_0671.png 128 
Q1046 0 PNGImages/crab/image_0048.png 0 

Por tanto, el número de consultas identifica una consulta (por ejemplo, una imagen de una cierta categoría para encontrar similares). Los resultados de su motor de búsqueda tiene entonces que ser transformado para parecerse

query-number Q0 document-id rank score Exp 

o en la realidad

Q1046 0 PNGImages/airplanes/image_0671.png 1 1 srfiletop10 
Q1046 0 PNGImages/airplanes/image_0489.png 2 0.974935 srfiletop10 
Q1046 0 PNGImages/airplanes/image_0686.png 3 0.974023 srfiletop10 

como se describe here. Es posible que deba ajustar los nombres de ruta para el "documento-id". Luego puede calcular las métricas estándar . trec_eval --help debe darle algunas ideas para elegir los parámetros correctos para usar las medidas necesarias para su tesis.

trec_eval no envía ninguna consulta, tiene que prepararlas usted mismo. trec_eval hace solo el análisis dado un trouth terreno y sus resultados.

Alguna información básica se puede encontrar here y here.

+0

Hola @mbx, ¿Cómo calculó los números en la columna 'puntaje' anterior? (dice: 1, 0.974935, 0.974023). He leído que representan los grados entre el documento de resultados de la fila y el documento pertinente correcto, pero no puedo encontrar cómo llegaría a esos números (excepto el '1', que supongo que indica un 100% de precisión). –

+0

@NoonTime iirc el primer número es la posición en la salida (de topX) y el segundo es el ranking de la respuesta "qué tan cerca se obtiene esta salida si su entrada es 1", por lo que depende completamente del algoritmo que desee medida. – mbx

+0

ok gracias @mbx, pero matemáticamente, ¿cómo obtuviste ese número 0.974935? Sé que se deriva de la {last_position - 1}, ¿está dividiendo eso entre el número total de resultados recuperados y el uso de esa fracción? Como si tuvieras 100 resultados, entonces el puntaje de la segunda fila (segundo resultado) sería (100-1)/100 por .99? –

Cuestiones relacionadas