La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Basi di dati multimediali. 2 Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: – testi arbitrari – immagini.

Presentazioni simili


Presentazione sul tema: "1 Basi di dati multimediali. 2 Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: – testi arbitrari – immagini."— Transcript della presentazione:

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


Scaricare ppt "1 Basi di dati multimediali. 2 Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: – testi arbitrari – immagini."

Presentazioni simili


Annunci Google