Title: Basi di dati multimediali
1Basi di dati multimediali
2Basi di dati multimediali
- Nuove applicazioni richiedono la rappresentazione
e la gestione di dati non tradizionali - testi arbitrari
- immagini
- audio
- video
- dati tradizionali (relazionali, orientati ad
oggetti)
3Basi di dati multimediali
- Un sistema di gestione dati multimediali (MMDBMS)
permette la rappresentazione e la gestione di
diversi tipi di dati, potenzialmente
rappresentati secondo diversi formati - Un MMDBMS deve permettere di
- rappresentare dati corrispondenti a diverse
tipologie di media - interrogare dati rappresentati in formati diversi
in modo uniforme - interrogare dati in formati diversi
simultaneamente nel contesto della stessa query - recuperare gli oggetti dal supporto su cui
risiedono, compatibilmente con il tipo di media
che rappresentano
4MMDBMS aspetti da considerare
- Rappresentazione
- i dati sono tipicamente non strutturati
- si vuole analizzare il contenuto
- come è possibile rappresentare il contenuto di un
documento multimediale? - Come si fa a capire che unimmagine contiene una
certa persona - Query
- un linguaggio di query per MMDBMS deve avere
caratteristiche particolari - query processing deve analizzare il contenuto
degli oggetti
5MMDBMS aspetti da considerare
- Memorizzazione
- quali supporti utilizzare? (dischi, CD-ROM,
nastri) - che operazioni supportare
- non solo lettura/scrittura ma anche (video/audio)
- playback
- rewind
- fast foward
- pause
- Indici
- come indicizzare gli oggetti multimediali?
- Analizzeremo solo i primi due aspetti
6Rappresentazione
- Un oggetto multimediale in genere può essere
composto da diversi sotto-oggetti, ciascuno
relativo ad un particolare media - le relazioni tra oggetti e sotto-oggetti possono
essere modellate utilizzando un approccio
orientato ad oggetti o relazionale ad oggetti - rimane il problema di come rappresentare il
contenuto di un oggetto corrispondente ad un
singolo media
7Rappresentazione
- Nelle basi di dati relazionali ad oggetti, i dati
multimediali vengono memorizzati secondo due
distinte modalità - internamente al sistema come valori non
strutturati in campi LOB (Large Object) - esternamente al sistema, mantendo allinterno del
DBMS solo il riferimento alla posizione del file
8Rappresentazione
DBMS
Oggetto multimediale
LOB
Oggetto multimediale
riferimento
9Rappresentazione - LOB
- Facilitano la memorizzazione di dati multimediali
(documenti, immagini, audio, ecc.) - Possono contenere fino a 4GB di dati (di solito i
RDBMS non vanno oltre 2-32KB) - Il DBMS non associa alcuna interpretazione a
questi dati
10Rappresentazione - LOB
- Si distinguono in
- BLOB (Binary Large Object)
- CLOB (Character Large Object)
- Supportati da SQL-99
- Sono fisicamente memorizzati esternamente alle
tabelle ma internamente al DB (comportamento
transazionale)
11Rappresentazione - ORDBMS
- Gli ORDBMS forniscono inoltre nuovi tipi di dato
complessi che supportano - la rappresentazione del dato multimediale
- nuovi metodi operatori
- metodi per lottimizzazione di interrogazioni
12Rappresentazione - ORDBMS
- Illustra/Informix ? DataBlade
- IBM ? Database Extender
- Oracle ? Oracle Intermedia
- Librerie fornite da terze parti
13Rappresentazione
- In entrambe le soluzioni di rappresentazione
introdotte, gli oggetti sono completamente non
strutturati - per poterli interrogare in modo ragionevole, è
necessario sovraimporre a ciascun oggetto una
rappresentazione concettuale - la rappresentazione concettuale è costituita da
un insieme di dati strutturati che descrivono
loggetto multimediale (surrogato) dal punto di
vista della struttura e del contenuto semantico - ogni oggetto dello stesso tipo sarà descritto
dallo stesso tipo di surrogato - il surrogato del documento non descrive
pienamente il contenuto informativo del documento
ma costituisce una sua sintesi - i surrogati rappresentano gli oggetti sui quali
definire le tecniche di indice
14Rappresentazione
- Spesso il surrogato si ottiene associando a
ciascun oggetto un insieme di attributi - due tipi di attributi
- descrittivi
- associano informazioni descrittive (relazionali)
a ciascun oggetto - vengono associati manualmente alloggetto
- content-based (anche chiamati features)
- associano informazioni relative al contenuto
- vengono estratti direttamente dal sistema
- entrambi i tipi di attributi si possono
interpretare come una sorta di metadati - i metadati associati ad un documento multimediale
dipendono dal tipo di media considerato
15Esempio
Attributi descrittivi nome Villa
Medici localitàRoma
Features forma
16Rappresentazione
Generazione metadati (automatica manuale)
Oggetti multimediali
Features attributi
I sistemi mettono a disposizione funzionalità
per estrarre feature e per utilizzare tali
feature nel contesto delle interrogazioni
17Rappresentazione
- Conseguenza
- i documenti multimediali potranno essere
confrontati solo rispetto agli attributi e alle
feature - feature uguali non sempre si riferiscono ad
oggetti uguali - Esempio
- si puo riferire sia ad una villa che ad
unindustria
18Query
- Due aspetti
- definizione caratteristiche linguaggio di
interrogazione - query processing
- è necessario stabilire
- approccio generale allesecuzione delle query
- aspetti che devono essere supportati
19Idea di base query processing
Features attributi
Oggetti multimediali
- La query viene eseguita sui metadati (attributi
features) - dai metadati si risale ai documenti originali
- i documenti originali vengono restituiti
allutente
20Aspetti da supportare
- Le query devono potere essere eseguite su diversi
tipi di media contemporaneamente - devono considerare attributi e features
- devono supportare query per similitudine
- devono associare un valore di rilevanza ad ogni
oggetto restituito - devono poter essere pesate
- devono supportare query spazio-temporali
21Attributi e feature
- Le query interrogano gli oggetti multimediali
considerando gli attributi e le feature ad essi
associati - Esempio ritrova tutte le immagini di abitazioni
importanti in Liguria - assumo di avere estratto le forme dalle immagini
- assumo di avere associato informazione
descrittiva (luogo, tipo abitazione)
22Query per similitudine
- Poiché il contenuto degli oggetti viene espresso
attraverso features e poiché le feature non
rappresentano pienamente il contenuto semantico
di un oggetto, le condizioni di selezione sugli
oggetti multimediali non sempre sono certe - ciò significa che le condizioni non sono in
generale condizioni di uguaglianza ma di
similitudine - le condizioni in genere sono verificate in una
certa misura, data dalla similitudine tra ciò che
stiamo cercando e ciò che abbiamo trovato
23Query per similitudine
- il linguaggio deve permettere di esprimere query
di questo tipo - il query processing deve essere in grado di
supportare tali tipi di query - Query determina tutte le immagini in cui appare
una certa persona, presente in una specifica foto - difficilmente verranno restituite tutte le
immagini che contengono questa persona - molto probabilmente verranno trovate anche
immagini in cui compaiono persone che, per
qualche motivo (dipende dalle feature
considerate) assomigliano alla persona cercata
24Ranking
- Una conseguenza della necessità di eseguire query
per similitudine è quello di decidere i criteri
di rilevanza di un oggetto rispetto ad una
interrogazione ranking - Il ranking è un ordinamento degli oggetti
restituiti da una interrogazione che riflette il
grado di rilevanza dei documenti rispetto
allinterrogazione - I criteri per effettuare il ranking dipendono dal
media considerato - Esempio ritrova le 5 immagini in cui più
probabilmente appare una certa persona, presente
in una specifica foto - in questo modo, si aumenta la certezza del
risultato
25Query pesate
- In alcuni casi può essere utile pesare le varie
condizioni nel contesto di una query - questo permette di associare un livello di
importanza alla condizione nel determinare la
similarità degli oggetti - Esempio determinare le immagini che
- contengono una persona (0.7)
- non contengono alberi (0.3)
- la similarità viene pesata
26Query spazio-temporali
- Necessità di interrogare relazioni
spazio-temporali esistenti tra gli oggetti - relazioni spaziali associano le feature
associate ad un oggetto da un punto di vista
spaziale - importante per immagini/testo
- in unimmagine, relaziono le forme che compaiono
rispetto alla loro posizione (vicino, lontano, a
destra, a sinistra) - in un testo, relaziono il contenuto (prima, dopo)
- relazioni temporali associano le feature
associate ad un oggetto da un punto di vista
temporale - importante per audio/video
- sequenze audio/video prima, dopo, subito prima,
subito dopo, contemporaneamente
27Due approcci alla specifica delle query
- Si definisce un linguaggio di query
- ad esempio, si estende SQL con condizioni
specifiche da applicare ad oggetti multimediali - tipico DBMS estesi alla gestione di dati
multimediali - query by example
- si fornisce un oggetto di esempio e si vogliono
determinare tutti gli oggetti simili - esempio si fornisce la fotografia del viso di
una persona e si vogliono ritrovare tutti i visi
simili - tipico di sistemi dedicati alla gestione di un
solo tipo di media
28Nel seguito ...
- Considereremo due media
- testo
- immagini
- per ciascuno illustreremo
- rappresentazione del contenuto
- query in alcuni sistemi
29Basi di dati testuali
30Basi di dati testuali
- E un database in grado di memorizzare, gestire
ed interrogare documenti testuali non strutturati - Lobiettivo è di minimizzare il tempo necessario
per localizzare le informazioni - I risultati di una interrogazione sono ordinati
in ordine decrescente di rilevanza - Un documento è rilevante se lutente che formula
linterrogazione giudica che il documento e
linterrogazione si riferiscono entrambi allo
stesso argomento
31Basi di dati testuali
- Lenfasi è sulla caratterizzazione dei requisiti
informativi dellutente - Ritrova tutti i documenti che contengono
informazioni sulle squadre di tennis dei college
americani che (1) hanno partecipato al torneo
NCAA e (2) contengono informazioni
sullallenatore della squadra
32Basi di dati testuali
- I database di testi sfruttano tecniche sviluppate
per i sistemi di Information Retrieval (IR) - Lambito dellIR ha prodotto negli ultimi 20
anni - Modelli per la rappresentazione di documenti
- Architetture e linguaggi
- Interfacce e metodi di visualizzazione
- Nonostante questo larea dellIR è sempre stata
di interesse limitato
33Basi di dati testuali
- Lavvento del Web ha cambiato le cose
- È un repository universale di conoscenza
- Accesso universale a costi ridotti
- Nessuna autorità centrale
- Il Web ha però introdotto nuove problematiche (ad
es. bassa qualità di definizione e struttura
delle informazioni) le tecniche di IR sono viste
come una chiave per trovare le soluzioni
34Basi di dati testuali
- Lo scopo è di reperire tutti e soli quei
documenti che interessano lutente - Un sistema con tali caratteristiche non può però
essere realizzato in pratica - Per tale motivo si valuta un sistema tanto più
efficiente quanto più e in grado di avvicinarsi
a tale requisito
35Basi di dati testuali
- Due criteri di valutazione
- precisione (precision)
- richiamo (recall)
36Valutazione di una Interrogazione
Rilevanti Non restituiti
Rilevanti Restituiti
Non rilevanti restituiti
Non rilevanti Non restituiti
Documenti contenuti nel database
37Richiamo
- Il potere di richiamo è la percentuale di
documenti rilevanti restituiti rispetto al totale
di documenti rilevanti presenti nel sistema - Rilevanti Restituiti
- Richiamo
- Totale Rilevanti
38Richiamo
- Il potere di richiamo ideale è uguale ad uno
- In generale il potere di richiamo sarà un valore
inferiore ad uno perché il numero di documenti
pertinenti restituiti è inferiore al numero di
documenti pertinenti presenti nel sistema
39Precisione
- La precisione è la percentuale di documenti
rilevanti sul totale dei documenti restituiti -
- Rilevanti Restituiti
- Precisione
- Totale Restituiti
40Precisione Richiamo
- La condizione ideale è avere il 100 di
precisione e richiamo - In generale, aumentando il numero di documenti
restituiti si aumenta il potere di richiamo a
spese della precisione
41Basi di dati testuali
- Due problemi principali
- Sviluppo di tecniche efficienti per la
rappresentazione dei documenti allinterno del
sistema - Sviluppo di tecniche per la formulazione e
lesecuzione delle interrogazioni
42Rappresentazione di documenti testuali
43Modellazione
Estrazione di feature
Database
44Modellazione
- Nel caso di documenti testuali le feature sono i
termini utilizzati come indici - Gli indici possono essere
- Una parola chiave o un insieme di parole chiave
- Un insieme di concetti che caratterizzano il
contenuto informativo del documento - sia i documenti che le interrogazioni vengono
rappresentati in termini di feature
45Modellazione - determinazione termini indice
Noun groups
Manual indexing
stopwords
stemming
Docs
structure
46Modellazione - determinazione termini indice
- structure struttura interna del documento
(capitoli, sezioni, sottosezioni) - stopwords articoli e congiunzioni
- noun groups si eliminano (o si raggruppano
insieme ai sostantivi) aggettivi, avverbi, verbi - stemming ci si riduce a radice comune (es.
plurale, singolare)
47Modellazione e query
48Modellazione
- Vedere il testo come un insieme di parole chiave
è limitativo - Questo causa spesso insoddisfazione da parte
dellutente - Il problema è ulteriormente complicato dal fatto
che spesso gli utenti non sono in grado di
formulare interrogazioni che riflettono i loro
requisiti informativi
49Ranking
- Uno dei problemi più critici è quello di decidere
i criteri di rilevanza di un documento rispetto
ad una interrogazione - Il ranking è un ordinamento dei documenti
restituiti da una interrogazione che riflette il
grado di rilevanza dei documenti rispetto
allinterrogazione - I criteri per effettuare il ranking dipendono dal
modello adottato per rappresentare i documenti (e
di conseguenza anche le query)
50Modelli
U s e r T a s k
Retrieval Adhoc Filtering
Browsing
51Modelli Classici Concetti Base
- Ogni documento è rappresentato da un insieme di
termini indice rappresentativi - Un indice è una parola utile per ricordare
largomento del documento - Solitamente gli indici sono dei nomi
- I motori di ricerca assumono che tutte le parole
nel testo siano indici (rappresentazione full
text)
52Modelli Classici Concetti Base
- Non tutti i termini che compaiono in un documento
sono egualmente rappresentativi del suo contenuto
informativo - di solito i termini troppo frequenti non sono
buoni candidati per diventare indici - Limportanza di un indice è rappresentata da un
peso ad esso associato
53Modelli Classici Concetti Base
- Sia
- ki il termine indice
- dj un documento
- wij il peso associato a ki nel documento dj
- wij quantifica limportanza dellindice ki per
descrivere il contenuto informativo del documento
dj - wij 0 indica che ki non compare in dj
54Modelli Classici Concetti Base
- vec(dj) (w1j, w2j, , wtj) è il vettore di
pesi associati al documento dj, dove t è il
numero totale di indici - gi(vec(dj)) wij è una funzione che
restituisce il peso di ki nel documento dj
55Modelli Classici Concetti Base
- Si assume che i pesi degli indici siano
indipendenti - Questa assunzione è una semplificazione perché
esistono delle correlazioni tra termini che
compaiono in un documento - Questo facilita la definizione dei pesi ma rende
meno precisa la ricerca - Es computer ? network
56Modello booleano
- E un modello semplice basato sulla teoria degli
insiemi - Le interrogazioni sono espressioni booleane
- Semantica precisa
- Formalismo consolidato
- q ka ? (kb ? ?kc)
57Modello booleano
- I pesi assumono valori binari
- wij ? 0,1
- Un peso uguale a uno indica che il termine
compare nel documento - Un peso uguale a zero indica che il termine non
compare nel documento
58Modello Booleano
- Si supponga
- q ka ? (kb ? ?kc) (ka ? kb) ? (ka ?
?kc) - La query può essere equivalentemente formulata
come una disgiunzione di vettori della forma
(ka,kb,kc) - vec(qdnf) (1,1,1) ? (1,1,0) ? (1,0,0)
- I vettori vengono chiamati componenti congiuntive
della query q (qcc)
59Modello Booleano - similarità
sim(q,dj) 1 se ? vec(qcc) vec(qcc) ?
vec(qdnf)) ? ?ki, gi(vec(dj))
gi(vec(qcc))) 0 altrimenti Un
documento viene restituito solo se la sua
similitudine con linterrogazione è pari ad
uno
60Modello Booleano
- Esempio
- qvec(qdnf) (1,1,1) ? (1,1,0) ? (1,0,0)
- dj (0,1,0,.) non è rilevante per q anche se
contiene il termine kb - di (1,1,0,.) è rilevante per q
61Modello booleano - svantaggi
- Nessuna nozione di matching parziale
- Nessun meccanismo di ranking
- I bisogni informativi di un utente devono essere
tradotti in una espressione booleana - Le interrogazioni formulate dagli utenti sono
spesso troppo approssimate
62Modello vettoriale
- Lutilizzo di pesi binari è troppo limitante
- Pesi non binari consentono di attuare matching
parziali - I pesi sono usati per calcolare un grado di
similitudine tra una interrogazione e ogni
documento nella base di dati - I documenti sono restituiti in ordine decrescente
di similitudine (ranking)
63Modello vettoriale
- Sia i documenti che le interrogazioni sono
rappresentate come dei vettori di pesi - Si definisce
- wij gt 0 quando ki ? dj
- wiq gt 0 quando ki ? q
- vec(dj) (w1j, w2j, ..., wtj)
- vec(q) (w1q, w2q, ..., wtq)
64Modello Vettoriale
- Nel modello vettoriale sia la query che il
documento sono rappresentati come dei vettori in
uno spazio t-dimensionale (dove t è il numero
complessivo di termini indice)
j
dj
?
q
i
65Modello Vettoriale
- sim(q,dj) cos(?) vec(dj) ? vec(q)
/ dj q
66Modello vettoriale
- Dato che wij gt 0 and wiq gt 0
- 0 ? sim(q,dj) ? 1
- Un documento è restituito anche se soddisfa solo
parzialmente linterrogazione - si può decidere di restituire solo i documenti la
cui similarità con la query supera una certa
soglia
67Modello vettoriale - pesi
- Quali strategie adottare per computare i pesi wij
e wiq? - Un buon peso deve tener conto di due fattori
- Quanto un termine descrive il contenuto
informativo di un documento - Fattore tf, la frequenza di un termine
allinterno di un documento - Quanto un termine compare allinterno di tutti i
documenti nel db - Fattore idf, linverso della frequenza di un
termine tra tutti i documenti considerati
68Modello vettoriale - pesi
- wij tf(i,j) idf(i)
- tf(i,j)
- ki rilevante per dj
- idf(i,)
- - ki rilevante in generale
- termini che compaiono spesso in tutti i documenti
non sono utili per distinguere un documento
rilevante da uno non rilevante
69Modello vettoriale
- Sia
- N il numero totale di documenti nel db
- ni il numero di documenti che contengono ki
- freq(i,j) la frequenza di ki in dj
- Il fattore tf normalizzato è
- f(i,j) freq(i,j) / max(freq(l,j))
- il massimo è calcolato su tutti i termini kl che
compaiono in dj - Il fattore idf è dato da
- idf(i) log (N/ni)
- il log è usato per rendere comparabili i valori
di tf e idf
70Modello vettoriale
- Il metodo più utilizzato è quello di usare come
peso - wij f(i,j) log(N/ni)
- Tale strategia è chiamata schema di pesatura
tf-idf
71Modello vettoriale
- Per i pesi da utilizzare nelle interrogazioni,
Salton Bucley propongono - wiq (0.5 0.5 freq(i,q) /
max(freq(l,q)) log(N/ni)
72Modello vettoriale
- Vantaggi
- I pesi migliorano la qualità delle risposte alle
interrogazioni - Possibilità di matching parziale
- La formula per il ranking ordina i documenti in
base alla rilevanza che hanno per
linterrogazione - Svantaggi
- Considera tutti gli indici come indipendenti
73Esempio
Pesi documenti e query booleani
74Esempio
Pesi documenti booleani, query non booleani
75Esempio
Pesi documenti e query non booleani
76Esempio
- Calcoliamo TF-IDF per i documenti, supponendo
contenuto celle freq(i,j) - d1
- K1 ((2/2)(log (7/5)) .33
- K2 (0(log (7/4))) 0
- K3 ((1/2)(log (7/3))) .42
- per gli altri
- .34 0 0, 0 .19 .85, .34 0 0, .08 .28 .85,
.17 .56 0, 0 .56 0
77Esempio
- Calcoliamo TF-IDF per la query
- K1 (.5 ((.5 1)/3))(log (7/5)))
- K2 (.5 ((.5 2)/3))(log (7/4)))
- K3 (.5 ((.5 3)/3))(log (7/3)))
- quindi .22 .47 .85
78Esempio
- Calcoliamo similarità per ogni documento
- sim(d1,q)
- d1 q (.33 .22) (0 .47) (.42 .85)
.43 - d1 sqrt((.332) (.422)) .53
- q sqrt((.222) (.472) (.852)) 1.0
- sim(d1,q) .43 / (.53 1.0) .28
- d2 .06 d3 .43 d4 .06
- d5 .46 d6 .19 d7 .17
79Modello Probabilistico
- Lobiettivo è quello di utilizzare tecniche di
calcolo delle probabilità - Data una interrogazione esiste sempre un insieme
di documenti che costituiscono la risposta ideale - La specifica dellinterrogazione consiste nel
definire le caratteristiche della risposta ideale
80Modello Probabilistico
- Il problema è capire quali sono tali
caratteristiche - Allinizio viene effettuata una ipotesi su quali
queste caratteristiche possono essere - Tale ipotesi viene poi raffinata durante un
processo di iterazione
81Modello Probabilistico
- Data una query q e un documento dj, il modello
probabilistico cerca di stimare la probabilità
che lutente consideri il documento dj rilevante - Il modello assume che tale probabilità dipenda
solo dalla interrogazione e dal modo in cui il
documento è rappresentato - I documenti sono ordinati in ordine descrescente
rispetto alla probabilità di rilevanza - Non si tengono in considerazione i fattori tf e
idf
82Modelli classici - confronto
- Il modello Booleano è il meno potente in quanto
non consente il matching parziale - Risultati sperimentali indicano che il modello
vettoriale ha prestazioni migliori del modello
probabilistico
83Estrazione di Feature dal Testo
- Quattro fasi
- Analisi lessicale del testo
- Eliminazione delle stopword
- Normalizzazione delle parole rimanenti
- Selezione dei termini caratterizzanti (indici)
84Analisi lessicale
- Lobiettivo è quello di trasformare il testo da
una sequenza di caratteri ad una sequenza di
parole - Eliminazione della punteggiatura
- Conversione da maiuscolo a minuscolo
85Eliminazione delle stopword
- Parole troppo frequenti nei documenti (ad esempio
che compaiono in più dell80 dei documenti) non
sono utili per determinare il risultato di una
interrogazione - Esempi di stopword sono articoli, proposizioni e
congiunzioni - Leliminazione delle stopword consente di ridurre
notevolmente le dimensioni del documento
originale - Leliminazione delle stopword può però ridurre il
potere di richiamo - to be or not to be
86Normalizzazione (stemming)
- Spesso lutente specifica un termine in una query
ma i documenti rilevanti ne contengono una sua
variante - La fase di normalizzazione sostituisce le
varianti di una stessa parola con la loro radice
comune (es connesso, connettere,
connessione,ecc.) - Non esiste consenso comune sullutilizzo della
fase di normalizzazione
87Selezione degli indici
- Due alternative
- full-text index tutte le parole sono utilizzate
per caratterizzare il contenuto informativo del
documento - selezione dei termini rilevanti
- 1. Mediante un processo automatico
- 2. Tramite lutilizzo di un Thesaurus
88Selezione degli indici
- Un metodo consolidato è quello di identificare
gruppi di nomi allinterno del testo (es.
computer science) - Un gruppo di nomi è un insieme di nomi la cui
distanza nel testo non supera una soglia
predefinita (es 3)
89Thesaurus
- Un thesaurus consiste di
- un insieme di vocaboli ed espressioni-chiave
rilevanti per un particolare dominio - un insieme di sinonimi per ogni vocabolo
nellinsieme - I thesauri sono di solito definiti da esperti del
settore
90Thesaurus
- La fase di indicizzazione e di ricerca avviene
solo facendo riferimento ai termini del thesaurus - Lutilizzo di thesauri è vantaggioso per domini
in cui è possibile la standardizzazione dei
termini di ricerca (esempio ambito medico,
legale,ecc.)
91Thesauri con reti semantiche
- In un thesaurus che utilizza una rete semantica i
termini possono essere strutturati attraverso una
rete di collegamenti concettuali - Una relazione semantica puo essere
- preferenziale
- gerarchica
- associativa
92Relazione preferenziale
- La relazione preferenziale rappresenta
lequivalenza (sinonimia) tra termini - SP (sinonimo preferenziale)
- USA (è il contrario di SP)
- Allievo SP Alunno
- Alunno USA Allievo
93Relazione gerarchica
- La relazione gerarchica rappresenta la relazione
di specializzazione che esiste tra i termini - TL (termine largo)
- TS (termine stretto)
- Veicolo TL Auto
- Auto TS Veicolo
- Il vertice della gerarchia si chiama TA (termine
più ampio)
94Relazione associativa
- La relazione associativa esprime un legame
biunivoco tra le componenti lessicali - RT (termine in relazione)
- La tipologia di relazione dipende dal contesto
- Esempi
- antinomia vittoria--sconfitta
- concomitanza sintomo--malattia
- proprietà trampolino--altezza
- inclusione contenuto--contenente
- localizzazione partita--stadio
95Reti semantiche
- Un thesaurus con rete semantica rende più
efficienti le interrogazioni perché consente di
ricercare automaticamente i termini sinonimi,
quelli più ampi o più ristretti ed i termini
correlati
96Thesaurus
- Per semplificare le ricerche al thesaurus è
associato un indice inverso cioè una tabella che
per ogni parola contenuta nel thesaurus contiene
una lista dei documenti che la contengono
97Indice inverso
termine
documenti
a
1,3,4,6,7
1,7 3,7 4,7
b c d
98Indici inversi
- Solitamente gli indici inversi vengono estesi per
mantenere per ogni termine non solo i documenti
che lo contengono ma anche il numero di
occorrenze di tale termine nei vari documenti
99Architettura di riferimento
Interfaccia utente
traduttore
indicizzazione
DB manager
Ricerca
indice
Text db
ordinamento
100Interrogazioni
- Due tipi fondamentali
- su stringhe, con caratteri jolly e sottostringhe
- con operatori booleani
101Interrogazioni su stringhe
- E possibile ricercare tutti i testi che
contengono una certa parola, una sua variante o
un suo sinonimo - comput? --gt computa, computo,...
- comp --gt computer, compilato, compito, ecc.
- Varianti
- ricerca di frasi
- ricerche fuzzy
- ricerca per prossimità (insieme di parole e
indicazione della distanza massima che devono
avere allinterno del testo)
102Interrogazioni booleane
- I termini dellinterrogazione possono essere
composti mediante gli operatori booleani - p1 AND p2
- p1 OR p2
- NOT p1
- Gli operatori booleani possono essere combinati
- (p1 AND p2) OR (p3 AND p4)
103Sistemi di IR esempi
- DIALOG Corporation offre più di 500 sistemi di
IR su svariati argomenti, quali scienze,
medicina, economia e giornali elettronici
(www.dialog.com) - LEXIS-NEXIS ambito legale ed economico
(www.lexis-nexis.com) - OCLC (the online computer library center) offre
laccesso ad 1.5 milioni di articoli
(www.oclc.org) - H.W. Wilson offre più di 40 sistemi di IR per
scuole ed istituzioni pubbliche (www.hwwilson.com)
104Sistemi di IR esempi
- CA SEARCH Chemical Abstract. Contiene 14 milioni
di documenti con una frequenza di aggiornamento
di 11.000 documenti alla settimana - MEDLINE indicizza articoli provenienti da 3.700
riviste mediche - NewYork Times -- Fulltext contiene tutte le
edizioni del NewYork Times dal 1981 ad oggi - PsycINFO Psycological Abstract. Contiene 1.5
milioni di documenti riguardanti psicologia,
sociologia, psichiatria, linguistica ed
antroplogia dal 1887 fino ad oggi
105Gestione di testi in Oracle 9i
- Oracle 9i Text
- permette di
- indicizzare testi e documenti memorizzati in
Oracle 9i, in file del sistema operativo o URL,
in maniera integrata con i dati relazionali
tradizionali con possibilità di interrogazioni
basate sul contenuto - possibilità di utilizzare un thesaurus
- classificare documenti in base al loro contenuto
- vedremo solo il primo aspetto
106Gestione di testi in Oracle 9i
- Formati
- File di testo
- HTML, XML
- documenti Word
- PDF
-
- Linguaggi
- per ricerche tematiche, inglese e francese
- possibilità di estendere i linguaggi caricando
opportuni thesauri per il linguaggio di interesse
107Sviluppo applicazione testuale
- Caricamento documenti
- indicizzazione
- interrogazione
- operatori
- thesauri
108Esempio
- create table docs
- (id number primary key,
- text varchar2(80))
- insert into docs values (1,'first document')
- insert into docs values (2, 'second document')
- create index doc_index on docs(text)
- indextype is ctxsys.context
- select id from docs
- where contains(text, 'first') gt 0
109Rappresentazione documenti
A B C
110Rappresentazione documenti
- A. Documento contenuto in un campo di tipo CHAR,
VARCHAR, VARCHAR2, LONG, LONG RAW, BLOB, CLOB - B. Campo di tipo BFILE
- C. Campo di tipo URIType
- la tabella deve avere una chiave primaria,
utilizzata per identificare i documenti
111Caricamento documenti
- Direttamente con statement INSERT
- SQL Loader
- procedure ad hoc
- OCI
112Indicizzazione documenti
- Oracle supporta diverse tipologie di indice
- CONTEXT, per ricerche su documenti arbitrari
- CTXCAT, per ricerche su documenti brevi e
strutturati - MATCHES, per classificazione documenti
- noi vedremo solo il tipo CONTEXT
- la creazione dellindice è un passo necessario
per lesecuzione di interrogazioni sul documento
113Indice CONTEXT
- Determina i termini indice associati ad ogni
documento - crea il surrogato
- organizza il surrogato come indice inverso
114Indicizzazione documenti
- comando per la creazione di indici
- create index INDEXNAME on TABLE(COLUMN)
- indextype is ctxsys.context
- il comando per default assume che
- la colonna sia di tipo A
- il linguaggio sia quello specificato durante
linstallazione - è possibile modificare le impostazioni di base,
customizzando il comando CREATE INDEX - sistema di preferences
115Indicizzazione documenti
- In generale, il comando di creazione di indice
esegue un insieme di processi che creano oggetti
intermedi - per ogni processo è possibile specificare delle
preferenze
116Indicizzazione documenti
117Indicizzazione documenti - processi
- Datastore scorre le righe della tabella e legge
i dati della colonna, restituendo i dati
contenuti nel documento - Filter prende i documenti restituiti dal
datastore e li trasforma in una rappresentazione
testuale - non necessaria per plain text, XML o HTML
- documenti Word, PDF, ecc. Vengono convertiti in
un testo con mark-up (esempio HTML) - Sectioner divide linformazione strutturale
(markup) dal contenuto - Lexer suddivide il plain text in token (parole)
e crea token tematici (in relazione alle
preferenze specificate) - Indexing engine crea linverted index,
eliminando stopword, contenute in STOPLIST e crea
indici per stemming utilizzando informazioni in
WORDLIST
118Indicizzazione documenti - preferenze
- per ciascun processo ci sono uno o più oggetti
che rappresentano i possibili comportamenti - in generale, gli oggetti sono raggruppati in
classi
119Indicizzazione documenti - preferenze
- tali oggetti non possono essere usati
direttamente negli indici - si crea una preference a partire da tali oggetti
template - la si personalizza settandone gli attributi
- si usa tale preference per creare lindice
120Indicizzazione documenti - Esempio
ctx_ddl.create_preference('mypref',
'FILE_DATASTORE')
ctx_ddl.set_attribute('mypref',
'PATH', '/docs')
create index doc_index on docs(text)
indextype is ctxsys.context parameters
('datastore mypref')
121Indicizzazione documenti - preferenze
- nella clausola parameters si possono specificare
più classi, semplicemente aggiungendo una coppia
keyword-preference - parameters('datastore mypref filter myfilter')
- questo meccanismo è usato per tutte le classi
tranne SECTION GROUP e STOPLIST, che hanno una
API propria - esistono dei parametri utilizzati dal sistema di
default (quelli per LEXER, WORDLIST e STOPLIST
dipendono dal linguaggio)
122Datastore
- DIRECT_DATASTORE (default) assume che il
documento sia memorizzato direttamente nella
colonna indicizzata, ne restituisce semplicemente
il contenuto - FILE_DATASTORE interpreta la colonna come un nome
di file, lo apre e ne restituisce il contenuto - URL_DATASTORE interpreta la colonna come un URL,
effettua una GET e restituisce il contenuto - ...
123Filter
- NULL_FILTER (default) utilizzato quando il
contenuto del documento non è in formato binario,
passa semplicemente il testo dal datastore al
sectioner - CHARSET_FILTER converte i documenti da un insieme
di caratteri straniero al character set del
database - USER_FILTER/PROCEDURE_FILTER filtering ad hoc
(es. per convertire tutto in lettere maiuscole)
in forma di procedura - INSO_FILTER riconosce automaticamente e filtra
oltre un centinaio di formati diversi, tra cui
Word e Acrobat, producendo HTML come output
124Lexers
- BASIC_LEXER per la maggioranza delle lingue
europee, si può modificare il comportamento di
default attraverso gli attributi - JOINS per specificare caratteri non alfanumerici
da trattare come lettere valide - PUNCTUATION per specificare i simboli di
punteggiatura (importanti per sezioni SENTENCE e
PARAGRAPH) - per la normalizzazione del testo (es. accenti,
maiuscole/minuscole, parole composte) - per selezionare indicizzazione di testo o
tematica
125Stoplist
- lista delle stopword, che non vengono considerate
per lindicizzazione - API separata
- ctx_ddl.create_stoplist('mylist')
- ctx_ddl.add_stopword('mylist', 'the')
- stoplist di default, che dipendono dal linguaggio
- si possono aggiungere stopword allindice senza
doverlo ridefinire - alter index myidx rebuild parameters ('add
stopword AND') - stop classes (es. NUMBERS) e stop themes
126Wordlist
- non ha effetto sullindicizzazione, ma contiene i
setting per espansione stem e fuzzy dei termini
utilizzati per rispondere alle interrogazioni - un solo oggetto BASIC_WORLDLIST con attributi
- STEMMER (espansione di una parola a forme
differenti, es. ENGLISH, ITALIAN, NULL) - FUZZY_MATCH (considera parole mistyped, es. varie
lingue e OCR) - FUZZY_SCORE (score floor per espansione fuzzy)
- FUZZY_NUMRESULT (max. numero parole per
espansione fuzzy)
127Section Groups
- La classe section group prende un formato di
testo (es. XML o HTML) come input e restituisce i
section boundaries e plain text - i section group non sono creati con
create_preferences, ma con una API separata - ctx_ddl.create_section_group('mygroup,
'html_section_group') - il primo argomento è il nome del section group,
il secondo è il tipo, che specifica il formato
del testo di input e le regole per individuare le
sezioni
128Section Groups
- tipi di section groups
- NULL_SECTION_GROUP da usare quando non ci sono
sezioni o ci sono solo sezioni speciali
SENTENCES e PARAGRAPH - default
- BASIC_SECTION_GROUP per XML o HTML, rimuove
semplicemente i markup tags, che devono essere
bilanciati, non supporta attributi e commenti - HTML_SECTION_GROUP per HTML
- XML_SECTION_GROUP per XML
- NEWS_SECTION_GROUP per newsgroup style postings,
rimuove header lines
129Section Groups
- le sezioni hanno tre attributi
- TAG specifica come riconoscere la sezione
- NAME specifica come riferirsi alla sezione nelle
query (più tag possono essere mappati sullo
stesso nome) - TYPE è il tipo di sezione, ci sono tre tipi
diversi ZONE, SPECIAL, FIELD - ZONE
- si registra dove sono start e end
- permette query di tipo WITHIN, cioè ricerche
allinterno di sezioni particolari - se una sezione ZONE si ripete viene trattata
separatamente nelle query - possono essere annidate
130Section Groups
- SPECIAL non sono riconosciute attraverso tag, ma
dal lexer attraverso la punteggiatura - SENTENCE
- PARAGRAPH
131Section groups
- FIELD
- il contenuto della sezione è indicizzato
separatamente dal resto del documento - le query di tipo WITHIN vengono eseguite su
questo indice separato - sono pensate per sezioni non ripetute e non
overlapping
132Section Groups - esempio
- Documento
- ltAgtratlt/AgtltAgtoxlt/Agt ltBgttiger rabbitlt/Bgt
ltCgtdragonltCgtsnakelt/Cgtlt/Cgt - Creazione section group ctx_ddl.create_section_gro
up('mygroup', - xml_section_group')
- aggiunta sezioni di tipo ZONE ctx_ddl.add_zone_se
ction('mygroup', 'asec', 'a') - ctx_ddl.add_zone_section('mygroup', 'bsec',
'b') - ctx_ddl.add_zone_section('mygroup', 'csec',
'c')
133Section Groups - esempio
- Documento plain text
- Creazione section group ctx_ddl.create_section_gro
up('mygroup', - null_section_group')
- aggiunta sezioni di tipo ZONE ctx_ddl.add_special
_section('mygroup', SENTENCE') -
134Aggiornamento degli indici
- Lindice creato non viene aggiornato
automaticamente dopo ogni operazione DML - indicizzare un singolo documento richiede molto
tempo - gli inverted index si aggiornano meglio su un
insieme di documenti per volta - le applicazioni in genere sono abbastanza
statiche, e non è necessaria una completa
consistenza - possibilità di ricostruzione totale o parziale
135Interrogazioni
- La creazione di un indice di tipo CONTEXT
permette di eseguire interrogazioni sul contenuto
dei documenti - funzione CONTAINS, con vari criteri di selezione
- logici
- di prossimità
- fuzzy
- stemming
- thesaurus
- wildcards
- ricerche su sezioni
- Sono case-insensitive per default
- modificabile con preferenze BASIC_LEXER
136Interrogazioni - contains
- select id
- from texttab
- where contains(textcol,'query') gt 0
- il primo argomento è il nome della colonna, il
secondo è il testo dellinterrogazione (max 2000
byte) - restituisce un numero, che quantifica il match
- 0 no match
137Interrogazioni - scoring
- select id, score(1)
- from texttab
- where contains(textcol, 'query', 1) gt 0
- order by score(1) desc
- 1 è contains label e può essere un qualsiasi
numero, utilizzato per matchare lo score nella
select list con quello nella clausola where - lo score è un numero compreso tra 0 e 100, ed è
relativo (significativo solo per la query)
138Interrogazioni - scoring
- Modello vettoriale
- Pesi wij 3f(1log(N/n)) con
- f frequenza
- N numero totale tuple
- n numero tuple che contengono il termine
- compresi tra 0 e 100
- la similarità è un valore tra 0 e 100
139Interrogazioni - tipologie
- interrogazioni semplici
- contains(text, 'dog') gt 0
- si possono interrogare frasi
- contains(text,'dog my cat') gt 0
- le stopword sono trattate come wildcard (matchano
qualsiasi parola) - contains(text, 'dog the cat') gt 0
- restituisce 'dog my cat, 'dog your cat, 'dog
the cat' - le stopword da sole vengono eliminate dalla query
140Interrogazioni - operatori booleani
- AND () e OR () restituiscono punteggi numerici
invece che valori booleani - AND è il minimo dei punteggi dei suoi operandi,
OR il massimo - NOT () è "AND NOT (differenza)
- 'dog NOT cat' restituisce i documenti che
contengono "dog" ma non contendono "cat - il punteggio restituito è quello del figlio
sinistro
141Interrogazioni - operatori di score
- WEIGHT () moltiplica il punteggio di un termine
di ricerca per renderlo più o meno importante
nella query (peso tra .1 e 10) - contains(text,'(dog2) AND cat') gt 0
- THRESHOLD (gt) elimina i documenti sotto una certa
soglia - contains(text,'(dog2) AND cat') gt 50
142Interrogazioni - operatori di espansione delle
parole
- WILDCARD (_) per pattern matching (come in LIKE
di SQL) - FUZZY (?) trova parole simili (usa wordlist)
- STEM () trova parole con radice comune (usa
wordlist) - SOUNDEX (!) trova parole con stesso suono (usa
una specifica espansione fuzzy) - EQUIV () permette di indicare esplicitamente
varie forme della stessa parola
143Interrogazioni - operatori di prossimità
- operatore NEAR, che ha due forme
- dog cat boat
- il punteggio dipende da quanto i termini sono
vicini luno allaltro, in termini di numero di
parole - NEAR((dog,boat), 10, TRUE)
- primo argomento è lista di parole
- secondo è distanza massima (numero di parole)
- terzo specifica se tenere conto dellordine in
cui appaiono nella lista
144Interrogazioni - sezioni
- WITHIN limita una query a una particolare
sezione - contains(text, tiger cat within
- sentence') gt 0
145Interrogazioni - esempio
- ltAgtratlt/AgtltAgtoxlt/Agt ltBgttiger rabbitlt/Bgt
ltCgtdragonltCgtsnakelt/Cgtlt/Cgt - ctx_ddl.create_section_group('mygroup',
- 'basic_section_group')
- sezione ZONE
- ctx_ddl.add_zone_section('mygroup', 'asec',
'a') - ctx_ddl.add_zone_section('mygroup', 'bsec',
'b') - ctx_ddl.add_zone_section('mygroup', 'csec',
'c') - contains(text, 'rat within asec') gt 0
- restituisce il documento
- contains(text, 'tiger within asec') gt 0
- non restituisce il documento
146Interrogazioni - esempio
- ogni istanza è considerata distinta
- contains(text, '(tiger and rabbit) within
bsec') gt 0 - trova il documento
- contains(text, '(rat and ox) within asec') gt 0
- no
- contains(text, '(dragon and snake) within
csec') gt 0 - sì
- nel caso di sezioni FIELD il contenuto di diverse
istanze viene unito, quindi la seconda query
restituirebbe il documento
147Interrogazioni tematiche
- Si vogliono determinare i documenti che trattano
un certo concetto - la stringa specifica rappresenta il concetto
(tema) cercato - solo per inglese e francese
- richiede la presenza di una knowledge base
- gerarchia di concetti con 6 sottoalberi
scienza-tecnologia, affari e finanza, politica e
militare, sociale, geografia, idee astratte - lindice deve avere una componente tematica
- se non ce lha, linterrogazione viene espansa in
una query non tematica
148Interrogazioni tematiche - esempio
- contains(text, 'about(canines)')
-
- se esiste lindice, può restituire documenti che
contengono dog - se non esiste, about(go home now) è trasformata
in go,home,now
149Interrogazioni - Thesaurus
- Possibilità di creare Thesaurus che definiscono
sinonimi e relazioni gerarchiche tra parole o
frasi - il thesaurus non viene installato di default ma
deve essere caricato - il sistema contiene un thesaurus di default per
linglese - il caricamento di un Thesaurus permette di
espandere le ricerche ai sinomini di una certa
parola o ad altre parole ad essa associate
150Interrogazioni - Thesaurus
- file con formattazione particolare
- alcune relazioni considerate
- SYN sinonimi
- PT preferred term
- BT broader term
- NT narrower term
- RT related term
- TR traduzione in altri linguaggi
- gli stessi identificatori corrispondono a
procedure che permettono di utilizzare queste
relazioni nelle interrogazioni
151Thesaurus - operatori
- SYN( term , thesname )
- PT( term , thesname )
- BT( term , level ,thesname )
- NT( term , level ,thesname )
- TT( term , thesname )
- RT( term ,thesname )
- TR( term ,lan ,thesname )
152Altri operatori di score
- MINUS (-) sottrae il punteggio delloperando
destro a quello del sinistro - contains(text, 'tiger MINUS rabbit') gt 0
- tiger e preferibilmente non rabbit
- sottrae i punteggi
- ACCUM (,) raggruppa più parole o frasi e ne
accumula i punteggi - contains(text, 'tiger ACCUM rabbit)') gt 0
- tiger e preferibilmente rabbit
- somma i punteggi
153Osservazione
- AND
- nella logica a due valori, richiede che entrambi
gli argomenti siano veri - interpretando vero 1 e falso 0, viene
restituito il valore minimo - stesso discorso nel caso di valori compresi tra 0
e 1 - ACCUM
- semplicemente somma i punteggi
- più termini compaiono, più il documento è
rilevante
154Osservazione
- OR
- nella logica a due valori, richiede che almeno un
argomento sia vero - interpretando vero 1 e falso 0, viene
restituito il valore massimo - stesso discorso nel caso di valori compresi tra 0
e 1 - MINUS
- toglie punteggi
- un documento è più rilevante se i termini a
destra non compaiono
155Basi di dati per la gestione di immagini
156Problematiche
- La realizzazione di un sistema per la gestione di
immagini deve affrontare le seguenti
problematiche - rappresentazione delle immagini
- Misura della similarità
- Metodi di accesso e ritrovamento
157Rappresentazione
Generazione metadati (automatica manuale)
Features attributi
immagini
Quali features e attributi?
158Features
- Forme (shape)
- lidea è quella di estrarre delle forme
dallimmagine - possono rappresentare contorni o approssimazione
di contorni
Approssimazione contorno
contorno
159Features - shape
- Una shape per un oggetto può essere rappresentata
in vari modi - ad esempio, un contorno può sempre essere visto
come una sequenza di punti p1,,pn in uno spazio
bidimensionale
160Features
- Oggetti semantici
- con oggetto semantico si intende un oggetto
significativo dal punto di vista
dellapplicazione - casa, viso, strada
- se gli oggetti sono chiaramente identificabili e
possono essere facilmente riconosciuti, il
ritrovamento può essere basato su tali oggetto - tipicamente richiedono intervento umano
- approccio limitato dalle tecniche esistenti di
analisi delle immagini
161Features
- Texture (tessitura)
- rappresentano informazioni relative alle
regolarità o irregolarità dellimmagine - dipendono dalla percezione visiva di unimmagine
- si basano sulle cosiddette Tamura features
- coarseness (rugosità)
- contrasto
- direzionalità
162Features
- Colore
- proprietà globale che non richiede conoscenza
degli oggetti contenuti nelle immagini - può essere determinato in modo automatico quindi
è molto utilizzato - spesso si usano istogrammi che rappresentano la
composizione di colori in unimmagine - ogni componente dellistogramma corrisponde ad un
colore (256 o 64 componenti) - per rappresentare unimmagine, si associa ad ogni
componente il numero di pixel dellimmagine più
simili al colore considerato - il colore di ogni pixel in genere viene
rappresentato come una tripla (R,G,B), dove R
indica la percentuale di Rosso, G la percentuale
di Giallo e B la percentuale di Blu
163Un possibile surrogato per le immagini
- In generale, per rappresentare in modo
sufficientemente dettagliato unimmagine è
necessario utilizzare più features - In generale, ogni immagine può essere
interpretata come - un insieme di oggetti interessanti, ciascuno
caratterizzato da un descrittore di forma, che
rappresenta la shape delloggetto e/o la zona
dellimmagine nella quale loggetto è collocato
(approssimazione) - proprietà globali
- un descrittore di proprietà, che descrive le
proprietà di un insieme di pixel nellimmagine
(RGB, livelli di grigio per immagini in bianco e
nero, texture) - proprietà locali
- le proprietà sono rappresentate da un nome (Red,
Green, Blue) e da un dominio (ad esempio 0,,8)
164Esempio
165Esempio
- Si consideri limmagine pic1.gif
- limmagine contiene due oggetti di interesse - o1
e o2 - - le shape di questi oggetti sono rappresentate dai
rettangoli presenti nella figura - il descrittore di proprietà associato ad un
insieme di pixel potrebbe avere la seguente forma - Red 5
- Green 1
- Blue 3
166Descrittori di proprietà
- Le proprietà vengono in genere associate ad
insiemi di pixel - In genere, ogni immagine viene associata ad una
coppia di interi positivi (m,n), chiamata la
griglia di risoluzione dellimmagine - una griglia (m,n) divide limmagine in (m x n)
celle di uguale dimensione, chiamate griglia
dellimmagine - ogni cella è costituita da un insieme di pixel
- le proprietà possono quindi essere associate a
cia