Librerie Software per la valutazione sperimentale Dr. Ing. Gianmaria Silvello ! Gruppo di ricerca di Sistemi di Gestione dell’Informazione (IMS), Dipartimento di Ingegneria dell’Informazione, Università degli Studi di Padova [email protected] Corso di Reperimento dell’Informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Indice Dati sperimentali in formato TREC ! trec_eval (scritto in C) - NIST ! Libreria MATTERS (scritto in Matlab) - UNIPD Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 2 Dati in formato TREC Il NIST TREC è organizzato dal National Institute of Standard and Technology (NIST) I dati utilizzati e prodotti da TREC sono disponibili all’URL: http://trec.nist.gov/ Alcuni dati sono liberamente accessibili: Informazioni su Track e Tasks Pool (o qrels nel gergo TREC) Topics Alcuni dati sono ad accesso limitato (user/pwd): Run sottomesse dagli utenti Alcuni dati sono a pagamento: Corpus di documenti Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 4 Pool (qrels) Il pool in formato TREC è un file testuale dove ogni riga è un’entry indipendente composta da 4 campi: <topic id> <q0> <document id> <relevance weight> 501 501 501 501 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 0 0 0 0 WTX001-B08-110 WTX001-B08-218 WTX001-B10-156 WTX001-B11-100 Gianmaria Silvello 0 0 0 0 slide 5 Run Le run in formato TREC sono documenti testuali dove ogni riga è composta da 6 campi: <topic id> <q0> <document id> <rank> <score> <run id> 501 501 501 501 Q0 Q0 Q0 Q0 WTX070-B25-135 WTX094-B32-108 WTX076-B09-110 WTX079-B29-439 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 0 1 2 3 -6.100471607608047 -6.84225689293694 -7.110164008173832 -7.158359319249925 Gianmaria Silvello apl10wa apl10wa apl10wa apl10wa slide 6 trec_eval trec_eval trec_eval è una libreria software per la valutazione sperimentale scritta e mantenuta da Chris Buckley del NIST ! È open-source e scritta in C ! È disponibile all’URL: http://trec.nist.gov/trec_eval/ Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 8 trec_eval: come si usa Scaricare la libreria Compilare (make) Verificare il funzionamento della libreria con il comando: make quicktest Il file README contiene tutte le informazioni necessarie L’input di trec_eval è una run e il pool in formato TREC, l’output è un insieme di misure Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 9 trec_eval: come si usa Uso tipico per ottenere le misure medie (su tutti i topic) di una run : ./trec_eval path_to_pool/ qrels.trec8.adhoc.txt /path_to_run/te.res Specificando il flag -q si ottengono anche le misure topic per topic Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 10 trec_eval: esempio d’uso Si consideri una run denominata DPH.res 426 426 426 426 426 426 426 426 426 426 426 … 427 427 427 427 427 427 427 427 427 427 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 LA031490-0004 0 57.095935962401676 DPH LA012990-0011 1 56.01595427018188 DPH LA111889-0138 2 49.05101025758912 DPH LA051990-0141 3 46.22684500398847 DPH LA031189-0043 4 39.44708085608632 DPH LA031189-0002 5 39.121816496616546 DPH LA070389-0049 6 38.95926008388802 DPH LA030390-0076 7 32.89132590264582 DPH LA041089-0080 8 32.50697886997216 DPH LA070289-0082 9 29.162298873022596 DPH FBIS4-49219 10 27.84155431377452 DPH Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 LA082089-0008 0 47.95010530450913 DPH FR941028-2-00201 1 47.39363612274179 DPH FT922-7705 2 26.887535613599507 DPH FR940405-1-00137 3 17.56043186055852 DPH FT924-7120 4 15.61505010991931 DPH FT933-1362 5 14.422076098948647 DPH FT923-10771 6 10.961939155804142 DPH FR941028-2-00203 7 10.494589830410405 DPH FBIS3-21201 8 8.17378149232876 DPH FR940405-1-00140 9 7.238808653623172 DPH Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 11 trec_eval: esempio d’uso Si consideri una run denominata DPH.res e un pool denominato qrels.trec8.adhoc.txt $ ./trec_eval /TREC8/pool/qrels.trec8.adhoc.txt TREC8/ runSet/DPH.res Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 12 trec_eval: output runid num_q num_ret num_rel num_rel_ret map gm_map Rprec bpref recip_rank iprec_at_recall_0.00 iprec_at_recall_0.10 iprec_at_recall_0.20 iprec_at_recall_0.30 iprec_at_recall_0.40 iprec_at_recall_0.50 iprec_at_recall_0.60 iprec_at_recall_0.70 iprec_at_recall_0.80 iprec_at_recall_0.90 iprec_at_recall_1.00 P_5 P_10 P_15 P_20 P_30 P_100 P_200 P_500 P_1000 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all Gianmaria Silvello DPH 25 25000 2596 1401 0.2237 0.1144 0.2694 0.2366 0.6606 0.7183 0.4664 0.3691 0.3001 0.2470 0.2014 0.1548 0.1155 0.0711 0.0566 0.0566 0.4400 0.4200 0.3920 0.3480 0.3253 0.2188 0.1554 0.0884 0.0560 slide 13 MATTERS MATTERS MATTERS: MATlab Toolkit for Evaluation of information Retrieval Systems è una libreria open-source scritta in Matlab da N. Ferro e G. Silvello ! È liberamente disponibile all’URL: http://matters.dei.unipd.it/ ! Permette di lavorare con dati in formato TREC ! Necessita di Matlab 2013b o superiore: disponibile nei laboratori informatici del DEI Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 15 Cinque pacchetti MATTERS si compone di cinque pacchetti principali: Input/Output: contiene funzioni per importare e salvare in tabelle Matlab i dati della valutazione sperimentale e di calcolare statistiche su questi dati Measures: contiene funzioni per fare l’assessment delle run e di calcolare le misure più comuni in IR sia con rilevanza binaria che multigrado Analysis: contiene funzioni per condurre analisi avanzate sui dati e sulle misure come calcolare statistiche descrittive, condurre analisi di correlazione, determinare robustezza e sensitività delle misure Plot: contiene funzioni per disegnare plot avanzati a partire dalle analisi dei dati Util: contiene funzioni di varia utilità ad esempio per salvare e caricare dati da disco in modo efficiente Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 16 Documentazione La documentazione della libreria è disponibile all’URL: http://matters.dei.unipd.it/MATTERS_API/index.html Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 17 Importare il pool Vediamo l’uso di una funzione di importazione del pool: importPoolFromFileTRECFormat [pool, report] = importPoolFromFileTRECFormat(Name, Value) Gli argomenti in ingresso devono essere specificati come coppie Nome, Valore separate da virgole. ! Name deve apparire tra apici (' '). ! Si possono specificare più coppie e l’ordine delle coppie non è importante: Name1, Value1, ..., NameN, ValueN. Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 18 Importare il pool Coppie Name, Value: FileName (mandatory) -il percorso del file di testo da importare; Identifier (mandatory) - un identificatore univoco per il file; deve rispettare le regole Matlab per i nomi dei file. collectionIdentifier = 'TREC_10_2001_Web'; RelevanceGrades (mandatory) - un vettore numerico di valori ordinati in modo crescente (e.g. da non rilevante a altamente rilevante). Il vettore deve contenere un elemento per ogni grado di rilevanza; relevanceGrades = 0:2; RelevanceDegrees (mandatory) - un vettore di stringhe dove ogni valore corrisponde ad un grado di rilevanza numerico. relevanceDegrees = {'NotRelevant', 'Relevant', 'HighlyRelevant'}; Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 19 Importare il pool Coppie Name, Value RequiredTopics (optional) - un array di stringhe che indica quali topic devono essere importati. Se non viene indicato nulla allora sono importati tutti i topic. Delimiter (optional) - una stringa che specifica quale è il separatore tra i campi del file da importare. I Valori ammessi sono: comma, space, tab, semi, or bar. Se non si specifica nulla il valore di default è tab delimiter = 'tab'; Verbose (optional) - un valore booleano che specifica se si vogliono visualizzare ulteriori informazioni Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 20 Importare le run Per importare una singola run si può usare la funzione: importRunFromFileTRECFormat ! Per importare un insieme di run da una directory si può usare la funzione: importRunsFromDirectoryTRECFormat Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 21 Importare una run Vediamo l’uso di: importRunFromFileTRECFormat [run, report] = importRunFromFileTRECFormat(Name, Value) Gli argomenti in ingresso devono essere specificati come coppie Nome, Valore separate da virgole. ! Name deve apparire tra apici (' '). ! Si possono specificare più coppie e l’ordine delle coppie non è importante: Name1, Value1, ..., NameN, ValueN. Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 22 Importare una run Le coppie Nome,Valore sono simili a quelle del pool, si consulti la documentazione per una descrizione esaustiva Analizziamo un parametro importanti aggiuntivo rispetto all’import del pool: DocumentOrdering (optional) Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 23 Document Ordering Il parametro document ordering definisce l’ordine con cui importare i documenti ossia se si devono ordinare per rank, score, id del documento… Le possibilità di scelta sono: Original: mantiene l’ordinamento originale dei documenti nel file TrecEvalLexDesc: è il valore di default e ordina i documenti come trec_eval quindi in modo discendente per score e poi per document-id (lessicografico) TrecEvalLexAsc: ordinai i documenti in modo discendente per score e poi ascendente per document-id (lessicografico), Matters: ordina i documenti in modo discendente per score, ascendente per rank e discendente per document-id Conservative: ordine in modo discendente per score e per i documenti con score uguale, mantiene l’ordinamento originale del file Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 24 Output Una volta importate in MATTERS, pool e run sono rappresentate come tabelle Matlab (disponibili dalla versione 2013b): http://it.mathworks.com/help/matlab/ref/table.html Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 25 La tabella pool in MATTERS La variabile si chiama: pool_TREC_10_2001_Web 501 502 503 504 505 506 507 508 509 510 pool_TREC_10_2001_Web _____________________ [1342x2 table] [1749x2 table] [1250x2 table] [1275x2 table] [ 956x2 table] [1002x2 table] [1263x2 table] [1325x2 table] [1482x2 table] [1218x2 table] Di fatto si tratta di una tabella di tabelle Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 26 La tabella pool in MATTERS Accedere alla tabella del pool di un singolo topic: >> pool_TREC_10_2001_Web(1,1) ans = 501 pool_TREC_10_2001_Web _____________________ [1342x2 table] Accedere al contenuto del pool del primo topic: >> pool_TREC_10_2001_Web{1,1}{1,1} ans = Document ________________ 'WTX001-B08-110' 'WTX001-B08-218' 'WTX001-B10-156' 'WTX001-B11-100' 'WTX001-B14-12' 'WTX001-B24-225' 'WTX001-B37-32' 'WTX001-B47-339' 'WTX002-B04-3' Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 RelevanceDegree _______________ NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant HighlyRelevant Gianmaria Silvello slide 27 La tabella pool in MATTERS Accedere al contenuto del pool del topic 501: pool_TREC_10_2001_Web{'501',:}{1,1} ans = Document ________________ 'WTX079-B19-134' 'WTX079-B19-175' 'WTX079-B20-173' 'WTX079-B24-248' 'WTX079-B29-427' 'WTX079-B29-439' 'WTX079-B29-470' Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 RelevanceDegree _______________ NotRelevant NotRelevant NotRelevant NotRelevant Relevant NotRelevant HighlyRelevant Gianmaria Silvello slide 28 La tabella run in MATTERS Accedere ai primi 10 topic di una run: >> runA(1:10,1) ans = apl10wa ______________ 501 [1000x3 table] 502 [1000x3 table] 503 [1000x3 table] 504 [1000x3 table] 505 [1000x3 table] 506 [1000x3 table] 507 [1000x3 table] 508 [1000x3 table] 509 [1000x3 table] 510 [1000x3 table] Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 29 La tabella run in MATTERS Accedere ai primi 10 elementi del topic ‘501’ della runA: >> runA{1,1}{'501',1}(1:10,:) ans = Document Rank ________________ ____ 'WTX070-B25-135' 0 'WTX094-B32-108' 1 'WTX076-B09-110' 2 'WTX079-B29-439' 3 'WTX002-B30-50' 4 'WTX002-B04-3' 5 'WTX067-B16-115' 6 'WTX055-B12-345' 7 'WTX002-B29-279' 8 'WTX067-B44-213' 9 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello Score _______ -6.1005 -6.8423 -7.1102 -7.1584 -7.178 -7.2331 -7.2812 -7.2937 -7.5188 -7.5817 slide 30 Assessment In MATTERS l’assessment può essere fatto in modo esplicito mediante la funzione assess [assessedRunSet, poolStats, runSetStats, inputParams] = assess(pool, runSet, varargin) I diversi parametri permettono di effettuare la mappatura (e.g. lenient) da rilevanza graded a binaria, assegnare dei pesi ai diversi gradi di rilevanza, decidere la strategia di padding se la run è più corta di 1000 documenti… L’assessment può essere anche fatto in modo implicito dalle singole misure che al loro interno chiamano la funzione assess Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 31 Un esempio completo di import e assessment Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 32 Un esempio completo di import e assessment >> assessedRunA{1,1}{1,1}(1:20,1) ans = Assessment ______________ NotRelevant NotRelevant NotRelevant NotRelevant HighlyRelevant HighlyRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant Relevant NotRelevant NotRelevant Relevant HighlyRelevant NotRelevant NotRelevant Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 >> assessedRunABinary{1,1}{1,1}(1:20,1) ans = Assessment ______________ NotRelevant NotRelevant NotRelevant NotRelevant HighlyRelevant HighlyRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant NotRelevant HighlyRelevant NotRelevant NotRelevant HighlyRelevant HighlyRelevant NotRelevant NotRelevant Gianmaria Silvello slide 33 Calcolo delle misure: Esempio con CRP Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 34 Calcolo delle misure: Esempio con CRP rho = 501 502 503 504 505 506 507 508 509 510 Merxtd ________ 0.1342 0.22253 0.27966 0.17143 0.038523 0.28571 0.13281 0.12703 0.32864 0.33051 UniNEn7d ________ 0.37349 0.081901 0.30556 0.26471 0.22642 0.4 0.19318 0.31333 0.30905 0.31707 apl10wd ________ 0.32461 0.35371 0.264 0.375 0.38095 0.16667 0.073276 0.19831 0.30435 0.16957 fdut10wac01 ___________ 0 0 0.09621 0.1978 0.46154 0.013793 0.36957 0.30128 0.3211 0.4875 fdut10wal01 ___________ 0 0 0.095652 0.1978 0.44444 0.013793 0.32692 0.27811 0.33413 0.36792 Merxtd ________ 0.24173 0.23257 0.33969 0.65824 0.70085 0 0.30674 0.33461 0.57507 0.74985 UniNEn7d ________ 0.65539 0.18641 0.40405 0.70017 0.45629 0 0.53342 0.41283 0.40589 0.82631 apl10wd ________ 0.33128 0.78643 0.52509 0.67426 0.69784 0 0.14076 0.14357 0.55592 0.042552 fdut10wac01 ___________ 0.37449 0.24679 0.34158 0.71482 0.59993 0 0.31722 0.64291 0.57617 0.79167 fdut10wal01 ___________ 0.36838 0.21956 0.14392 0.56088 0.56993 0 0.37026 0.49934 0.40203 0.24806 sigma = 501 502 503 504 505 506 507 508 509 510 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 35 Calcolo delle misure: Esempio con CRP 1600 Merxtd UniNEn7d apl10wd 1400 1200 1000 800 600 400 200 0 −200 0 100 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 200 300 400 500 600 Gianmaria Silvello 700 800 900 1000 slide 36 Calcolo delle misure: Esempio con CRP Calcolare i valori medi degli indicatori di sintesi per tutti i topic: l’uso della funzione descriptiveStatistics [rhoDsByRun, rhoDsByTopic] = descriptiveStatistics(rho) Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 Gianmaria Silvello slide 37 Calcolo delle misure: Esempio con CRP rhoDsByRun = Minimum Maximum FirstQuartile SecondQuartile ThirdQuartile Mean StandardDeviation Variance Merxtd ________ 0 0.5 0.11945 0.20348 0.25169 0.18486 0.10619 0.011276 >> rhoDsByTopic(1:5,[1, 2, 6, 7]) ans = Minimum Maximum ________ _______ 501 0 0.37349 502 0 0.35371 503 0.095652 0.30556 504 0.17143 0.375 505 0.038523 0.46154 Reperimento dell’informazione Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15 UniNEn7d ________ 0 0.5 0.1875 0.25328 0.31333 0.2541 0.10581 0.011196 Mean _______ 0.16646 0.13163 0.20822 0.24135 0.31037 Gianmaria Silvello apl10wd ________ 0 0.5 0.16959 0.26512 0.31906 0.2416 0.1183 0.013996 fdut10wac01 ___________ 0 0.49923 0.023107 0.1989 0.29697 0.18476 0.15032 0.022595 StandardDeviation _________________ 0.1763 0.15387 0.10357 0.082295 0.17802 slide 38
© Copyright 2024 Paperzz