Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoVitale Santoro Modificato 10 anni fa
1
1 Basi di dati multimediali
2
2 Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: – testi arbitrari – immagini – audio – video – dati tradizionali (relazionali, orientati ad oggetti)
3
3 Basi 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
4
4 MMDBMS: 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
5
5 MMDBMS: 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
6
6 Rappresentazione 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
7
7 Rappresentazione 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
8
8 Rappresentazione Oggetto multimediale riferimento LOB DBMS Oggetto multimediale
9
9 Rappresentazione - 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
10
10 Rappresentazione - 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)
11
11 Rappresentazione - 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
12
12 Rappresentazione - ORDBMS Illustra/Informix DataBlade IBM Database Extender Oracle Oracle Intermedia Librerie fornite da terze parti
13
13 Rappresentazione 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
14
14 Rappresentazione 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
15
15 Esempio Attributi descrittivi nome: Villa Medici località:Roma Features: forma:
16
16 Rappresentazione Oggetti multimediali Features + attributi Generazione metadati (automatica + manuale) I sistemi mettono a disposizione funzionalità per estrarre feature e per utilizzare tali feature nel contesto delle interrogazioni
17
17 Rappresentazione 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
18
18 Query Due aspetti – definizione caratteristiche linguaggio di interrogazione – query processing è necessario stabilire: – approccio generale allesecuzione delle query – aspetti che devono essere supportati
19
19 Idea di base query processing Oggetti multimediali Features + attributi Generazione metadati Meccanismo di interrogazione 1 2 3 Ê La query viene eseguita sui metadati (attributi + features) Ë dai metadati si risale ai documenti originali Ì i documenti originali vengono restituiti allutente
20
20 Aspetti 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
21
21 Attributi 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)
22
22 Query 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
23
23 Query 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
24
24 Ranking 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
25
25 Query 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
26
26 Query 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
27
27 Due 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
28
28 Nel seguito... Considereremo due media: – testo – immagini per ciascuno illustreremo – rappresentazione del contenuto – query in alcuni sistemi
29
29 Basi di dati testuali
30
30 Basi 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
31
31 Basi 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
32
32 Basi 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
33
33 Basi 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
34
34 Basi 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
35
35 Due criteri di valutazione: – precisione (precision) – richiamo (recall) Basi di dati testuali
36
36 Valutazione di una Interrogazione Rilevanti Restituiti Rilevanti Non restituiti Non rilevanti restituiti Non rilevanti Non restituiti Documenti contenuti nel database
37
37 Richiamo Il potere di richiamo è la percentuale di documenti rilevanti restituiti rispetto al totale di documenti rilevanti presenti nel sistema Rilevanti Restituiti Richiamo = Totale Rilevanti
38
38 Richiamo 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
39
39 Precisione La precisione è la percentuale di documenti rilevanti sul totale dei documenti restituiti Rilevanti Restituiti Precisione = Totale Restituiti
40
40 Precisione & 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
41
41 Basi 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
42
42 Rappresentazione di documenti testuali
43
43 Modellazione Estrazione di feature Database
44
44 Modellazione 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
45
45 structure stopwords Noun groups stemming Manual indexing Docs structureFull textIndex terms Modellazione - determinazione termini indice
46
46 Modellazione - 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)
47
47 Modellazione e query Docs Information Need Index Terms doc query Ranking match
48
48 Modellazione 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
49
49 Ranking 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)
50
50 Modelli Non-Overlapping Lists Proximal Nodes Structured Models Retrieval: Adhoc Filtering Browsing U s e r T a s k Classic Models boolean vector probabilistic Browsing Flat Structure Guided Hypertext
51
51 Modelli 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)
52
52 Modelli 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
53
53 Sia – k i il termine indice – d j un documento – w ij il peso associato a k i nel documento d j w ij quantifica limportanza dellindice k i per descrivere il contenuto informativo del documento d j w ij = 0 indica che k i non compare in d j Modelli Classici – Concetti Base
54
54 vec(d j ) = (w 1j, w 2j, …, w tj ) è il vettore di pesi associati al documento dj, dove t è il numero totale di indici g i (vec(d j )) = w ij è una funzione che restituisce il peso di k i nel documento d j Modelli Classici – Concetti Base
55
55 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 Modelli Classici – Concetti Base
56
56 Modello booleano E un modello semplice basato sulla teoria degli insiemi Le interrogazioni sono espressioni booleane – Semantica precisa – Formalismo consolidato – q = ka (kb kc)
57
57 I pesi assumono valori binari: – w ij {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 Modello booleano
58
58 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) Modello Booleano
59
59 sim(q,d j ) = 1 se vec(qcc) | vec(qcc) vec(qdnf)) k i, g i (vec(d j )) = g i (vec(qcc))) 0 altrimenti Un documento viene restituito solo se la sua similitudine con linterrogazione è pari ad uno Modello Booleano - similarità
60
60 Modello Booleano Esempio: – q=vec(qdnf) = (1,1,1) (1,1,0) (1,0,0) – d j = (0,1,0,…….) non è rilevante per q anche se contiene il termine kb – d i = (1,1,0,….) è rilevante per q
61
61 Modello 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
62
62 Modello 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)
63
63 Modello vettoriale Sia i documenti che le interrogazioni sono rappresentate come dei vettori di pesi Si definisce: – w ij > 0 quando k i d j – w iq > 0 quando k i q – vec(d j ) = (w 1j, w 2j,..., w tj ) – vec(q) = (w 1q, w 2q,..., w tq )
64
64 Modello 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) i j dj q
65
65 sim(q,d j ) = cos( ) = [vec(d j ) vec(q)] / |d j | * |q| = Modello Vettoriale
66
66 Modello vettoriale Dato che w ij >= 0 and w iq >= 0: – 0 sim(q,d j ) 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
67
67 Modello vettoriale - pesi Quali strategie adottare per computare i pesi w ij e w iq ? 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
68
68 Modello vettoriale - pesi w ij = tf(i,j) * idf(i) + tf(i,j) – + k i rilevante per d j + idf(i) – - rilevante in generale – termini che compaiono spesso in tutti i documenti non sono utili per distinguere un documento rilevante da uno non rilevante
69
69 Modello vettoriale Sia: – N il numero totale di documenti nel db – n i il numero di documenti che contengono k i – freq(i,j) la frequenza di k i in d j Il fattore tf normalizzato è: – f(i,j) = freq(i,j) / max(freq(l,j)) – il massimo è calcolato su tutti i termini k l che compaiono in d j Il fattore idf è dato da: – idf(i) = log (N/n i ) – il log è usato per rendere comparabili i valori di tf e idf
70
70 Modello vettoriale Il metodo più utilizzato è quello di usare come peso: – w ij = f(i,j) * log(N/n i ) Tale strategia è chiamata schema di pesatura tf-idf
71
71 Modello vettoriale Per i pesi da utilizzare nelle interrogazioni, Salton & Bucley propongono – w iq = (0.5 + [0.5 * freq(i,q) / max(freq(l,q)]) * log(N/n i )
72
72 Modello 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
73
73 d1 d2 d3 d4d5 d6 d7 k1 k2 k3 Esempio Pesi documenti e query booleani
74
74 d1 d2 d3 d4d5 d6 d7 k1 k2 k3 Esempio Pesi documenti booleani, query non booleani
75
75 d1 d2 d3 d4d5 d6 d7 k1 k2 k3 Esempio Pesi documenti e query non booleani
76
76 d1 d2 d3 d4d5 d6 d7 k1 k2 k3 Esempio Contenuto celle = freq(i,j)
77
77 d1 d2 d3 d4d5 d6 d7 k1k2 k3 Esempio 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]
78
78 Esempio 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] d1 d2 d3 d4d5 d6 d7 k1k2 k3
79
79 Esempio Calcoliamo similarità per ogni documento sim(d1,q) – d1* q = (.33 *.22) + (0 *.47) + (.42 *.85) =.43 – |d1| = sqrt((.33^2) + (.42^2)) =.53 – |q| = sqrt((.22^2) + (.47^2) + (.85^2)) = 1.0 – sim(d1,q) =.43 / (.53 + 1.0) =.28 d2:.06 d3:.43 d4:.06 d5:.46 d6:.19 d7:.17
80
80 Modello 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
81
81 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 Modello Probabilistico
82
82 Modello Probabilistico Data una query q e un documento d j, il modello probabilistico cerca di stimare la probabilità che lutente consideri il documento d j 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
83
83 Modelli 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
84
84 Estrazione di Feature dal Testo Quattro fasi: – Analisi lessicale del testo – Eliminazione delle stopword – Normalizzazione delle parole rimanenti – Selezione dei termini caratterizzanti (indici)
85
85 Analisi 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
86
86 Eliminazione 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
87
87 Normalizzazione (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
88
88 Selezione 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
89
89 Selezione 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)
90
90 Thesaurus 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
91
91 Thesaurus 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.)
92
92 Thesauri 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
93
93 Relazione preferenziale La relazione preferenziale rappresenta lequivalenza (sinonimia) tra termini: – SP (sinonimo preferenziale) – USA (è il contrario di SP) Allievo SP Alunno Alunno USA Allievo
94
94 Relazione 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)
95
95 Relazione 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
96
96 Reti 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
97
97 Thesaurus 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
98
98 Indice inverso termine documenti a 1,3,4,6,7 bcdbcd 1,7 3,7 4,7
99
99 Indici 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
100
100 Architettura di riferimento Text db DB manager indicizzazione indice Interfaccia utente traduttore Ricerca ordinamento
101
101 Interrogazioni Due tipi fondamentali: – su stringhe, con caratteri jolly e sottostringhe Trova tutti i documenti che contengono un certo pattern rappresentato da una stringa Pattern + esteso rispetto a quello usato nelloperatore LIKE – con operatori booleani Combinazione di diversi pattern
102
102 Interrogazioni su stringhe E possibile ricercare tutti i testi che contengono una certa parola, una sua variante o un suo sinonimo – comput? --> computa, computo,... – comp* --> 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)
103
103 Interrogazioni 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)
104
104 Sistemi 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)
105
105 Sistemi 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
106
106 Gestione 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
107
107 Gestione 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
108
108 Sviluppo applicazione testuale Caricamento documenti indicizzazione interrogazione – operatori – thesauri
109
109 Esempio 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') > 0;
110
110 Rappresentazione documenti ABCABC
111
111 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
112
112 Caricamento documenti Direttamente con statement INSERT SQL Loader procedure ad hoc OCI
113
113 Indicizzazione documenti Oracle supporta diverse tipologie di indice – CONTEXT, per ricerche su documenti arbitrari – CTXCAT, per ricerche combinate su documenti brevi e dati strutturati – MATCHES, per classificazione documenti noi vedremo solo il tipo CONTEXT la creazione dellindice è un passo necessario per lesecuzione di interrogazioni sul documento
114
114 Indice CONTEXT Determina i termini indice associati ad ogni documento – crea il surrogato – organizza il surrogato come indice inverso
115
115 Indicizzazione 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 – Usa lista di stopword di default – Abilita stemming è possibile modificare le impostazioni di base, customizzando il comando CREATE INDEX – sistema di preferences
116
116 Indicizzazione 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
117
117 Indicizzazione documenti
118
118 Indicizzazione 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
119
119 Indicizzazione documenti - preferenze per ciascun processo ci sono uno o più oggetti che rappresentano i possibili comportamenti in generale, gli oggetti sono raggruppati in classi:
120
120 Indicizzazione 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
121
121 Indicizzazione 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');
122
122 Indicizzazione 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)
123
123 Datastore 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...
124
124 Filter 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
125
125 Lexers 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
126
126 Stoplist 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
127
127 Wordlist 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)
128
128 Section 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
129
129 Section 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 Vedremo solo questo – 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
130
130 Section 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
131
131 Section Groups SPECIAL: non sono riconosciute attraverso tag, ma dal lexer attraverso la punteggiatura – SENTENCE – PARAGRAPH – Vedremo solo queste
132
132 Section 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
133
133 Section Groups - esempio Documento: rat ox tiger rabbit dragon snake Creazione section group ctx_ddl.create_section_group('mygroup', xml_section_group'); aggiunta sezioni di tipo 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');
134
134 Section Groups - esempio Documento plain text Creazione section group ctx_ddl.create_section_group('mygroup', null_section_group'); aggiunta sezioni di tipo SPECIAL ctx_ddl.add_special_section('mygroup', SENTENCE');
135
135 Aggiornamento 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 – Procedura ctx_ddl.sync_index
136
136 Interrogazioni 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
137
137 Interrogazioni - contains select id from texttab where contains(textcol,'query') > 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
138
138 Interrogazioni - scoring select id, score(1) from texttab where contains(textcol, 'query', 1) > 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)
139
139 Interrogazioni - scoring Modello vettoriale Pesi w ij = 3 f(i,j)(1+log(N/ni)) con – N numero totale tuple – normalizzati tra 0 e 100 la similarità è un valore tra 0 e 100 Vari operatori di composizione
140
140 Interrogazioni - tipologie A. Ricerca di documenti che contengono parole o frasi – Per default case insensitive – operatori di espansione, di prossimita B. Ricerca allinterno di sezioni di documenti (WITHIN) C. Ricerca di documenti che trattano un certo argomento (ABOUT) Operatori logici, operatori di score
141
141 Interrogazioni A – ricerca atomica per parole o frasi interrogazioni semplici contains(text, 'dog') > 0 si possono interrogare frasi: contains(text,'dog my cat') > 0 le stopword sono trattate come wildcard (matchano qualsiasi parola) contains(text, 'dog the cat') > 0 restituisce 'dog my cat, 'dog your cat, 'dog the cat' le stopword da sole vengono eliminate dalla query
142
142 Interrogazioni A - operatori di espansione delle parole WILDCARD (%_) per pattern matching (come in LIKE di SQL) FUZZY (?) trova parole con spelling simile a quella data (usa wordlist): ?termine STEM ($) trova parole con radice comune (usa wordlist): $termine SOUNDEX (!) trova parole con stesso suono (usa una specifica espansione fuzzy): !termine EQUIV (=) permette di indicare esplicitamente varie forme della stessa parola: labradors = alsatians are big dog – Si considera indifferentemente labrador o alsatians E possibile applicare questi operatori anche allitaliano, settando opportuni parametri
143
143 Interrogazioni A - 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) tra tutte le parole indicate – terzo specifica se tenere conto dellordine in cui appaiono nella lista True: considero ordine Default false
144
144 Interrogazioni B - sezioni WITHIN: limita una query a una particolare sezione Approccio – Documento plain text – Creazione section group ctx_ddl.create_section_group('mygroup', null_section_group'); – aggiunta sezioni di tipo ZONE ctx_ddl.add_special_section('mygroup', SENTENCE'); – Creazione indice con preferenza create index myindex on docs(text) parameters (section group mygroup) – Query di tipo within contains(text, tiger & cat within sentence') > 0
145
145 Interrogazioni B - esempio rat ox tiger rabbit dragon snake 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') > 0 restituisce il documento contains(text, 'tiger within asec') > 0 non restituisce il documento
146
146 Interrogazioni B - esempio ogni istanza è considerata distinta: contains(text, '(tiger and rabbit) within bsec') > 0 trova il documento contains(text, '(rat and ox) within asec') > 0 no contains(text, '(dragon and snake) within csec') > 0 sì nel caso di sezioni FIELD il contenuto di diverse istanze viene unito, quindi la seconda query restituirebbe il documento
147
147 Interrogazioni tematiche C Si vogliono determinare i documenti che trattano un certo concetto – ABOUT(frase) la stringa specifica rappresenta il concetto (tema) cercato, rappresentato da frase 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 – E case sensitive lindice deve avere una componente tematica se non ce lha, linterrogazione viene espansa in una query non tematica
148
148 Interrogazioni tematiche C - 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
149
149 Interrogazioni C - 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
150
150 Interrogazioni C - 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
151
151 Interrogazioni C - Thesaurus SYN( term [, thesname] ) PT( term [, thesname] ) BT( term [, level [,thesname]] ) NT( term [, level [,thesname]] ) TT( term [, thesname] ) RT( term [,thesname] ) TR( term [,lan [,thesname] ]) Livelli di distanza nel thesaurus dal termine considerato Thesname: nome del thesaurus Lan: linguaggio Se non si specifica il thesaurus, si considera quello di default
152
152 Interrogazioni C - esempio Se la query contiene – BT(dog) E nel thesaurus dog viene generalizzato con – animal la query viene sostituita con – dog OR animal Si veda dopo per il significato di OR
153
153 Interrogazioni - operatori logici AND (&): documenti che contengono almeno unoccorrenza di ciascun termine indicato – Restituisce il punteggio minimo tra quelli degli operandi OR (|): documenti che contengono almeno unoccorrenza di almeno un termine indicato – Restituisce il punteggio massimo tra quelli degli operandi NOT (~) è "AND NOT (differenza): – 'dog NOT cat' restituisce i documenti che contengono "dog" ma non contendono "cat – il punteggio restituito è quello del figlio sinistro
154
154 Interrogazioni - operatori logici MINUS (-) sottrae il punteggio delloperando destro a quello del sinistro contains(text, 'tiger MINUS rabbit') > 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)') > 0 – tiger e preferibilmente rabbit – Peso maggiore a chi contiene tutti i termini. Per documenti che contengono gli stessi termini, si considerano le frequenze
155
155 Interrogazioni - osservazione 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
156
156 Interrogazioni - osservazione 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
157
157 Interrogazioni - 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,'(dog*2) AND cat') > 0 Se il valore diventa maggiore di 100, lo si setta a 100 THRESHOLD (>) elimina i documenti sotto una certa soglia contains(text,'(dog*2) AND cat') > 50
158
158 Basi di dati per la gestione di immagini
159
159 Problematiche 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
160
160 Rappresentazione immagini Features + attributi Generazione metadati (automatica + manuale) Quali features e attributi?
161
161 Features Forme (shape) – lidea è quella di estrarre delle forme dallimmagine – possono rappresentare contorni o approssimazione di contorni Approssimazione contorno
162
162 Features - 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
163
163 Features 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
164
164 Features 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à
165
165 Features 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
166
166 Un 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})
167
167 Esempio
168
168 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
169
169 Descrittori 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 ciascuna cella le proprietà di ogni singola cella possono essere rappresentate come un vettore, in cui ciascuna componente corrisponde ad una determinata proprietà
170
170 Osservazione Le shape si possono interpretare come proprietà globali dellimmagine le proprietà sono invece locali a ciascuna singola cella dalle proprietà di ogni singola cella si possono ovviamente inferire le proprietà delle celle che rappresentano i vari oggetti identificati
171
171 Definizione di base di dati di immagini Una base di dati di immagini è una tripla (GI, Prop, Rec) dove: – GI è un insieme di immagini a cui è stata associata una griglia ogni immagine si può quindi vedere come una terna (Immagine,m,n), dove (m,n) rappresenta la griglia di risoluzione – Prop è un insieme di proprietà di celle – Rec è una funzione che associa ad ogni immagine un insieme di shape, in base ad una qualche rappresentazione Prop rappresenta le proprietà locali delle immagini Rec rappresenta le proprietà globali delle immagini
172
172 Query per similitudine Le query possono coinvolgere sia proprietà locali che proprietà globali problema: come determino la similitudine tra due immagini? Approccio fondamentale: approccio metrico si assume che esista una distanza metrica d con la quale confrontare ogni coppia di oggetti più bassa è la distanza, più simili sono gli oggetti
173
173 Approccio metrico Una funzione da un insieme X a [0,1] è una funzione distanza se soddisfa i seguenti assiomi per ogni x,y,z in X: – d(x,y) = d(y,x) – d(x,y) <= d(x,z) + d(z,y) – d(x,x) = 0 per ogni proprietà associata ad unimmagine può essere definita una funzione distanza la distanza tra due immagini si ottiene quindi combinando le distanze tra le varie proprietà (locali e/o globali), ad esempio applicando la distanza Euclidea
174
174 Esempio applicato alle proprietà globali Si consideri un insieme Obj di immagini (256 x 256). Si supponga che ogni cella sia associata a tre attributi (red, green, blue) che assumono un valore in {0,…,8} un esempio di funzioni distanza tra due immagini o1 e o2 rispetto alle tre proprietà considerate è il seguente: – diffr[i,j] = (o1[i,j].red - o2[i,j].red) 2 – diffg[i,j] = (o1[i,j].green - o2[i,j].green) 2 – diffb[i,j] = (o1[i,j].blue - o2[i,j].blue) 2 – d(o1,o2) = ( i=1,256 i=1,256 ( diffr[i,j] + diffg[i,j] + diffb[i,j])) 1/2
175
175 Approccio metrico per proprietà locali La distanza precedente rappresenta la distanza Euclidea tra i due oggetti se si considerano n proprietà locali e t =h x k celle, in base allapproccio metrico ogni immagine è vista come un insieme di m punti n-dimensionali – f(I) = {P 1,…,P t } P i = (x i1,…,x in ) per determinare se le immagini I 1 e I 2 sono simili in base alla distanza Euclidea: – f(I 1 ) = {P 1,…,P t } P i = (x i1,…,x in ) – f(I 2 ) = {Q 1,…,Q t } Q i = (y i1,…,y in ) – d(I 1,I 2 ) = ( i=1,t d(P i,Q i )) 1/2 – d(P i,Q i ) = (x i1 -y i1 ) 2 + … + (x in -y in ) 2
176
176 Approccio metrico per proprietà locali Lapproccio metrico richiede che per ogni proprietà locale venga calcolata la distanza tra celle corrispondenti in immagini distinte ogni immagine è quindi interpretata come un insieme di punti – ogni punto è dato dai valori per le proprietà locali di una certa cella – se le proprietà sono n, i punti sono n-dimensionali – ogni immagine sarà caratterizzata da tanti punti quante sono le celle poiché il numero delle celle spesso è alto esistono approcci (che non vediamo) per mappare le immagini NON in un insieme di punti MA in un singolo punto in uno spazio s-dimensionale, con s <= n Esempio: consideriamo la media degli n punti – in questo caso s coincide con n si noti che il punto ottenuto si può interpretare come una proprietà globale dellimmagine
177
177 Indicizzazione per proprietà locali I punti ottenuti possono essere utilizzati come base per definire le tecniche di indicizzazione nel caso limite in cui s = 1, si potrebbero usare I B-tree nel caso in cui s > 1, è necessario utilizzare specifici indici multidimensionali questi indici sono stati definiti nel contesto delle basi di dati spaziali Spazio n-dimensionale Spazio s-dimensionale Algo di indiciz. indice DB immagini
178
178 Approccio metrico per proprietà globali Anche per gli oggetti (regioni) associati ad unimmagine è possibile applicare un approccio metrico in questo caso la distanza deve essere definita sulle shape anche le shape possono essere rappresentate come un insieme di punti Esempio – se la shape è rappresentata da una spezzata costituita da n segmenti, la spezzata può essere descritta da una sequenza di n punti bidimensionali p2 p1 p3 p4 p5
179
179 Approccio metrico per proprietà globali In questo caso è possibile passare da n punti a 2 punti considerando il minimo rettangolo che contiene la shape (minimum bounding box - MBB) 2 punti si possono vedere come un punto in uno spazio 4-dimensionale (s = 4) p2 p1 p3 p4 p5
180
180 Indicizzazione per shape shapeApprossimazioni shape Algo di indiciz. indice DB immagini
181
181 Uso della distanza nelle query Lutilizzo della funzione distanza permette di risolvere in modo formalmente semplice (ma non semplice dal punto di vista di unottimizzazione efficiente) le query per similitudine Interrogazione di base: – data unimmagine, trovare le immagini simili a quella in input
182
182 La gestione delle immagini nei vari DBMS dipende dal sistema prescelto in genere, viene permessa una duplice rappresentazione – riferimento esterno: il DB contiene riferimento ai file che contengono le immagini – rappresentazione interna: le immagini vengono memorizzati nel DBMS di tipo BLOB (binary large object) i sistemi mettono quindi a disposizione tool per generare i surrogati delle immagini (il tipo di surrogato dipende dal DBMS e dal tool prescelto),per gestire le immagini e per interrogarle Rappresentazione immagini nei DBMS
183
183 Quindi, per rappresentare un database di immagini IDB=(GI, Prop, Rec) in un DBMS – ogni I in GI viene memorizzata in base allapproccio prescelto – ogni proprietà in Prop verrà implementata dai tool messi a disposizione dal sistema per determinare i valori associati a specifiche proprietà (che dipendono dal sistema scelto) – Rec rappresenta le shape degli oggetti riconosciuti utilizzando i tool messi a disposizione del sistema Rappresentazione immagini nei DBMS
184
184 Le proprietà possono riferirsi alle celle o allimmagine nel suo complesso e rappresentare, ad esempio, informazioni quali il nome dellimmagine, la data di caricamento, ecc. queste informazioni possono essere rese disponibili allutente per effettuare interrogazioni Nel caso dellapproccio metrico, il sistema supporterà adeguati indici multidimensionali per supportare le query per similitudine
185
185 Gestione immagini in Oracle Ogni oggetto multimediale in Oracle può essere memorizzato, manipolato e interrogato utilizzando un particolare tipo di dato – definiti nel package ORDSYS (non indicato nel seguito) Per le immagini – ORDImage: unistanza è costituita da: attributi, che rappresentano il dato sorgente, cioè limmagine proprietà globali come lunghezza, larghezza, dimensione, tipo file (es. TIFF), tipo di compressione (es. JPEG), tipo di contenuto (es. Monocromatico) metodi, che permettono di gestire le immagini – ORDImageSignature: unistanza rappresenta le feature (signature) associate ad unimmagine
186
186 Tipi di dato + attributi strutturali features ORDImage ORDImageSignature ORDSource
187
187 Esempio Si supponga di volere creare una tabella contenente delle fotografie in particolare la tabella deve contenere: – id fotografia – nome fotografo – descrizione fotografia – la fotografia una possibile dichiarazione di questa tabella è la seguente: CREATE TABLE stockphotos ( photo_id NUMBER, photographer VARCHAR(64), annotation VARCHAR(255), photo ORDImage, photo_sign ORDImageSignature);
188
188 ORDImage - attributi
189
189 ORDImage - Attributi
190
190 ORDImage - Costruttori Init() – immagine memorizzata internamente inizializza loggetto ponendo tutti gli attributi a NULL esclusi: – source.localdata=empty_blob() – source.local = 1 (indica che limmagine è caricata nel file system locale) – source.updateTime = SYSDATE Esempio insert into stockphotos (1, John Ross, NULL, OrdImage.init());
191
191 ORDImage - Costruttori Init(srcType IN VARCHAR2 srcLocation IN VARCHAR2, srcName IN VARCHAR2) – immagine memorizzata allesterno inizializza loggetto ponendo tutti gli attributi a NULL esclusi: – source.localdata=empty_blob() – source.local = 0 (indica che limmagine si assume memorizzata nel file system esterno) – source.updateTime = SYSDATE – source.srcType, source.srcLocation, srcName, posti uguali ai valori in input
192
192 ORDImage - esempio Esempio – insert into stockphotos (1, John Ross, NULL, ORDImage.init(FILE,MY_IMAGES,image1.gif));
193
193 ORDImage - Caricamento I costruttori effettuano solo linizializzazione degli attributi ma non caricano limmagine nel campo BLOB nel caso in cui si intenda copiare limmagine nel DBMS, sono previsti metodi per il caricamento (e di esportazione) MEMBER PROCEDURE importFrom( ctx IN OUT RAW, source_type IN VARCHAR2, source_name IN VARCHAR2) RAW: dati che non vengono interpretati da Oracle (simile a LOB), utilizzato durante il caricamento, come buffer temporaneo Aggiorna source – il file viene caricato in localData e local viene posto a 1 – inizializzati tutti gli altri campi con valori in INPUT
194
194 Esempio - caricamento dati nel DBMS DECLARE Image ORDSYS.ORDImage; ctx RAW(4000) := NULL; BEGIN INSERT INTO stockphotos VALUES (1,John Doe, red plaid, ORDSYS.ORDImage.init(), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 for UPDATE; Image.importFrom(ctx, file,ORDIMGDIR,redplaid.gif); … UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; FOR UPDATE: lock sulla tupla
195
195 Esempio - riferimento esterno DECLARE Image ORDSYS.ORDImage; BEGIN INSERT INTO stockphotos VALUES (1,John Doe,red plaid, ORDSYS.ORDImage.init(file,ORDIMGDIR,redplaid.gif), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 FOR UPDATE; … aggiornamento info immagine... UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END;
196
196 ORDImage- Metodi per la manipolazione Si dividono in diversi gruppi tra cui: – metodi di copia – metodi di processamento – metodi di settaggio attributi – metodi di accesso agli attributi (circa uno per attributo)
197
197 Metodi di manipolazione Metodo di copia: – Copy (dest IN OUT ORDImage) – copia limmagine in dest, inclusi i valori di tutti gli attributi metodi di processamento: – process(command IN VARCHAR2) – command rappresenta una lista di tecniche di image processing da applicare alle immagini esempio: cambiamento scala
198
198 Metodi di manipolazione Metodi di settaggio attributi: – setProperties() – determina i valori per gli attributi di ORDImage, escluso source – importFrom() chiama direttamente setProperties – da chiamare manualmente negli altri casi Metodi di accesso: – circa uno per ogni attributi (si veda il manuale) – getHeight() RETURN INTEGER – restituisce il valore associato allattributo HEIGHT
199
199 Esempio DECLARE Image ORDSYS.ORDImage; BEGIN INSERT INTO stockphotos VALUES (1,John Doe,red plaid, ORDSYS.ORDImage.init(file,ORDIMGDIR,redplaid.gif), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 FOR UPDATE; Image.setProperties(); UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END;
200
200 ORDImageSignature Rappresenta le feature calcolate a partire da unimmagine linsieme delle features viene chiamato signature – unico attributo, di tipo BLOB
201
201 ORDImageSignature - segnatura La segnatura contiene le seguenti features: – color: distribuzione di colore nellimmagine – texture – shape: rappresenta gli oggetti (tipicamente forme geometriche) – location: tiene conto della posizione delle shape nellimmagine e della distribuzione del colore I valori associati alle precedenti proprietà rappresentano un punto: multidimensionale la somma di tali valori per unimmagine è 100
202
202 ORDImageSignature - segnatura Image1 e Image2 sono simili rispetto al colore globale ma non rispetto alla locazione
203
203 ORDImageSignature - segnatura
204
204 ORDImageSignature - metodi inizializzazione: – metodo init() generazione segnatura: – metodo generateSignature(ORDImage) altri che non vediamo
205
205 Esempio DECLARE t_image ORDSYS.ORDImage; image_sig ORDSYS.ORDImageSignature; BEGIN SELECT photo, photo_sig INTO t_image, image_sig FROM stockphotos WHERE photo_id=1 FOR UPDATE; image_sig.generateSignature(t_image); UPDATE stockphotos SET photo_sig = image_sig WHERE photo_id =1; END;
206
206 Caricamento completo immagine In Oracle, unimmagine è rappresentata secondo tre componenti: – immagine stessa (BLOB o BFILE) se la si vuole trattare come BFILE, loperazione di inizializzazione initFrom() è sufficiente ad inizializzare limmagine se la si vuole trattare come BLOB, è necessario prima inizializzarla e poi importarla (init() + importFrom()) – attributi descrittivi determinati con metodo setProperties() – segnatura calcolata con metodo generateSignature()
207
207 Indici La creazione degli indici non è immediata Esempio: per creare un indice sullattributo photo della tabella stockphotograph: CREATE INDEX imgindex on stockphotograph(photo.signature) INDEXTYPE IS ORDSYS.ORDImageIndex;
208
208 Interrogazioni Due operatori (non metodi) principali: – IMGsimilar: prese due segnature, stabilisce se sono simili, confrontando le segnature – IMGscore: restituisce il valore di similarità per due segnature
209
209 IMGSimilar IMGSimilar( signature IN RAW, querysignature IN RAW, weightstring IN VARCHAR2, threshold in FLOAT, [referencetoScore IN NUMBER]) weightstring ha la forma – color = val texture = val shape = val location = val dove val è un valore tra 0 e 1 che pesa una certa feature
210
210 IMGSimilar loperatore calcola la media delle distanze di ogni proprietà considerata, pesandola rispetto ai pesi specificati in weightstring restituisce 1 se la distanza è minore di threshold (valore tra 0 e 100) – 0 distanza minima (similarità massima) referencetoScore assegna un identificatore alla chiamata della funzione potrà poi essere utilizzato nella chiamata della funzione VIRScore, nel contesto della stessa query
211
211 IMGScore IMGScore(referencetoSimilar IN NUMBER) la query che invoca questo metodo deve anche invocare IMGSimilar – posso calcolare lo score solo se ho determinato quali oggetti sono simili referencetoSimilar è un intero che rappresenta lidentificatore di una chiamata a IMGSimilar lo score viene calcolato rispetto agli oggetti sui quali è stata applicata IMGSimilar
212
212 Esempio Supponiamo di volere determinare tutte le fotografie simile ad una fotografia F data nel determinare la similitudine, vogliano attribuire un peso maggiore al colore, in particolare vogliamo fissare i pesi come segue: – color = 0.6 – texture = 0.2 – shape = 0.1 – location = 0.1 vogliano inoltre fissare un threshold a 50 vogliamo restituire gli identificatori delle fotografie che soddisfano la query insieme allo score calcolato
213
213 Esempio (continua) Supponendo di considerare una variabile – F ORDImageSignature ecco la query: SELECT photo_id,ORDSYS.IMGScore(12) FROM stockphotos WHERE ORDSYS.IMGSimilar(photo_sig,F, color = 0.6 texture = 0.2 shape = 0.1 location = 0.1, 50, 12) = 1
214
214 Esempio (continua) Si consideri adesso unimmagine con le seguenti distanze dalle feature della query: – texture = 5 – color = 90 – shape = 50 – location = 15 la distanza è calcolata come segue: – 0.1 * 15 + 0.6 * 90 + 0.2 * 5 + 0.1 * 50 = 61.5 poiché il threshold è 50, questa immagine non verrebbe restituita supponiamo adesso di invertire i valori associati al colore e alla locazione, la distanza diventa: – 0.6 * 15 + 0.1 * 90 + 0.2 * 5 + 0.1 * 50 = 24.0 in questo caso limmagine verrebbe restituita
215
215 Esempio (continua) Supponiamo di volere determinare la fotografica più simile a F SELECT photo_id FROM (SELECT photo_id,ORDSYS.IMGScore(12), RANK() OVER (ORDER BY ORDSYS.IMGScore(12) ASC) AS rank; FROM stockphotos WHERE ORDSYS.IMGSimilar(photo.signature,query.signature,color = 0.6 texture =0.2 shape = 0.1 location = 0.1,50, 12) = 1) WHERE rank = 1;
216
216 Esempio Si consideri la tabella Panorami, memorizzata in una base di dati Oracle 9i. Tale tabella contiene i seguenti campi: – Id, di tipo NUMBER – Nome, di tipo VARCHAR(30) – Descrizione, di tipo VARCHAR(200) – Panorama, di tipo ORDSYS.ORDImage – Panorama_sign ORDSYS.ORDImageSignature
217
217 Esempio (continua) Si supponga di volere inserire nella tabella la seguente tupla: Id = 1 Nome = Genova3 Descrizione = Il porto antico di notte Panorama = GePA.gif Il file GePA.gif risiede nella directory Immagini. Limmagine sorgente deve inoltre essere gestita come BLOB. Presentare lo statement SQL per linserimento della tupla ed indicare quali metodi dovranno essere successivamente invocati per gestire limmagine come BLOB e perché.
218
218 Esempio (continua) INSERT INTO Immagini VALUES (1, Genova3,Il porto antico di notte,ORDSYS.ORDImage.init(), ORDImageSignature()); SELECT Panorama INTO Image FROM Panorami WHERE id = 1 for UPDATE; Image.importFrom(ctx, FILE,IMMAGINI,GePA.gif); sign.generateSignature(Image); UPDATE Panorami SET Panorama = Image, Panorama_sign = sign WHERE id = 1;
219
219 Esempio (continua) Determinare tutti i panorami simili a query_pan, considerando solo il colore. Restituire i nomi delle immagini e lo score. SELECT Nome,ORDSYS.IMGScore(12) FROM Panorami WHERE ORDSYS.IMGSimilar(panorama_sig,query_pan, color = 1 texture =0 shape = 0 location = 0, 10, 12) = 1 la scelta di un threshold del 10% mi permette di selezionare solo le immagini molto simili a quella data
220
220 Esempio (continua) Si supponga che per limmagine GePA.gif siano state calcolate le seguenti distanze rispetto a query_pan : color = 40 texture = 30 shape = 20 location = 30 Stabilire se limmagine GePa.gif verrà restituita dallinterrogazioni I 40 * 1 = 40 quindi limmagini non viene restituita
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.