Che materia stai cercando?

Riassunto esame Linguistica Computazionale, prof. Lenci, libro consigliato Testo e Computer di A. Lenci, S. Montemagni e V. Pirrelli

Riassunto per l'esame di Linguistica Computazionale e dei prof. Lenci/Dell'Orletta, basato su appunti personali e studio autonomo del testo consigliato dal docente Testo e Computer di A. Lenci, S. Montemagni e V. Pirrelli. Argomenti trattati: testi e corpora, lo studio statistico del testo, legge di Zipf, catene Markoviane, Entropia, Associazioni, l'annotazione del testo, Trattamento... Vedi di più

Esame di Linguistica computazionale docente Prof. A. Lenci

Anteprima

ESTRATTO DOCUMENTO

Consideriamo di voler estrarre una sequenza di due parole consecutive da un testo, ovvero un

bigramma (n-gramma = sequenza di n parole): la probabilità di estrarre un bigramma <Art, N>. La

probabilità di estrarre una parola v (consecutiva a v ) non è indipendente dalla probabilità di

2 1

estrarre v , poiché nel linguaggio influiscono dipendenze sintattiche, semantiche, ecc. determinate

1

dalla grammatica (gli articoli tendono ad essere seguiti da nomi). Il numero di bigrammi in un

corpus è uguale al numero di token presenti in esso, se aggiungiamo dopo l’ultimo token un

“segnaposto $” di fine testo.

Probabilità condizionata

La probabilità condizionata P(A|B) è la probabilità del verificarsi di A dato che sappiamo essere

accaduto B; se i due eventi sono dipendenti, l’accadimento di B altera la probabilità da assegnare

ad A. Supponendo di estrarre da un corpus un bigramma <v , v >, si deve calcolare la probabilità

1 2

P (v | v ), ovvero la probabilità di v dato che sappiamo essere accaduto v :

1 2 1 2

Notiamo che la probabilità di estrarre un

nome dato che è stato estratto un articolo è

molto più alta della probabilità di estrarre un

nome indipendente nel corpus, perché il

rapporto di dipendenza fra nome e articolo è

molto forte.

Dato che P(N|Art) = f /f , possiamo dividere numeratore e denominatore per |C|, esprimendo la

Art, N Art

probabilità condizionata come rapporto fra frequenze relative, ovvero fra probabilità di eventi:

Notiamo che P(N|Art) è stato espresso come il

rapporto fra la probabilità di eventi congiunti

“estrarre un articolo e poi un nome” P(Art, N), e

la probabilità dell’evento “estrarre un articolo”

P(Art).

Per stimare la probabilità congiunta di eventi dipendenti fra loro, bisogna passare attraverso la

probabilità condizionata, con la regola del prodotto sopra citata:

La probabilità congiunta di estrarre un articolo e un nome

P(Art, N) è uguale alla probabilità di estrarre un articolo

P(Art) moltiplicato per la probabilità dell’evento

condizionato P(N|Art); in altre parole è uguale alla

frequenza relativa degli articoli, moltiplicato la frequenza

assoluta del bigramma Art, N fratto la frequenza assoluta

degli articoli.

Un altro processo di cui la LC si occupa è il Language modelling (word prediction), che si occupa

di individuare sistemi di predizione di una determinata parola che segue una sequenza di parole:

data una sequenza w , w , …, w , qual è la parola w che segue la sequenza? Determinare

1 2 n-1 n

quella parola equivale a trovare la parola w che massimizza la probabilità condizionata P(w| w ,

1

w , …, w ), ovvero trovare la parola w per cui la probabilità acquisisce valore maggiore. Per fare

2 n-1

ciò si utilizzano modelli a n-grammi, i quali assegnano una distribuzione di probabilità a sequenze

di parole. La regola del prodotto può essere generalizzata per calcolare la probabilità di n eventi

congiunti, tramite la regola della chain rule:

Finchè ci si limita a stimare la probabilità di sequenze di caratteri, parole o frasi non troppo lunghe

non si hanno grossi problemi, ma quando le stringhe iniziano ad aumentare in lunghezza, è difficile

stimare probabilità condizionate; con stringhe molto ampie bisogna lavorare con trigrammi,

quadrigrammi, ecc. Si deve anche fare i conti con la sparsità di dati in un testo, come ad esempio

il numero elevatissimo di hapax presenti, che rischiano di assumere probabilità 0, il che implica

che, se uno degli elementi della chain rule è 0, l’intera frase riceve probabilità 0; si deve quindi

riuscire a distinguere fra frasi “rare” ma possibili, e frasi impossibili.

Modelli di Markov

La probabilità di generare una frase può essere espressa come una funzione della probabilità delle

sue parole. I modelli markoviani o catene markoviane si distinguono proprio per il modo in cui è

definita questa funzione: un modello di Markov di ordine n assume che ciascun evento E in una

i

sequenza di eventi E , …, E dipenda solo da una finestra limitata di n eventi che lo precedono (gli

1 n

n eventi che lo precedono rappresentano la sua storia).

I modelli di Markov permettono di creare modelli probabilistici di sequenze linguistiche per le quali

si assume che esista un particolare tipo di dipendenza fra gli elementi della sequenza; in un

modello di Markov di ordine n la probabilità di una sequenza è calcolata come il prodotto di

probabilità di n+1-grammi:

L’esempio più semplice di modello markoviano si basa sull’ipotesi che la probabilità di una frase

sia uguale al prodotto della probabilità di generare ciascuna delle sue parole in modo

indipendente, e viene chiamato “modello a urna”, poiché in questo caso un testo può essere

descritto come il risultato dell’estrazione ripetuta di parole da un’urna lessicale. Questo modello è

anche noto come modello markoviano di ordine zero, a significare che l’evento incontrato

nell’istante i non ha memoria dell’evento incontrato nell’istante precedente.

Per un modello markoviano di primo ordine, si avrà invece che ogni parola si trova in rapporto

di dipendenza esclusivamente con la parola che la precede, e così via; vediamo un esempio:

Generative language models

Sia S un certo insieme di strutture linguistiche (frasi, parole, ecc.), definire un modello

probabilistico markoviano per S equivale ad assumere che le strutture di S sono state

“generate” da un sistema probabilistico che produce quel tipo di struttura secondo una certa

distribuzione di probabilità: per ogni struttura s in S esiste una certa probabilità che essa venga

generata dal sistema, e la probabilità che venga prodotta una certa parola dipende solo da un

numero n limitato di parole precedenti.

Bisogna procedere con ordine,

definendo il modello (decidendo

l’ordine della catena) e stimando i

parametri (stimando le probabilità

condizionate che compongono il

modello markoviano usando n-grammi

estratti da un corpus). I modelli a n-

grammi sono usati per risolvere il

problema del “word prediction”, per il

quale vengono utilizzati soprattutto

modelli a trigrammi (modelli di ordine

2):

I modelli di markoviani possono essere usati anche per il Language recognition task, per stimare

la probabilità che una determinata stringa appartenga a una lingua anziché ad un’altra:

Entropia

Le probabilità servono per modellare fenomeni e sistemi il cui esito è incerto, ma finora ci siamo

limitati a una valutazione qualitativa della bontà del modello; è possibile stimare l’accuratezza

dell’approssimazione del testo in modo più rigoroso. L’entropia è la misura dell’incertezza di un

fenomeno, e misura la difficoltà della previsione dell’esito del fenomeno. Il grado di incertezza

dipende dal numero di esiti alternativi possibili e dalla distribuzione delle probabilità per ciascun

esito (se gli esiti hanno probabilità uniforme è più difficile la previsione). L’entropia è anche la

misura del valore informativo di una classe di eventi: l’informazione è la diminuzione

dell’incertezza (se un evento aleatorio si verifica, abbiamo ottenuto informazione) e più un evento

è raro, maggiore è l’informazione che otteniamo sapendo che si è verificato. L’entropia è la

misura della quantità di informazione portata dagli eventi prodotti da un processo aleatorio.

Il valore viene formalizzato come una variabile casuale, ovvero una variabile ai cui valori è

associata una distribuzione di probabilità. Possiamo rappresentare un testo o una lingua come una

variabile casuale W (es. un testo può essere immaginato come una sequenza di parole generata

secondo una certa distribuzione di proprietà, per cui i valori di W sono parole aventi una certa

probabilità associata).

L’entropia viene misurata in bits (cifre binarie) e viene espressa come la media del logaritmo in

base 2 dell’inverso della probabilità della distribuzione. Il perché del logaritmo ha a che

vedere con il legame che esiste fra la nozione di entropia e la teoria della codifica digitale in bit:

k

dati n bit, il numero k delle loro possibili combinazioni è uguale a 2 ; dunque, dato un certo numero

di k parole tipo da codificare in bit, log k è uguale al numero minimo n di bit necessari per

2

codificare in modo univoco le k parole. Supponendo che ad ogni istante ti si debba trasmettere un

messaggio per comunicare in quale stato si trova il sistema in t , e che il messaggio debba essere

i

trasmesso in codice binario; l’entropia puntuale (informazione) di una parola corrisponde al

numero di bits necessari per trasmettere che è stata estratta la parola v: h(v)= -log p(v). Se W ha

2

n stati possibili ed equiprobabili, il numero di bits necessari per codificare ogni stato è log n, e se

2

gli stati sono equiprobabili la probabilità del sistema s è p(s)=1/n, quindi n=1/p(s). Sostituendo,

quindi l’entropia puntuale h dell’evento s equivale a h(s)= log 1/p(s).

2

L’entropia di una variabile W è il numero medio di bits necessari per codificare i suoi stati

possibili; nel caso del testo, possiamo assumere che i valori di W siano gli elementi del vocabolario

V di un corpus C. Possiamo ottenere l’entropia del vocabolario di un testo H(V ) calcolando la

C C

media di ogni h(v ) in C. H(V) equivarrà alla sommatoria in negativo di tutte le h(v ):

i i

Dove v è una parola

i

appartenete al vocabolario V .

C

Se W ha n stati possibili equiprobabili l’entropia del sistema è uguale all’entropia puntuale:

Volendo calcolare l’entropia con W che ha n esiti non equiprobabili noteremmo che l’entropia

media del sistema è minore di quella che si avrebbe se i suoi stati fossero equiprobabili; W con

quattro stati equiprobabili equivarrebbe a 2 bits, mentre con quattro stati non equiprobabili:

L’entropia ha quindi valore massimo quando gli eventi sono equiprobabili, poiché una

distribuzione uniforme di probabilità crea la situazione di massima incertezza. Da un punto di vista

linguistico, l’entropia è tanto più grande quanto meno numerosi sono i vincoli che condizionano la

distribuzione delle parole (il testo più imprevedibile è quello in cui, a ogni istante, ogni parola può

apparire con la stessa probabilità di ogni altra). In generale, l’entropia aumenta con l’aumentare

degli stati possibili di un sistema, mentre a parità di stati possibili l’entropia diminuisce se

aumenta la struttura e l’organizzazione del sistema (ovvero aumenta la predicibilità delle

dinamiche del sistema).

L’entropia permette di stabilire il codice

ottimale per descrivere un sistema aleatorio.

Uno fra tutti il Codice di Shannon-Fano,

secondo cui gli stati più probabili sono descritti

usando messaggi più corti, mentre quelli meno

probabili sono descritti usando messaggi più

lunghi. L’entropia di un sistema che usa questo

tipo di codifica per trasmettere messaggi è di

1,75 bits:

L’entropia viene utilizzata per individuare parole più informative sul contenuto di un testo: più

una parola è uniformemente distribuita in testi diversi, minore è la sua informatività; le parole meno

comuni e più settoriali sono associate ad un maggior grado di informazione, e determinano la

natura e l’argomento di un testo.

E’ possibile anche stimare l’entropia di sequenze di parole, utilizzando anche la entropy rate,

ovvero la stima dell’entropia per parola in una certa sequenza. Tipicamente la nozione di sequenza

si traduce in quella di evento congiunto, per questo le probabilità delle sequenze sono tipicamente

stimate con modelli a n-grammi. Denzel e Charniak propongono un principio di costanza

nell’entropy rate, secondo il quale i parlanti producono frasi in maniera tale che in media la loro

entropia rimanga costante; questo è molto importante per il word prediction task, riguardante la

capacità di predire le successioni di eventi linguistici. Immaginando un linguaggio L come una

sequenza di parole potenzialmente infinita generata da un processo stocastico, possiamo stimare

anche l’entropia del linguaggio. Un processo stocastico si dice stazionario se le probabilità che

assegna a sequenze di parole sono invariate rispetto all’asse temporale ( p(w ,…,w ) al tempo t è

1 n

uguale a p(w ,…,w ) in t ); i modelli markoviani sono stazionari. Un processo stocastico è detto

1 n 1

ergodico se aumentando la lunghezza di una sequenza di parole da esso generate, possiamo

ottenere un campione perfettamente rappresentativo del processo; questo significa che a partire

da un unico campione sufficientemente lungo possiamo ricavare le caratteristiche dell’intero

processo. In realtà, il linguaggio non è né stazionario, né ergodico.

Infine è importante menzionare la nozione di cross entropy, ovvero una misura che consente di

valutare quanto bene un modello probabilistico approssima un certo processo stocastico.

La cross entropy è il “costo” in bits di usare m come modello per descrivere un processo con

distribuzione p. Più precisamente la cross entropy fra due distribuzioni di probabilità su uno stesso

set di eventi misura la lunghezza media di bits necessari per identificare un evento estratto

dal set se, invece della distribuzione di probabilità “reale” p, si utilizzasse una distribuzione di

probabilità “innaturale” m. Siano m ,…,m modelli stocastici di un linguaggio L, la cui distribuzione

1 n

reale di probabilità è p, per stimare qual è il modello più corretto da utilizzare per L, si calcola

H(L) approssimandola con l’entropia misurata su un corpus abbastanza ampio e rappresentativo di

L, poi per ogni m si calcola H(L, m ); il modello corretto m è quello per il quale è minore lo scarto

i i

i

H(L, m ) - H(L). Generalmente non conosciamo la distribuzione “reale” p di un processo,

i

dunque non possiamo calcolare direttamente H(L), ma possiamo approssimarla secondo il

teorema di Shannon-McMillan-Breiman:

7. Collocazioni e Misure Statistiche di Associazione

Le parole hanno la capacità di combinarsi in espressioni sintatticamente complesse; tali capacità

sono spesso determinate da tratti morfo-sintattici e semantici generali delle parole, in quanto

membri di classi linguistiche astratte (nome, articolo, ecc.) L’analisi dei contesti linguistici

(analisi distribuzionale) rivela le preferenze combinatorie delle parole. Esempio: Gianni ha visto un

topolino grigio; un si combina a topolino in quanto la prima parola è un articolo e la seconda un

nome. Questo tipo di legame è definito in termini di tratti generali condivisi da ampie classi di

espressioni linguistiche che possono essere sostituite alle parole della frase per ottenere nuove

frasi grammaticalmente e semanticamente coerenti: Gianni ha visto la mucca marrone.

Esistono poi altri tipi di combinazioni lessicali che si basano su legami non riconducibili a classi

linguistiche generali, che riguardano due o più forme lessicali specifiche (A notte fonda, in alta

stagione, ecc.); queste sono note in letteratura come collocazioni, cioè sequenze di due o più

parole caratterizzate da un forte legame di associazione reciproca, determinata dalla tendenza a

ricorrere una accanto all’altra. All’interno di questa classe sono compresi argomenti o modificatori

tipici (inseguire una macchina, mangiare un panino, ecc.), argomenti o modificatori idiosincratici

(mangiare la polvere, sedare una rivolta, ecc.), costruzioni idiomatiche (tagliare la corda, voltare

pagina, ecc.), costruzioni a verbo supporto (fare attenzione, prendere posto, ecc.), nomi propri

composti (Stati Uniti d’America, ecc.) e termini tecnici (sistema operativo, regime alimentare, ecc.)

Il concetto di collocazione come concetto empirico (senso ampio) riguarda combinazioni

ricorrenti e predicibili di parole osservate nell’uso linguistico, ma in questo caso facciamo più

attenzione al concetto teorico di collocazione (senso stretto), che riguarda espressioni

polirematiche fortemente lessicalizzate, idiomatiche e idiosincratiche; “guidare una

macchina” è una collocazione in senso ampio, ma non in senso stretto, mentre “tagliare la corda” è

una collocazione che copre entrambi i sensi. I tratti peculiari delle collocazioni in senso stretto

sono: elevata convenzionalità, perché le collocazioni sono tendenzialmente espressione di usi

convenzionali e stereotipati, la ridotta composizionalità semantica, perché il significato di una

collocazione non è sempre immediatamente ricavabile dalla composizione del significato delle

parole che la compongono (gatta morta ≠ gatta+morta), e la forte rigidità strutturale, perché le

collocazioni sono spesso resistenti a modificazioni aggettivali o avverbiali (Gianni ha tirato la

corda/??La corda è stata tirata da Gianni).

Le collocazioni, quindi, sono parole con un alto grado di

associazione reciproca, ma la nozione di collocazione rimane

vaga; il problema che si pone è come rendere più precisa la

nozione di associazione fra parole, che sembra essere l’unico

comune denominatore tra i membri della famiglia delle collocazioni.

Le misure di associazione lessicale quantificano la forza del

legame tra due o più parole, per cui la nozione di associazione

viene trasformata in un indice quantitativo e misurabile;

l’assunzione generale è che se due parole formano una

collocazione in una certa varietà linguistica, è molto probabile che

nei suoi testi esse ricorrano insieme in maniera statisticamente

significativa. La ricerca di collocazioni in un testo segue uno

schema preciso:

Il corpus deve essere tokenizzato e annotato secondo determinati criteri, come la

lemmatizzazione, l’annotazione morfosintattica e l’analisi sintattica. Si prosegue con una selezione

delle coppie di parole (bigrammi) del corpus; il tipo di bigrammi selezionati dipende dal livello di

annotazione linguistica. Si costruiscono le tabelle di contingenza dei bigrammi:

La sola frequenza di una coppia <u, v> non è indicativa del suo grado di salienza, nel senso

che la frequenza assoluta di un bigramma non quantifica il grado di associazione lessicale tra due

parole. E’ plausibile ipotizzare che due parole siano tanto più fortemente associate quanto più

spesso si presentano insieme rispetto alle volte in cui ricorrono l’una indipendentemente dall’altra.

Per fare un esempio: nel corpus del libro di Pinocchio, la frequenza assoluta del bigramma “il

burattino” è 110; il numero di volte in cui “il” ricorre con una parola diversa da burattino, però è

molto più alto del numero di volte in cui “il” e “burattino” ricorrono insieme. Questa disparità

suggerisce che non c’è un legame di associazione lessicale diretta fra le due parole. E’ necessario

confrontare la frequenza osservata di una coppia <u, v> in un corpus con la sua frequenza

attesa (frequenza ci aspetteremmo di trovare se u e v fossero statisticamente indipendenti):

Tra le misure di associazione che sfruttano metodi statistici per quantificare il grado di

associazione tra due parole, sulla base della tendenza che queste hanno a presentarsi insieme, la

mutua informazione è certamente la più nota: date due parole u e v, la MI confronta la probabilità

di osservare il bigramma tipo <u, v> con la probabilità di osservare u e v l’una indipendentemente

dall’altra:

La MI è estremamente sensibile agli eventi rari, perché i bigrammi con frequenza 1 formati da

hapax avranno sempre valori massimi di MI (questo avviene perché il caso di associazione

massima si ha quando u e v ricorrono sempre insieme nel corpus, e due hapax possono ricorrere

sempre insieme in un corpus nel senso che ricorrono una sola volta). Inoltre la MI non è molto

indicativa quando calcolata su bigrammi a bassa frequenza, e questo è un limite molto grave

perché, ricordando la Legge di Zipf, in un testo i bigrammi hapax possono arrivare anche al 75%.

Per ovviare a questo problema si fa ricorso a vari metodi, e uno dei più utilizzati è il calcolo della

Local Mutual Information, ovvero la MI moltiplicata per la frequenza del bigramma, in modo da

privilegiare i bigrammi più frequenti.

8. L’Annotazione Linguistica del Testo

L’annotazione linguistica di un testo consiste nella codifica di informazione linguistica associata

al dato testuale. Si tratta di aggiungere ad un corpus codici (markup) che rendono esplicita e

machine readable l’informazione relativa alla struttura linguistica del testo, secondo vari livelli di

annotazione. I corpora non annotati vengono detti “raw corpora”. L’annotazione permette di usare il

computer per ricerche ed elaborazioni più avanzate dei dati linguistici, perché i codici possono

essere immediatamente recuperati o usati per popolare un database. La codifica è parte integrante

del lavoro di specifica dello schema di annotazione e interagisce con quest’ultimo su almeno

quattro livelli fondamentali: il grado di copertura dello schema, ovvero la corrispondenza fra il

novero di categorie e strutture che lo schema offre e la tipologia dei fenomeni stessi osservati; la

riproducibilità dell’annotazione, cioè la possibilità di applicarla in maniera coerente a tutti i

fenomeni d’interesse; l’interazione con altri livelli di descrizione linguistica nell’intento di

evidenziare correlazioni fra livelli diversi; il grado di espressività dell’annotazione, ovvero la

traduzione di uno schema in un linguaggio di marcatura che sia in grado di rispondere

correttamente agli scopi del linguista. Uno schema di annotazione, quindi, contiene un repertorio

di categorie linguistiche per l’annotazione, corrispondenti alla tipologia dei tratti da rappresentare

nel testo (attributi e valori), contiene la definizione delle regole di compatibilità fra categorie (es.

l’aggettivo non possiede un attributo di persona), e contiene la specifica accurata dei criteri di

applicazione al testo delle categorie selezionate.

I corpora annotati sono usati per addestrare modelli computazionali basati su algoritmi di

apprendimento automatico supervisionato (training corpora annotati), ma allo stesso tempo sono

usati per valutare sistemi di NLP (test corpora annotati). Esistono due metodi principali di

annotazione linguistica: l’annotazione manuale è necessaria per alcuni tipi di annotazione, e anche

se è più precisa, è altamente costosa e lenta, e si possono presentare incoerenze fra annotatori

che utilizzano criteri diversi per annotare; l’annotazione semi-automatica, invece, permette una

certa rapidità di sviluppo, ma è accompagnata da una buona percentuale di imprecisioni che

devono essere revisionate manualmente dal linguista. Si presenta quindi un ciclo virtuoso tra

annotazione di corpora e sviluppo di strumenti NLP attraverso l’uso di metodi machine learning:

Livelli di annotazione linguistica:

-L’annotazione morfo-sintattica rappresenta la forma basilare e più comune di annotazione

linguistica. Lo scopo è l’assegnazione, a ogni parola o token, dell’informazione relativa alla

categoria grammaticale che la parola ha nel contesto specifico (nome, verbo, aggettivo, ecc.)

talvolta integrata da ulteriori informazioni morfologiche (persona, genere, numero, ecc.). Questo

tipo di annotazione è spesso combinata con la lemmatizzazione, che consiste nel ricondurre ogni

parola al relativo esponente lessicale o lemma (tipicamente l’infinito dei verbi, il singolare maschile

dei nomi, ecc.)

-L’annotazione sintattica riguarda la codifica di informazione relativa all’analisi sintattica delle

frasi di un testo, la quale risente fortemente dei diversi approcci teorici alla sintassi. I due approcci

principali consistono in: una rappresentazione a costituenti (labelled bracketing) basata

sull’identificazione di costituenti sintagmatici (sintagma verbale, nominale, ecc.) e delle loro

relazioni; una rappresentazione a dipendenze (dependency structure) che fornisce una

descrizione in termini di relazioni binarie di dipendenza fra parole (soggetto, oggetto, modificatore,

ecc.) L’analisi sintattica delle frasi è detta “parse”, e può raggiungere altissimi livelli di complessità.

I corpora annotati sintatticamente sono anche detti treebanks, poiché i primi corpora

rappresentavano la struttura delle frasi come un albero a costituenti.

-L’annotazione semantica riguarda la codifica esplicita del significato delle espressioni

linguistiche di un testo; le forme che questa può assumere sono molteplici proprio in relazione alla

complessità della nozione di significato. Si può trattare dell’annotazione con codici che descrivono

categorie semantiche, con annotazione dei “sensi” ricavati da un lessico di riferimento.

Decisivo in questo frangente è WordNet, un database semantico-lessicale per l’inglese americano

che si propone di organizzare definire e descrivere i concetti espressi dai vocaboli; si avvale di

raggruppamenti di termini con significato affine detti synet (un insieme di sinonimi che possono

essere descritti da un’unica definizione, perché esprimono uno stesso senso, e una stessa parola

può trovarsi in diversi synet se ha diversi sensi). Un altro metodo riguarda la Named Entity

Recognition, ovvero l’assegnazione ai nomi propri di entità della loro categoria semantica in

contesto (persona, luogo, organizzazione, tempo, evento, ecc.). Un altro processo di annotazione

riguarda la marcatura dei ruoli semantici che descrivono la funzione semantica svolta da un

certo costituente (agente, paziente, destinatario, ecc.) in un determinato frame semantico

(schematizzazione di una situazione generalmente evocata da un verbo). In questo frangente è

importante menzionare FrameNet, una parte del British National Corpus che è stata annotata con

informazione relativa ai ruoli semantici con la finalità di fornire un inventario di situazioni ed eventi

per facilitare l’associazione automatica di uno o più frame a ogni frase del testo, insieme ai

corrispondenti ruoli semantici. In ogni caso, l’annotazione semantica consente di aumentare la

precisione delle ricerche testuali, evitando il “rumore” causato da eventuali ambiguità (borsa= ogg.

concreto o istituzione).

Annotazione per sensi: Name Entity Recognition:

Annotazione per frame e ruoli semantici:

Frase:

Mario ha acquistato dal negoziante un tappeto.

Frame semantico:

Compravendita.

Ruoli semantici del frame:

Compratore, venditore, bene.

I dati annotati a mano devono essere valutati per il loro grado di affidabilità, che dipende dal

grado di accordo raggiunto da due o più annotatori indipendenti nell’assegnazione al testo delle

categorie dello schema di annotazione; l’affidabilità è fondamentale per valutare la validità dello

schema di annotazione, che deve poter essere replicabile in maniera coerente dallo stesso

annotatore in tempi diversi, o da differenti annotatori. Il processo è semplice: un campione di testo

rappresentativo deve essere annotato almeno da due annotatori, addestrati con le medesime

istruzioni, ma che devono procedere in maniera indipendente. Successivamente viene calcolata

una statistica che misuri l’interannotator agreement, ovvero il grado di accordo fra annotatori

espresso, ad esempio, con la K di Coen:

Per k > 0,8 uno schema di annotazione linguistica viene considerato affidabile. Una bassa

affidabilità richiede una revisione dello schema, alla ricerca della fonte di incomprensione: uno

schema potrebbe non essere stato correttamente compreso dagli annotatori (problemi nel

training), oppure lo schema potrebbe non essere adatto per i fenomeni da annotare.

Un esempio:

9. Trattamento Automatico del Linguaggio

Abbiamo visto son ora come il computer possa essere utilizzato per attingere al testo digitale, in

quanto fonte primaria di dati linguistici naturali. All’interno del processo di estrazione ed

elaborazione di dati linguistici con l’aiuto del calcolatore, l’annotazione linguistica svolge un ruolo di

primaria importanza. Attraverso il Natural Language Processing (NLP) o Trattamento

Automatico del Linguaggio, si punta alla creazione di sistemi in grado di accedere al contenuto

di informazione attraverso l’elaborazione automatica. Si tratta in primis di dotare il computer di

conoscenze sulla struttura e sull’organizzazione del linguaggio, per poi potenziare capacità di

ricerca, estrarre informazioni rilevanti, migliorare il processo di gestione e condivisione, realizzare

interfacce uomo-macchina, ecc. Questo processo si svolge in varie fasi, secondo livelli

annotazione incrementale:

Arricchire il computer con le conoscenze linguistiche rimane un processo arduo, principalmente a

causa delle numerose ambiguità che possono presentarsi in una lingua, a vari livelli di analisi:

-a livello fonologico una sequenza di suoni può corrispondere a parole diverse (lama, l’ama)

-a livello morfologico e morfosintattico: le parole possono avere più di un’analisi in morfemi

(portale=porta-le o portal-e), oppure una parola può appartenere a lemmi e categorie

morfosintattiche diverse (legge=leggere o legge; amo=amare o amo)

-a livello sintattico: un’espressione può avere più di un’analisi sintattica; ambiguità soggetto-

oggetto (ha chiamato Gianni=Gianni chiama o è stato chiamato?), PP-attachment (Ho visto l’uomo

nel parco col telescopio=Il parco ha il telescopio? L’uomo ha il telescopio? Il soggetto guarda con il

telescopio?), ADJ-attachment (Il dottore ha visitato il paziente nudo=Chi è nudo?)

-a livello semantico: un’espressione può avere più significati (ala=ruolo o parte anatomica)

-a livello pragmatico: un’espressione può essere usata per scopi diversi (Hai la macchina?

=domanda o richiesta di passaggio; Fa caldo in questa stanza=asserzione o richiesta di aprire)

In ogni caso l’ambiguità esiste solo al di fuori del contesto: l’informazione contestuale permette

di scegliere l’interpretazione appropriata per un’espressione (anche se a volte l’informazione

contestuale necessaria per la disambiguazione può essere anche molto complessa). Per risolvere

ambiguità di tipo morfosintattico è sufficiente l’informazione sul contesto morfosintattico locale (I

pesci hanno abboccato all’amo; Non amo il calcio). Per risolvere ambiguità di tipo sintattico,

semantico e pragmatico invece è necessario ricorrere a ricche strutture di informazione sul

significato delle parole o sul contesto extralinguistico; dotare i computer di questo tipo di

conoscenze è una condizione chiave per garantire un’autentica capacità di accedere al contenuto

testuale.

Per quanto riguarda l’NLP tradizionale, il sistema svolge un compito linguistico utilizzando una

grammatica di regole definite e formalizzate “a mano” dal linguista. I vantaggi di questo metodo

sono scarsi, l’annotazione si basa su analisi linguistiche, ma la precisione nell’annotazione è solo

apparente; inoltre, un testo annotato da un linguista richiede un notevole dispendio di tempo ed

energie, può presentare problemi di incoerenza, è “language-dependent”, ha limitate capacità di

estensione ed adattamento a nuovi domini e alla variabilità, e infine è scarsamente robusto (le

regole di una lingua sono troppe per essere tracciate nella loro completezza).

E’ qui che interviene l’approccio per apprendimento automatico (machine learning), con la

progettazione di algoritmi che permettono al computer di imparare a svolgere un compito, a partire

da un campione di esempi o di dati rappresentativi di come svolgere quel compito. Il programma di

apprendimento tipicamente usa la distribuzione statistica dei dati del corpus per costruire un

modello per svolgere il compito. I componenti di un algoritmo di machine learning sono: training

corpus (l’insieme di dati linguistici di partenza), la metodologia di learning (per ricavare un modello

generale dell’organizzazione e struttura linguistica) e il test corpus (nuovi dati a cui si applica il

modello appreso). I vantaggi di questo metodo sono la grande adattabilità ed estensibilità del

modello, poiché si tratta di un metodo “language-independent”, accompagnati da un buon grado di

robustezza e dalla rapidità di sviluppo; uno dei pochi contro è che l’algoritmo avrà comunque una

forte dipendenza dai dati di partenza. I task solitamente modellati con algoritmi di ML sono:

Sentence Splinter (segmenta il testo in frasi), POS Tagging (interpretazione morfologica), Analisi

Sintattica (analizza la struttura sintattica della frase), Analisi Semantica (identificazione della classe

semantica delle parole).

Esistono due grandi tipi di algoritmi basati su ML:

-algoritmi non supervisionati (unsupervised) che non necessitano di un corpus annotato a mano

per la creazione del modello; sono adatti a compiti di organizzazione dei dati come il ranking

(organizzazione dei dati testuali rispetto a una funzione) o il clustering (raggruppamento di testi o

elementi estratti dal testo per una qualche relazione di similitudine fra dati).

-algoritmi supervisionati (supervised) che utilizzano corpora annotati a mano per la creazione

dei modelli; sono adatti a risolvere problemi di classificazione (dato un insieme di classi predefinite,

determinare a quale classe appartiene una certa entità)

Esempio di clustering con un algoritmo non supervisionato e supervisionato:

10. Morfologia a Stati Finiti

Considerando la lingua italiana, diventa significativo il fatto che questa sia una lingua

concatenativa: le parole sono costruite concatenando morfemi di vario tipo (radici, affissi, ecc.)

Un riconoscitore morfologico ha il compito di determinare automaticamente le sequenze

legittime di morfemi in una lingua; i metodi per compiere questo processo sono diversi. Con il full

listing si utilizza una lista (o formario), ordinata alfabeticamente, di tutte le forme flesse e derivate

della lingua; mettere insieme un formario di una lingua può essere estremamente complesso,

inoltre un computer che ha a disposizione solo un formario non è in grado di estendere in modo

autonomo le proprie conoscenze lessicali (ha un comportamento linguistico chiuso). Un altro

metodo è il processing morfologico, per cui viene

implementato un modello computazionale dell’organizzazione e

della struttura morfologica di una lingua (ovvero delle regole di

combinazione, e non l’intera lista delle combinazioni); questo

può essere fatto tramite l’uso di automi a stati finiti:

La struttura morfosintattica è governata da relazioni locali, per cui gli ASF permettono di

realizzare modelli computazionali per le relazioni concatenati dei morfemi, analizzando le stringhe

come risultato di un processo di concatenazione di simboli, in cui ogni passo dipende strettamente

dal passo precedente. Anche le regole della morfotassi, per determinare le sequenze legittime di

morfemi in una lingua, possono essere modellate con automi.

Si possono modellare anche le classi di flessione (classi

di parole che ammettono lo stesso paradigma flessivo), ma

non le regole fonologiche che regolano i fenomeni di

allomorfia che avvengono al confine di parola.

Automa lessicale per le forme flessive della 1 coniugazione Regole Fonologiche

Classi di flessione

Sappiamo che un morfema è l’unità linguistica minima dotata di significato; l’analisi morfologica

avviene proprio attraverso l’accesso a questo pacchetto di significato: le radici danno accesso

al contenuto semantico di una parola e si collegano al relativo lemma, mentre gli affissi sono

portatori di tratti morfologici che riguardano genere, numero, persona, ecc. Un parser

morfologico analizza il contenuto di questi pacchetti, fuori dal contesto della frase intera;

per questo l’output dell’analisi morfologica è

potenzialmente ambiguo, poiché vengono

prodotte tutte le possibili analisi morfologiche di

una parola. Questo tipo di analisi viene modellata

come l’associazione fra due livelli di simboli:

livello superficiale (forma linguistica) e livello

lessicale (simboli che rappresentano i tratti

dei morfemi: gend, numb, ecc.).

Altra risorse importantissima per l’analisi morfologica sono i trasduttori a stati finiti, ovvero

macchine astratte che leggono in input un insieme di stringhe X e generano in output un insieme di

stringhe Y. Con l’uso dei trasduttori si possono modellare tutti e tre gli aspetti della morfologia:

classi di flessione, regole morfotattiche e regole fonologiche.

Una volta che il trasduttore ha incontrato

tutta la radice (vot-, am-, fax-, rem-)

stampa sul nastro di output ARE (senza


ACQUISTATO

22 volte

PAGINE

43

PESO

8.14 MB

PUBBLICATO

+1 anno fa


DESCRIZIONE APPUNTO

Riassunto per l'esame di Linguistica Computazionale e dei prof. Lenci/Dell'Orletta, basato su appunti personali e studio autonomo del testo consigliato dal docente Testo e Computer di A. Lenci, S. Montemagni e V. Pirrelli. Argomenti trattati: testi e corpora, lo studio statistico del testo, legge di Zipf, catene Markoviane, Entropia, Associazioni, l'annotazione del testo, Trattamento Automatico del Linguaggio, ecc.


DETTAGLI
Corso di laurea: Corso di laurea in informatica umanistica (Facoltà di Lettere e Filosofia e di Scienze Matematiche, Fisiche e Naturali)
SSD:
Università: Pisa - Unipi
A.A.: 2016-2017

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher francesac di informazioni apprese con la frequenza delle lezioni di Linguistica computazionale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Pisa - Unipi o del prof Lenci Alessandro.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in informatica umanistica (facoltà di lettere e filosofia e di scienze matematiche, fisiche e naturali)

Linguistica Italiana - Appunti
Appunto
Riassunto esame Linguistica italiana, prof. Tavoni, libro consigliato Introduzione alla linguistica italiana, Sobrero, Miglietta
Appunto
Riassunto esame Linguistica italiana, prof. Tavoni, libro consigliato Nuova grammatica italiana, Salvi, Vanelli
Appunto
Linguistica Generale - Appunti
Appunto