strutture dati
Transcript
strutture dati
CORSO DI INFORMATION RETRIEVAL Gabriella Pasi Università degli Studi di Milano Bicocca Viale Sarca 336 Milano e-mail: [email protected] Creazione di una struttura dati struttura dati per organizzare gli indici Scopo (efficienza): • velocizzare la ricerca di indici • l’indice viene costruito off-line prima di permette la ricerca • ottimizzare la ricerca per query costituite da un singolo termine Struttura dati a file Inverted I TERMINI INDICE PUNTANO I DOCUMENTI CUI SONO ASSOCIATI (CONTENUTI O CORRELATI). USO DI DUE FILE: DIZIONARIO FILE DI POSTING Struttura dati a file Inverted Indipendente dal modello di retrieval che il sistema di IR adotta. Informazioni associate ad ogni termine indice: • la lista di documenti che lo contengono (nel posting file). file) Per ogni documento puntato: – la frequenza del termine nel documento (tf) – la posizione nel documento di ogni occorrenza del termine (opzionale,solo per query con contesto). La Posizione può essere espressa come: - numero di parola dall’inizio del documento - num. Byte dall’inizio del documento, - num. di sezione, paragrafo, frase, numero di parola nella frase • le sue occorrenze nella collezione (nel dizionario) per il calcolo della IDF e per ottimizzare la valutazione di query Booleane) Struttura dati a file Inverted ESEMPIO: D1: The GDP increased 2 percent this quarter. D2: The spring economic slowdown continued to spring downwards this quarter FILE DIZIONARIO POSTING FILE 2 [D1] continued [D2] downwards [D2] D1 e D2 sono gli identificatori economic [D2] univoci dei documenti GDP [D1] increased [D1] percent [D1] quarter [D1] [D2] slowdown [D2] spring [D2] the [D1] [D2] this [D1] [D2] to [D2] Struttura dati a file Inverted Il dizionario contiene per ogni indice: termine, frequenza globale, puntatore alla lista di posting nel posting file La lista di posting contiene per ogni elemento 1. l’identificatore univoco del documento (DOCID) che in File Text è associato a un nome file o locazione URL. 2. Frequenza del termine nel documento. 3. Posizione nel documento di ogni occorrenza del termine. File File di Posting Dizionario File text contenente l’elenco ordinato dei DOCID D1: nome_file1.doc, ms_word D2: nome_file2.txt, wordpad D3: nome_file3, acrobat_reader … Miglioramento del File Inverted Localizzazione delle occorrenze: Il file inverted mantiene informazioni circa la posizione di ogni occorrenza di un termine nei documenti Uso: • • valutazione di operatori di adiacenza e di vicinanz progettazione di intefacce utente per la visualizzazione dei termini cercati nei documenti reperiti Frequenza: Il file inverted include il numero di postings di ogni termine (frequenza). Uso: • 9 ottimizzazione della valutazione di query • calcolo del grado di significatività dei termini ai fini della valutazione della rilevanza dei documenti Struttura dati a file Inverted ESEMPIO: D1: The GDP increased 2 percent this quarter economy. D2: The spring economic slowdown continued to spring downwards this quarter economy DIZIONARIO 2 continued downwards economy GDP increased percent quarter slowdown spring POSTING FILE [D1: 4] [D2: 5] [D2: 8] [D1: 8] [D2: 3, 11] [D1: 2] [D1: 3] [D1: 5] [D1: 7] [D2: 10] [D2: 4] [D2: 2] Struttura dati a file Inverted del sistema STAIRS Occupazione in memoria della Struttura dati a File Inverted Lo spazio richiesto per memorizzare il dizionario è piuttosto ridotto. Il vocabolario cresce come O(nβ) (legge di Heap) dove n è lo spazio occupato dal testo dei documenti e β è una costante tra 0.4 e 0.6. Es: n = 1Gb → dizionario circa 5 Mb. D’altra parte le occorrenze richiedono molto più spazio. Poiché ogni parola che compare nel testo è riferita una volta nella struttura dati, lo spazio cresce come O(n). Ottimizzazione del posting file Si applicano tecniche di compressione a: • nomi dei termini nel dizionario • identificatori dei documenti e occorrenze dei termini Tecnica di compressione dei DOCID con indirizzo relativo • term (d1,tf1), (d2,tf2), ... (dn,tfn) • i DOCID vengono ordinati • ogni DOCIDi è sostituito dall’intervallo DOCIDi- DOCIDi-1 I numeri sono codificati usando meno bit L’indice viene ridotto del 10-15% Es: Term1 (550,5), (200,10), (600,1), (350,3) uso 2 byte per DOCID assoluto (200,10), (150,3), (200,5), (50,1) uso 1 byte per DOCID relativo Lo stesso criterio si può usare per le occorrenze del termine in ogni documento nel posting file Ottimizzazione del posting file Il testo di ogni documento viene diviso in blocchi. Le occorrenze puntano ai blocchi dove compare la parola Vantaggi: • il numero di bit del puntatore è più piccolo rispetto a quello che memorizza le occorrenze nella posizione precisa nel testo. • Tutte le occorrenze di una parola dentro un singolo blocco hanno lo stesso riferimento. Svantaggi: • Le ricerche per contesto richiedono più operazioni. 17 RICERCA in un file Inverted La ricerca in un IRS che usa un file inverted esegue le seguenti operazioni: • Accesso al file dizionario e ricerca dei termini nella query • Reperimento della lista di posting associata a ogni termine trovato nel dizionario • Filtraggio dei risultati: se la query contiene più termini connessi da operatori le liste parziali dei risultati vanno fuse in una lista globale. • Se gli operatori sono di prossimità o adiacenza e il file inverted adotta un indirizzamento a blocchi è necessario scandire i blocchi per ottenere l’offset delle occorrenze nel blocco dei termini. Indice Lineare Termine Puntatore alla lista invert ita di postings ant bee cat dog elk fox gnu hog 16 Il dizionario può essere tenuto in memoria (a pezzi) durante il retrieval Lista Inverted Indice Lineare Vantaggi Può essere acceduto velocemente, es., con una ricerca binaria, O(log n) E’ adatto per la valuazione sequenziale, es., comp* occupazione economica dello spazio di memoria Svantaggi 17 Gli indici devono essere ricostruiti se si inseriscono nuovi termini Indice a B-tree network Catalog, hardware Apparatus, biomedicine morpheme Enciclopedia, grammar B-tree di ordine d: Review, synonym Number, paper publication Ogni nodo memorizza più termini • La radice contiene tra 1 e d termini. • Ogni nodo intermedio contiene tra d/2 e d termini • Se ki è l’iesimo termine in un nodo intermedio •tutti i termini nell’(i- 1)esimo figlio sono lessicograficamente più piccoli di ki •tutti i termini nell’(i)esimo figlio sono lessicograficamente più grandi di ki 18 •Tutte le foglie hanno la stessa profondità (bilanciamento) Indice a B-tree Vantaggi Può essere acceduto velocemente numero massimo di accessi a un B tree di ordine d: O(logd n) dove n è il numero di livelli (altezza del B tree) Conveniente per l’aggiornamento Semplice aggiunta i nuovi termini Utilizzo economico dello spazio di memoria Svantaggi Inefficiente per la ricerca sequenziale, comp* Tende a diventare sbilanciato dopo diversi aggiornamenti (n cresce) Se l’indice è tenuto su disco ogni nodo può richiedere un accesso al disco separato.