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.