Matteo Munaretto Corso di Sistemi Informativi – Università di Padova IR for Asian Documents 亞洲人檔案的資訊檢索 Anno Accademico 2006/2007 Introduzione In questo seminario si presentano delle tecniche di Information Retrieval su documenti in lingue asiatiche, in particolar riferimento alla lingua Cinese confrontata successivamente a quella Giapponese. L’information retrieval su documenti in lingua Inglese ha più di 30 anni di storia ma nell’ulitma decade con lo enorme sviluppo della Cina l’attenzione si è maggiormente spostata sull’asse orientale. Di conseguenza si sono susseguiti studi e sviluppi su diverse tematiche quali indicizzazione di pagine in queste lingue (Cinese, Giapponese, Thai..), traduzione di testi e riconoscimenti vocali. Problematiche Nelle lingue Asiatiche la struttura della frase è nettamente diversa da quella occidentale, nelle lingue indoeuropee per esempio il verbo è l’elemento centrale mentre si ritrova ad essere una semplice componente all’interno di una frase in Cinese/Giapponese. Il Cinese scritto consiste di stringhe di ideogrammi separati da segni di punteggiatura. Questi ideogrammi, cosiddetti kanji (kan=cina, ji=carattare) sono una rappresentazione grafica di quello che si vuole esprimere e possono rappresentare un/più significato/i o far parte di una parola composta con un significato più complesso. Il maggior problema che si riscontra in questi di testi è la mancanza di delimitatori e di spazi che rendono molto difficile il determinare i limiti di una parola (di un o più caratteri) in una stringa e bisogna quindi fare riferimento al suo constesto. Segmentation Primo passo quindi prima di sottoporsi a successive analisi è quello della segmentazione. Solitamente con questo termine si vuole suddividere le più lunghe parole con significato preciso all’interno di una stringa in modo tale da suddividere i vari ideogrammi dando a ciascuno un senso compiuto all’interno della frase. Ci sono tre metodi per suddividere un carattere/frase composto/a in una sue unità ridotta: • Single characters • Bigrams • Simple segmentation of text Single Characters (1-gram) Con questo metodo vengono elimitati tutti i segni di punteggiatura e la parte di testo viene suddivisa in sequenze di 1 carattere. Utile se ci fosse sempre un matching esatto tra queries e documenti prendendo come unità di misura la singola parola. PROBLEMA: le sequenze di un carattere hanno molto spesso significato ambiguo > influiscono su precision (fraz. di documenti recuparati che sono rilevanti) Bigrams (2-grams) Qui la parte di testo viene suddivisa in sequenze di due caratteri e come per la precedente vengono rimossi i segni di punteggiatura. È stimato che l’80% delle parole in Cinese sono bi-sillabe. Su un testo di un milione di parole, il 67.8% di simboli e il 33.68% di parole sono di 2 caratteri. Lo svantaggio sta però nel fatto che possono crearsi degli accoppiamenti di caratteri senza senso che portano a dei matching errati tra queries e documenti, sfavorendo la precision (fraz. di documenti recuperati che sono rilevanti) Si utilizza il coefficiente di Jaccard per misurare l’accoppiamento tra l’insieme di 2-grams della query e l’insieme 2-grams del dizionario. |AUB|/|A∪B| Es.: 基因改造 sostantivo - 基因 改造 suddivisione senza senso Simple Segmentation of Text Per evitare il problema di sequenze senza significato si cerca con questo metodo di creare sequenze di lunghezza variabile da 1 a 4 caratteri per poi effettuare poi il matching esatto durante la fase di recupero. Questa implementazione si sviluppa in quattro passi. Simple Segmentation of Text - 1 1. Si controlla la presenza su un piccolo dizionario (2000 parole) di parole di 1-3 caratteri + alcuni nomi propri di 4 caratteri. Ad ognuno viene data un etichetta che sta ad indicare se è un carattere inutile di terminazione, un utile valore numerico e così via. In caso il matching sia un valore utile allora la sentenza viene spezzata. Durante la ricerca richieste di dimensione diversa possono corrispondere al testo nella stessa posizione causando ambiguità > per risolverla viene accennato HMM – ma solitamente viene trascurato. Simple Segmentation of Text - 2 2. Vengono applicate diverse regole specifiche per la lingua in modo da suddividere le sequenza in sottoparole di 2-3 caratteri. XX due simili caratteri adiacenti fanno spesso riferimento ad un’unica parola AX dove A è un insieme di caratteri speciali … Simple Segmentation of Text - 3 3. FREQUENCY FILTERING – a questo punto ci possono essere delle sequenze di 1-4 caratteri dai punti precedenti che non hanno significato in senso linguistico. Viene pertanto effettuato un controllo sulle frequenze delle varie occorrenze nel documento per estrarne delle shortwords più comuni e con significato. Simple Segmentation of Text - 4 4. Iterazione – le parole del punto tre (etichettate ora come utili) vengono aggiunte al dizionario di partenza ed è possibile ripetere l’intero processo. Diverse soluzioni - 1 • Approccio basato su dizionario molti algoritmi di segmentazione sono stati sviluppati usando un dizionario e portano tuttora a risultati molto soddisfacenti (~90%). Il punto di forza sta nell’avere un dizionario il più possibile esaustivo e completo. Problema è che questa accuratezza nella segmentazione decade velocemente con la comparsa di nuove parole/termini. Diverse soluzioni - 2 • Approccio basato sul carattere le sequenze vengono suddivise semplicemente prendendo ogni carattere come unità fondamentale Ha il vantaggio di non utilizzare un dizionario pre definito Ma file di indici sono molto grandi, molto lento nel recupero delle informazioni e non è possibile inserire nessun tipo di informazione linguistica. Diverse soluzioni - 3 • Approccio statistico la segmentazione viene effettuata su regole e statistiche proprie del linguaggio. > Simple Segmentation of Text Diverse soluzioni - 4 • Approccio Machine-Learning in rapporto ai metodi visti precedentemente questi hanno il vantaggio di non utilizzare un dizionario e di essere più flessibili alla comparsa di nuovi termini. Approccio MACHINE-LEARNING L’approccio in esame utilizza una metodo basato sull’algoritmo EM (Expectation-Maximization) per il recupero di informazioni per la lingua Cinese. Ha i vantaggi di tutti gli altri metodi e colma inoltre alcune loro mancanze. Come già detto non utilizza dizionari ma al suo posto necessita di un ampio documento non segmentato (facile da reperire). Da questo documento apprendiamo automaticamente due dizionari e una distribuzione del lessico utilizzando l’algoritmo EM e successivamente segmentando il tutto attraverso l’algoritmo di Viterbi. Questo approccio per la segmentazione è completamente non supervisionato e indipendente dal linguaggio, può quindi essere adattato ad altre lingue. Self-supervised Segmentation È spesso possibile recuperare informazioni da parole composte che al suo interno hanno parole non conosciute. Per esempio: se il termine “computer” è già conosciuto allora se ci imbattiamo in una parola tipo “computerscience” è naturale spezzare “science” come possibile nuova parola. Da questa osservazione il metodo qui proposto è una variante dello standard EM training ed evita di rimanere intrappolati in un massimo locale utilizzando due dizionari: CORE – che contiene parole ritenute sicure CANDIDATE – contiene tutti gli altri termini incontrati EM segmentation and training Abbiamo una sequenza di caratteri che vogliamo suddividere in parti dove T è il numero di caratteri nella sequenza ed M è il numero di parole nella segmentazione. Il segmento s[i] sarà scelto dal dizionario CORE o dal dizionario CANDIDATE Avendo le distribuzioni di probabilità definita su CORE e definita si CANDIDATE allora possiamo recuperare la più probabile segmentazione della sequenza C in parti S come di seguito. Per ogni segmento S di C calcoliamo la probabilità congiunta di S e C tramite: M1: numero di segmenti che occorrono in CORE M2: numero di segmenti che occorrono in CANDIDATE S[k]: occorrenza di uno dei due dizionari Il goal di questo approccio è trovare la massima probabilità S* Algoritmo di Viterbi Data una distribuzione di probabilità definita da θ e Φ su un dizionario, l’algoritmo di Viterbi viene utilizzato per calcolare la migliore segmentazione S per la mia sequenza C. Apprendere quale probabilità utilizzare dato il documento è compito dell’algoritmo EM. Tramite l’algoritmo di Viterbi le formule precedenti divengono delle frequenze pesate: Il denominatore è una somma pesata del numero di parole in tutte le possibili segmentazioni, il numeratore è una costante normalizzata. I passi possono essere calcolati efficientemente attraverso gli algoritmi di forward and backward. Defianiamo C1 e C2 rispettivamente come il documento di training e il documento di validation V1 e V2 come il CORE e il CANDIDATE Inizialmente V1 è vuoto e V2 contiene tutte le parole, di lunghezza 1-L, generate dal training; partendo da una distribuzione uniforme EM viene utilizzato per aumentare la probabilità del training C1; quando il processo si stabilizza le M parole con più alta probabilità sono prese da V2 e spostate su V1 cosicché V1 e V2 ora contengano la metà della probabilità totale. Questo spostamento verso V1 aumento l’influenza delle parole contenute in CORE nel determinare la segmentazione. L’algoritmo EM viene rieseguito. Questa procedura di muovere successivamente le M parole verso V1 viene detta appunto forward selection. Viene ripetuta finché l’accuratezza della segmentazione in C2 (documento di validation) porta ad una diminuzione della F-measure – il che vuol dire che abbiamo incluso erroneamente alcune parole nel CORE Quando la forward selection termina, M è decrementata e si inizia il processo di backward deletion dove le M parole con più bassa probabilità in V1 sono spostate nuovamente su V2. EM training viene così ripetuto finché F-measure diminuisce in C2 – il che significa che abbiamo cancellato alcune parole corrette nel CORE Il risultato di tutto ciò è la distribuzione probabilità su un dizionario che può essere usato da Viterbi per segmentare le sequenze di test. Lexicon pruning Per eliminare erronee agglomerazioni, tipo suddividere sizeofthecity in sizeof|thecity, e per evitare al nostro algoritmo EM il massimo locale, utilizziamo criteri basati su mutua esclusione per fare il pruning. La mutua informazione tra due variabili è data da: dove un valore alto indica una forte dipendenza e 0 la completa indipendenza. Nel nostro caso vengono confrontati i valori ottenuti con dei valori soglia e ricalcolata la probabilità tra le due variabili in gioco, in modo da spostare i pesi della distribuzione su parole con lunghezza minore. Prestazioni A differenza di altri metodi di segmentazione sempre basati sull’algoritmo EM questo qui presentato ha il vantaggio di utilizzare delle statistiche più affidabili da semplici statistiche sulla frequenza nonché si utilizza uno schema di probabilità che sposta quest’ultima tra parole senza per forza eliminarne. Il più grande svantaggio è il time-consuming. Segmentation related to IR-performance Performance diminuiscono anche perché in Cinese molte parole sono legalmente rappresentate da alcune sue sottoparti Per concludere Questo metodo dimostra come le tecniche di machine learning possano essere efficaciemente utilizzate per segmentazioni di testi ed information retrieval per la costruzione di sistemi adattabili. L’accuratezza del IR aumenta all’aumentare dell’accuratezza della segmentazione fino ad un certo punto per poi arrivare ad una saturazione e diminuire. In futuro probabilmente ci si focalizzerà nell’avere una più precisa estrazione di parole chiave piuttoste che una migliore segmentazione. Un soddisfacente Chinese IR system dovrebbe utilizzare un insieme di techine pure utilizzate per la lingua inglese in concomitanza con questa tecnica di segmentazione non supervisionata. Chinese VS Japanese La lingua Giapponese utilizza in gran parte i Kanjii, ovvero i caratteri Cinesi e per questo motivo gran parte degli argomenti/topics in lingua Cinese possono essere riportati tale e quali negli equivalenti in lingua Giapponese. Per esempio: Sembrano uguali visto che anche la parte giapponese utilizza solamente Kanjii. Questo non è però più vero nel sequente esempio: Pertanto non è sempre vera questa correlazione e deve essere eventualmente utilizzata attentamente in combinazione con altri metodi.