Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Automatic Text Automatic Text ProcessingProcessing
Ing. Leonardo RigutiniDipartimento di Ingegneria dell’Informazione
Università di SienaVia Roma 53
53100 – SIENA – [email protected]
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
OutlinesOutlines
L’era dell’informazioneInformation RetrievalI documenti di testoRappresentazione del testo:
Vettori di featureRappresentazione Bag-OF-WordImportanza di un termineMisura di similarità
Normalizzazione del testo:TokenizationConversion to lower caseLemmingStop-Word
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
L’ era dell’ informazioneL’ era dell’ informazioneDocumento inteso come contenitore di informazione di qualunque tipo
Varie forme di informazione: Testo, Radio, Televisione, INTERNET
Vari tipi di documenti: Testo, Audio, Immagini e Video, Tutti
Incredibile il numero di documenti esistenti oggi:Nel 2000 si stima la dimensione del web in più di 1 BILIONE di pagine
I motori di ricerca classici (Google, AltaVista, Yahoo) indicizzano centinaia di milioni di documenti
Gli archivi delle aziende raggiungono milioni di documenti
Moltissime anche le pubblicazioni memorizzate nei database dei search-engine specializzati (citeseer, cora, IEEE, ecc…)
Newsgroup, forum, le e-mail …
Archivi fotografici
Ecc..
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Information RetrievalInformation RetrievalNecessità di organizzare questa informazione
Aziende:
– documenti relativi all’azienda, regolamento interno, bollettini interni,comunicazioni varie, workflow, ecc..
Enti pubblici:
– Regolamenti, modulistica, notizie, bandi ecc..
WEB:
– Qualunque informazione
Altro…
Necessità di studiare tecniche per un recupero “intelligente” dell’informazione:
IR (Information Retrieval)
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Information RetrievalInformation Retrieval
Disciplina che studia tecniche per il recupero dell’informazione
Es. Motori di ricercaEs. Motori di ricerca
Scopo:Recupero dei documenti “giusti” durante la ricerca da parte dell’utente
Misure per l’ IR:
RECALL:
PRECISION:
n° relevant items retrievedn° relevant items in collection
n° relevant items retrieved total n° items retrieved
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Information RetrievalInformation RetrievalMisurare la similarità tra due o più documenti in modo da restituire all’utente i documenti più significativi:
Trovare una rappresentazione adeguata dei documenti
Definire una metrica (distanza) per tale rappresentazione
La macchina determina la similarità tra la query e tutti i documenti nel database, restituendo i documenti con punteggio più elevato.
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Documenti di testoDocumenti di testoLa maggioranza di documenti presenti sulla rete sono documenti di testo
La maggioranza delle tecniche di classificazione e di recupero dell’informazione sono relative al testo
La maggioranza delle ricerche effettuate sul web riguarda documenti di testo
Le ultime due affermazioni sono strettamente correlate:Ad oggi pochi sono i motori per immagini che funzionano, quasi nessuno per i video o audio, ciò spiega perché l’utente si muove su documenti di testo
Inoltre molte ricerche multimediali si risolvono in ricerche testuali in appositi campi
– un video viene etichettato con un insieme di keyword e la sua ricerca avviene per tali parole
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Text-IRText-IRText Information Retrival raccoglie:
Text Retrieval:
– Data una query, recuperare i documenti più attinenti
Text Segmentation:
– Dato un documento, suddividerlo in sub-topic
Text Classification:
– Determinare la classe del documento tra un insieme di classi prestabilito
Document Clustering:
– Dato un database documentale, determinare l’insieme delle classi e gli abbinamenti classe-doumento
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Rappresentazione del testoRappresentazione del testo
Documento di testo:Sequenza (flusso) di parole contenente uno o più topic (argomenti, concetti ecc..)
Feature:Parole
Punteggiatura
Stile del testo (Grassetto, Corsivo, ecc…)
Struttura del testo (Titolo, paragarafo, nota ecc…)
Bi-grammi o tri-grammi
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Vettori - 1Vettori - 1Un punto in uno spazio può essere rappresentato come un insieme di valori, ognuno dei quali si riferisce ad una dimensione dello spazio stesso
Es.2-D : P = ( x1 , x2 )
3-D : P = ( x1 , x2 , x3 )
Formalmente:Un vettore è una n-pla di valori dove n è la dimensione dello spazio P = ( x1 , x2 , … , xn )
x1
x2
x3
P (x1,x2,x3)
x1
x2
P (x1,x2)
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Vettori - 2 Vettori - 2 Rappresentazione alternativa di un vettore in R2:
Modulo: misura del vettore
Angolo: angolo che il vettore forma con le ascisse
N.B. sempre due dimensioni (cambia la base)
Operazioni:Modulo:
– Per calcolare il modulo si utilizza il teorema di pitagora:– E si indica con
Prodotto scalare– – Il prodotto scalare tra A e B si indica con < A,B> o A•B
22
21 )(x )(x P
x1
x2
P (x1,x2)
α
P
P
2211 b ·ab ·a BA,
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Vettore differenzaVettore differenzaDati due punti (vettori) è possibile calcolare il vettore differenza:
Quanto vale A-B ?A-B= C (a1-b1 , a2-b2 )
a1
a2A (a1,a2)
b1
b2 B (b1,b2)
a2-b2
C (a1-b1 , a2-b2)
a1-b1
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Distanza - 1Distanza - 1Possiamo definire due tipi di distanze:
Distanza euclidea :
– modulo del vettore differenza
Distanza del coseno:
– Angolo formato dai due vettori:
– Se due vettori hanno “pendenze” vicine allora l’angolo che essi formano è piccolo ed il coseno tende ad 1
222
211 )b (a )b (a BA
a1
a2A (a1,a2)
b1
b2 B (b1,b2)
B A
BA, cos
α
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Distanza - 2Distanza - 2
La seconda formula è 0 quando α = 90°In tale situazione infatti il prodotto scalare è 0
Ed i due vettori si dicono ortogonali
Infatti: < A ,B > = 0·b1 + a2·0 = 0
a2 A (0,a2)
b1
B (b1,0)α =90°
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Vector Space ModelVector Space ModelUn documento è visto come un punto (vettore) nello spazio delle parole del dizionario (feature):
Di = ( wi,1, wi,2 , wi,3 , … , wi,n)
Ogni termine wi,k è il peso della parola k nel documento i:
1.
2.
3. tf.tdf:
4. …altri
Tale rappresentazione è detta comunemente Bag-of-Word
i documento nel apparek termineilche voltedi numero n i, kiw
collezione interanell'k terminedel frequenza
i documento nelk terminedel frequenza, kiw
altrimenti 0
i documento nel apparek termineil se 1,kiw
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Es. BOW (Bag-of-Word)Es. BOW (Bag-of-Word)Supponiamo di avere due documenti:
D1 = “ingredienti pizza: farina, acqua, lievito, olio”
D2 = “descrizione computer: CPU, RAM, Hard disk”
Il dizionario è l’unione dei due insiemi:T = {ingredienti,pizza,farina,acqua,lievito,olio,descrizione,computer,CPU,RAM,Hard Disk}
n=11 dimensione dello spazio
La rappresentazione BOW dei due documenti:D1 = (1,1,1,1,1,1,0,0,0,0,0)
D2 = (0,0,0,0,0,0,1,1,1,1,1)
Se un utente esegue una query Q= “ingredienti pizza” essa viene rappresentata come:
Q = (1,1,0,0,0,0,0,0,0,0,0)
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Grado di similaritàGrado di similaritàIl calcolo della similitudine tra due documenti diventa il calcolo della distanza tra due vettori:
– Sim(Di , Dj) = d (Di , Dj)
Normalmente si utilizza la distanza del coseno:
– Sim(Di , Dj) = cos (Di , Dj) = ji
ji
DD
D , D
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Es. (reprise)Es. (reprise)Nell’ esempio precedente avevamo:
D1 = (1,1,1,1,1,1,0,0,0,0,0)
D2 = (0,0,0,0,0,0,1,1,1,1,1)
Q = (1,1,0,0,0,0,0,0,0,0,0)
Calcolando sim( ) avremo:Sim (D1, D2) = 0
Sim (Q , D1) = 0.37
Sim (Q , D2) = 0
Ed il sistema restituisce il documento D1
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Soglia di similaritàSoglia di similaritàNella realtà:
Databases con milioni di documenti
Dizionario formato da migliaia di parole (vettori di ~10.000 componenti)
Conseguenze:Molti confronti con un valore di similarità prossimo a zero ma non zero
Soluzione:Soglia di similarità
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Bag-Of-WordBag-Of-Word
Limiti:Rappresentazione cruda del testo (non viene analizzata la semantica)
Parole uguali che assumono nel documento significati differenti sono trattate come la stessa parola
Presenza di elevato rumore (vedremo più avanti)
Vantaggi:Semplice e veloce
Relativamente bassa complessità computazionale
Buoni risultati (60 % – 70 % in classificazione)
Studiata da 15 anni
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
RumoreRumore
Con rumore si intende qualunque cosa che disturba il buon comportamento del sistema
In questo caso:Parole poco informative sul topic del documento(articoli, congiunzioni, avverbi)
Parole diverse con significati simili (sinonimi)
Parole uguali con significati diversi (es. àncora e ancòra)
Verbi coniugati (vado e andare)
Per limitare alcuni di questi problemi sono stati studiati metodi di pre-processing
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Normalizzazione del testoNormalizzazione del testo
Consiste in quattro step di cui due opzionali:1. Tokenization
2. Conversion to lowercase
3. Lemming
4. Stop-word
Tali operazioni tentano di ridurre il rumore introdotto dalla rappresentazione bag-of-word del documento
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
TokenizationTokenization
Evita che parole e punteggiatura siano incorporate in un unico termine, separandoli come due parole disgiunte
Es.“ Today, stocks closed higher on heavy trading. Many stocks, despite early losses, reached all time highs.”
“ Today , stocks closed higher on heavy trading . Many stocks , despite early losses , reached all time highs . ”
Ovviamente non è tutto così semplice:Se il punto fa parte del termine deve rimanere tale (es. nomi di società, indirizzi e-mail ecc…)
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Conversion to lower caseConversion to lower case
Evita che termini scritti totalmente o parzialmente in maiuscolo e in minuscolo vengano considerati diversamente
Es.“today , stocks closed higher on heavy trading . many stocks , despite early losses , reached all time highs . ”
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
StemmingStemming
Riporta i termini alla loro radice:Verbi coniugati
Plurale e singolare
Maschile e femminile
Es.“Today, stocks closed higher on heavy trading. Many stocks, despite early losses, reached all time highs.”
“Today, stock close high on heavy trade. Many stock, despite early loss, reach all time high.”
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Stop WordsStop Words
Elimina le parole comuni con un grado di informazione minimo sul topic del documento:
Articoli
Congiunzioni
Avverbi
Verbi ausiliari
Verbi che non portano informazione (es. potere, fare, ecc…)
I termini sono così suddivisi in due tipi:Stop Words: inutili all’individuazione del topic
Function Words: importanti per “capire” il topic
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Text-IRText-IRAvevamo visto che Text Information Retrival raccoglie:
Text Retrieval:
– Data una query, recuperare i documenti più attinentiText Segmentation:
– Dato un documento, suddividerlo in sub-topic
Text Classification:
– Determinare la classe del documento tra un insieme di classi prestabilito
Document Clustering:
– Dato un database documentale, determinare l’insieme delle classi e gli abbinamenti classe-doumento
Vediamo come analizzare tali problemi utilizzando la filosofia Bag-Of-Word
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Text-IR - 1Text-IR - 1Text Retrieval:
La query Q è vista come un documento
Calcolo di sim(Q , Dj) per ogni documento Dj
Documenti con sim(Q , Dj) abbastanza elevato vengono ritenuti significativi per la ricerca e restituiti all’utente
Text Segmentation:Si definiscono unità testuali atomiche lunghe k word dette sentenze: Si
Si calcola la similarità tra ogni unità e la sua successiva: sim( Sj , Sj+1 )
Si considera un taglio quando tale valore scende sotto una soglia
Nomi eccellenti: Salton, Hearst, Reinar, Beeferman
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Text-IR - 2Text-IR - 2Text Classification:
Ogni classe Ci è vista come un documento (vettore)
Dato un documento Dj , si calcola sim(Ci , Dj) per ogni Ci
Dj viene inserito nella classe per cui sim(Ci , Dj) è massimo
Document Clustering:Si prendono due o più punti a caso detti centroidi Ci
Per ogni documento Dj si calcola la sua similarità con i centroidi Ci : sim(Ci , Dj)
Si assegna Dj al centroide per cui sim(Ci , Dj) è massimo
Si calcola di nuovo i centroidi come media dei vettori che vi appartengono
Si ripete il procedimento fino a che il centroide non si stabilizza
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Text-IR conclusioniText-IR conclusioniCome si vede si può riportare ogni problema al calcolo di sim(Ci , Dj)
Utilizzando il Bag-Of-Word si possono risolvere tutti i problemi relativi al IR in maniera semplice ed elegante
Ovviamente vi sono altre tecniche (specialmente per la segmentazione ed il clustering) ma si rifanno comunque ad una rappresentazione BOW del testo
Segmentazione: dot-plot, entropiche, a regole, ecc..
Clustering: gerarchico
Rigutini Leonardo – Dipartimento di Ingegneria dell’Informazione
Altri approcciAltri approcci
Considerando il testo come sequenza temporale di parole:HMM
Reti Neurali
Si cerca di:Sfruttare l’informazione sulla posizione della parola
Individuare contesti
Scopo:Determinare i topic all’interno dei documenti (segmentazione)
Classificare un documento in base ai sub-topic
Restituire documenti della classe desiderata
Top Related