240 likes | 356 Views
Aspetti computazionali e metodologici della disambiguazione del Corpus Taurinense. Scopo del progetto: Creazione di un corpus che possa fungere da modello di apprendimento per un sistema di annotazione stocastica basata sui Modelli Markoviani Nascosti (HMM).
E N D
Aspetti computazionali e metodologici della disambiguazione del Corpus Taurinense
Scopo del progetto:Creazione di un corpus che possa fungere da modello di apprendimento per un sistema di annotazione stocastica basata sui Modelli Markoviani Nascosti (HMM)
Problema: come realizzare un efficace sistema di disambiguazione per una lingua letteraria ancora vergine sotto l’aspetto del trattamento automatico
Soluzione: creazione di un sistema di disambiguazione per Parti del Discorso (POS) basato su regole, il più possibile svincolate dal contesto in cui si trovano
Necessità di prevedere comunque l’impiego di regole legate al contesto al fine di coprire tutti i numerosi casi di trattazione particolare dell’elemento (token) da disambiguare
Tre differenti tipologie di disambiguazione: - Esterna: parti del discorso diverse - Interna: attributi genere/numero- Intra-POS: tipi diversi della stessa parte del discorso (es. modo, tempo, ecc.)
Necessità di prevedere una gerarchia di azione:Regole di disambiguazione organizzate in sei moduli distinti operanti in cascataIn uno stesso modulo organizzazione delle regole secondo uno schema a mutua esclusione: regole diverse non possono agire sullo stesso token
Testo iniziale Modulo 1 Modulo 2 Modulo 3 Modulo 6 Modulo 5 Modulo 4 Testo disambiguato
Tipologia di disambiguazione (interna, esterna, ecc.) non vincolata ad alcun modulo specifico: possibilità di agire contemporaneamente su più parametri anche all’interno di una stessa regola
Il primo modulo assume in ingresso un testo già diviso in token e dotato di completa annotazione morfosintattica e codifica metatestuale (markup)
Esempio testo di origine: @Rinuccino@@Sonetti@@@Lir %001 &V $0035$ #001@ D' amore abiendo gioia interamente , lasso , nonn¬ aio in altro intendimento né che partisse lo cor né la mente da ÷l primo loco là onde avea abento ; $0036$ ma feci come· ll' omo che consente molte fïate contro a suo talento : traduto m' àn li sguardi che sovente mi son mostrati , e messo in gran tormento . Sì come il marinaro la serèna , ca lo disvïa co lo dolze canto e poi li dà tempesta per inganno , $0037$ così la gioia m' è cangiata in pena , e· ÷Ø riso , lasso m' è tornato in pianto : per mia follia ò radop&[p&]iato il danno .
Esempio testo etichettato: @Rinuccino@@Sonetti@@@Lir %001 &V_lem=versesection,71,0,0,0,0,0 $0035$ #001@ D'_(lem=da,56,0,0,0,0,0);(lem=di,56,0,0,0,0,0);(lem=di,51,0,0,0,0,0);(lem=di;da,56,0,0,0,0,0) amore_lem=amore,20,0,4,6,0,0 abiendo_lem=avere,224,0,0,0,0,0 gioia_lem=gioia,20,0,5,6,0,0 interamente_lem=interamente,45,0,0,0,8,0 ,_lem=comma,71,0,0,0,0,0 lasso_lem=lasso,26,0,4,6,8,0 ,_lem=comma,71,0,0,0,0,0 nonn¬_lem=non,45,0,0,0,8,0 aio_lem=avere,211,1,0,6,0,0 in_(lem=in,56,0,0,0,0,0);(lem=in,51,0,0,0,0,0);(lem=in,75,0,0,0,0,0) altro_lem=altro,32,0,4,6,0,0 intendimento_lem=intendimento,20,0,4,6,0,0 né_lem=né,50,0,0,0,0,0 che_(lem=che,36,0,4;5,6;7,0,0);(lem=che,51,0,0,0,0,0);(lem=ché,51,0,0,0,0,0);(lem=che,35,0,4;5,6,0,0);(lem=che,40,0,4;5,6,0,0);(lem=che,32,0,4,6,0,0);(lem=che,45,0,0,0,8,0) partisse_lem=partire/-si/,116,3,0,6,0,0 lo_(lem=lo,60,0,4,6,0,0);(lem=lo,39,3,4,6,0,0) cor_(lem=cuore,20,0,4,6,0,0);(lem=cor,75,0,0,6,0,0) né_lem=né,50,0,0,0,0,0 la_(lem=la,60,0,5,6,0,0);(lem=la,39,3,5,6,0,0);(lem=là,45,0,0,0,8,0) mente_(lem=mente,20,0,5,6,0,0);(lem=mentire,115,2,0,6,0,0)
Funzionamento del motore di disambiguazione:- Creazione di una serie di puntatori ai token che compongono il testo- Definizione di regole che agiscono sul token del puntatore centrale
Caratteristiche dei puntatori:- numero minimo pari a 3- mobili: avanzano all’interno del testo - puntano a elementi testuali contigui (dati di markup esclusi)- permettono di definire con assoluta precisione il campo di applicazione di una regola non generale
né_lem=né,50,0,0,0,0,0PT 1 che_(lem=che,36,0,4;5,6;7,0,0);(lem=che,51,0,0,0,0,0);(lem=ché,51,0,0,0,0,0);(lem=che,35,0,4;5,6,0,0); (lem=che,40,0,4;5,6,0,0);(lem=che,32,0,4,6,0,0); (lem=che,45,0,0,0,8,0)PT 2 partisse_lem=partire/-si/,116,3,0,6,0,0PT 3 lo_(lem=lo,60,0,4,6,0,0);(lem=lo,39,3,4,6,0,0) cor_(lem=cuore,20,0,4,6,0,0);(lem=cor,75,0,0,6,0,0) Esempio di puntatori:
né_lem=né,50,0,0,0,0,0 che_(lem=che,36,0,4;5,6;7,0,0);(lem=che,51,0,0,0,0,0); (lem=ché,51,0,0,0,0,0);(lem=che,35,0,4;5,6,0,0); (lem=che,40,0,4;5,6,0,0);(lem=che,32,0,4,6,0,0); (lem=che,45,0,0,0,8,0)PT 1 partisse_lem=partire/-si/,116,3,0,6,0,0 PT 2 lo_(lem=lo,60,0,4,6,0,0);(lem=lo,39,3,4,6,0,0)PT 3 cor_(lem=cuore,20,0,4,6,0,0);(lem=cor,75,0,0,6,0,0) Scorrimento in avanti:
Funzionamento delleregole di disambiguazione:- analisi del contenuto dei puntatori: controllo di corrispondenza con quanto stabilito dalla regola- modifica (disambiguazione) del contenuto del puntatore centrale
Esempio di regola di disambiguazioneif (campo ~ /^terza_/ && campo ~ /\);\(/) { nf++ if ($bw ~ /^già_/ || $fw ~ /^a_/) { assegna(campo, "20", end) } else { assegna(campo, "65", end) } }
Problematiche delle regole di disambiguazione:- elevata complessità di sviluppo- modalità di azione suddivisa su più moduli distinti- definizione di ordine gerarchico di funzionamento- difficoltà di controllo degli errori
Soluzione:- suddivisione delle regole in moduli omogenei per campo di applicazione (es. V/N; N/Adj; etc.)- utilizzo preventivo di regole ad-hoc per agevolare il funzionamento delle regole generali- utilizzo del modulo ausiliario “PEX” per la verifica della coerenza sintattica e di applicazione di una data regola
Definizione e stampa del contesto Ricerca della regola nel testo Regola individuata? no si PEX – Pattern EXtractor- sistema dotato di capacità di emulazione di qualsivoglia modello
Fasi di sviluppo tradizionali:- studio teorico dei vari tipi di regole - implementazione pratica delle stesse in un determinato formalismo, di solito strettamente dipendente dal programma di disambiguazione - attivazione del processo di elaborazione- verifica sul testo disambiguato del corretto operato delle regole- correzione in post-editing delle regole- rielaborazione del testo dall’origine
Fasi di sviluppo adottate nel CT:- studio teorico dei vari tipi di regole - emulazione delle singole regole mediante l’utilizzo del modulo “PEX” - analisi dei risultati- eventuale correzione delle regole- implementazione definitiva delle regole- elaborazione del testo da disambiguare
Vantaggi:- semplificazione dell’iter di sviluppo - abbattimento dei cicli successivi di correzione regole e analisi dei dati- riduzione dei tempi morti di elaborazione- ottenimento di risultati certi e definitivi in tempi notevolmente ridotti- elaborazione finale in un unico passaggio