Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
STAZIONARIO NE’ ERGODICO CROSS ENTROPY:
consente di valutare quanto bene un modello probabilistico
H(W) ≤ H(W, m)
approssima un certo processo stocastico:
la cross entropy è il costo in bit di usare m come modello per
descrivere un processo con distribuzione p
siano m , …, m modelli stocastici di un linguaggio L, la cui
1 n
distribuzione di prob è p: quale m è il modello corretto per L (che
i
meglio lo rappresenta)? Si calcola H(L) approssimandola con
l’entropia misurata su un corpus sufficientemente ampio e
rappresentativo di L, poi per ogni m si calcola H(L, m ): il modello
i i
corretto è quello per il quale è minore lo scarto H(L, m ) – H(L)
i
dato un insieme di modelli m , .., m , il modello più accurato è il
1 n
modello m con la cross entropy minore
i
SOSTANZIALMENTE la cross entropy consiste nell’estrarre sequenze
di parole secondo la distribuzione di probabilità p, sommando poi il
log della loro probabilità m:
Per il teorema di Shannon-McMillan… possiamo approssimare la
cross entropy prendendo un campione sufficientemente grande di
testi del linguaggio
TECNOLOGIE DEL LINGUAGGIO = sistemi in grado di accedere al
contenuto di informazione attraverso l’elaborazione automatica del
linguaggio (NLP o Trattamento automatico della lingua)
natural language understanding + natural language generation
OB principe: ESTRARRE INFORMAZIONE DAL LINGUAGGIO in modo
automatico
NLP: testo > sentence splitter > tokenizzatore > analizzatore
morfologico (produce le interpretazioni morfologiche di ciascun
token) > POS tagger (sceglie l’interpretazione morfologica corretta
per quel contesto) > analisi sintattica > analisi semantica > analisi
pragmatica ANNOTAZIONE DEL TESTO
Concetto di AMBIGUITA’: le espressioni linguistiche possono avere
più di una interpretazione, non hanno un significato univoco, il
linguaggio è ricco di sfumature; le ambiguità esistono a tutti i livelli
di analisi (ambiguità fonologiche, morfologiche e morfosintattiche,
sintattiche, semantiche, pragmatiche), e svolgere un determinato
task in NLP solitamente significa compiere un’operazione di
disambiguazione
Soluzione all’ambiguità: conoscenza del CONTESTO
- NLP tradizionale: il sistema svolge un task utilizzando una
grammatica di regole definite e formalizzate manualmente dal
linguista. Vantaggio: basato su analisi linguistiche; svantaggi:
limitate capacità di estensione e adattamento a nuovi domini e
alla variabilità, lentezza di sviluppo, “language-dependent”,
scarsa robustezza
- NLP e machine learning (su base statistica: l’algoritmo sfrutta
la distribuzione statistica dei dati del training corpus per
costruire un modello dell’organizzazione e struttura
linguistica). vantaggi: adattabilità ed estendibilità, robustezza,
rapidità di sviluppo, “language-indipendent”; svantaggio: forte
dipendenza dai dati del training corpus
Algoritmi di Machine Learning: Algoritmi che imparano a svolgere
un determinato task sulla base di esempi rappresentativi del task
che devono imparare a svolgere
Algoritmi che in principio sono in grado di imparare QUALSIASI tipo
di task
Due tipi di algoritmi basati su metodi di ML:
- Algoritmi non supervisionati (unsupervised): non
necessitano di un corpus annotato a mano per creare il
modello; adatti a compiti di organizzazione dei dati: clustering
e ranking
NB il nostro apprendimento del linguaggio avviene in modo non
supervisionato, con una lieve supervisione (correzioni da parte di
persone terze)
E’ più facile apprendere categorie per cui esistono dei nomi
precisi piuttosto che categorie per cui non esistono nomi precisi
Clustering (= RAGGRUPPARE): l’algoritmo raggruppa l’input sulla
base di una qualche relazione di similitudine
Soft clustering: un elemento può appartenere a diverse classi
Hard clustering: un elemento appartiene a una sola classe
Classe = cluster (insieme); numero di cluster viene determinato a
priori (cluster labelling), ma le classi NON sono etichettate a
priori
- Algoritmi supervisionati (supervised): usano un insieme di
dati di training pre-etichettati (classi etichettate a priori) con la
risposta corretta (es. imparare a CLASSIFICARE mammiferi e
uccelli)
RAGGRUPPARE VS CLASSIFICARE
Gli output degli algoritmi di ML rappresentano distribuzioni di
probabilità (classe presentata in output = classe con maggior
probabilità di corrispondere a input)
Devo valutare un algoritmo sulla base della sua capacità di
GENERALIZZARE le informazioni che apprende
Applicazioni nel linguaggio
Algoritmi supervisionati (tendenzialmente funzionano molto meglio
rispetto ai non supervisionati): utilizzano corpora annotati a mano
per la creazione dei modelli (corpus di addestramento o training
set); adatti a risolvere problemi di CLASSIFICAZIONE: dato un inx di
classi predefinite determinare a quale classe appartiene una certa
entità
Es. dato un training set formato da tokens appartenenti alla classe
NOME oppure VERBO (informazione esplicitata tramite
annotazione), classifica i dati in output, ovvero decidi quali parole
sono nomi e quali sono verbi, ovvero quali parole appartengono alla
classe NOME e quali alla classe VERBO. Per esempio imparerà che
cammello
solitamente i nomi seguono articoli e i verbi no: il (N)
rincorre tartaruga
(V) la (N)
Oggigiorno dominano gli algoritmi di apprendimento automatico
(ML) sono classificatori: sentence splitter (per ogni punto che
trovo devo decidere se è un punto di fine frase o no), tokenizzatore
(per ogni carattere devo decidere se è un carattere di fine parola o
no), POS tagger, analisi sintattica, analisi semantica
SUPERVISIONE = ANNOTAZIONE
QUINDI, come si annota un corpus?
Annotare un corpus significa aggiungere ad un corpus CODICI
(markup) che rendono esplicita e machine readable l’informazione
relativa alla struttura linguistica del testo
posso esplicitare qualsiasi tipo di informazione linguistica:
annotazione morfosintattica, lemmatizzazione, sintattica,
semantica, fonetica, prosodica, pragmatica…
corpora NON annotati = raw corpora
corpora annotati permettono elaborazioni più avanzate dei dati
linguistici e sono usati per ADDESTRARE (> training corpora
annotati) e VALUTARE (> gold standard) modelli computazionali
basati su algoritmi di apprendimento automatico SUPERVISIONATO
METODI DI ANNOTAZIONE
- Manuale: necessaria per alcuni tipi di annotazione (es.
pragmatica, prosodica vedi trascrizioni corpus CLIPS);
altamente costosa e lenta, perché bisogna addestrare gli
annotatori, ovvero fornire loro dei criteri per assegnare una
certa etichetta, non si tratta di etichette autoesplicative: non è
così facile classificare e capire cosa è che cosa; incoerenza
dell’annotazione: è molto facile che due+ annotatori assegnino
classi di tipo diverso ad uno stesso oggetto: se i dati sono
incoerenti, gli algoritmi apprendono male
- Annotazione (semi)automatica: rapidità di sviluppo; errori
consistenti
QUINDI solitamente la soluzione è far annotare un corpus a un
sistema di annotazione automatico e poi correggerlo manualmente
Raw corpus > tool NLP di annotazione > revisione manuale
> corpus annotato
Cosa è meglio? Dipende dal task
Esiste un circolo virtuoso tra creazione di corpora annotati e
sviluppo di strumenti NLP: i corpora annotati servono per allenare
strumenti di NLP basati su algoritmi di ML e gli strumenti di NLP
servono ad annotare automaticamente i corpora; più corpora
annotati ho, meglio imparano i miei strumenti; dunque questi
strumenti quando andranno ad annotare un corpus faranno sempre
meno errori e sarà sempre meno necessaria una revisione manuale
MATTER annotation development process: (2013) – processo
CICLICO
Model: descrizione teorica di un fenomeno linguistico con
l’identificazione degli attributi (feature) da annotare
Annotate: annotazione del corpus con uno schema di annotazione
basato sulle feature identificate
Train: addestramento di un algoritmo di ML sul corpus annotato
Test: test de sistema addestrato su un nuovo campione di dati
annotati
Evaluate: valutazione delle performance del sistema
Revise: revisione del modello linguistico e dello schema di
annotazione per renderlo più robusto e affidabile per l’uso con
l’algoritmo di ML
La parte computazionale non è separata dalla parte teorica: le
prestazioni di un sistema mi possono servire per capire se il mio
modello linguistico è fondato oppure no, ovvero se c’è un’evidenza
empirica a sostegno della mia teoria;
evidenza empirica = corpus (campione del linguaggio)
algoritmi senza dati ben annotati NON FUNZIONANO BENE! Compito
del linguista computazionale è quello di allestire un ottimo insieme
di dati linguistici annotati
Schema di annotazione: traduzione di principi teorici in qualche
cosa che è applicabile ai dati repertorio di categorie linguistiche
per l’annotazione corrispondenti alla tipologia dei tratti da
rappresentare nel testo generalmente espresso nella forma di
attributi e dei loro possibili valori
Definisce il contenuto linguistico dell’annotazione (COSA viene
annotato), non il modo il cui l’annotazione è proiettata sul testo
Algoritmi di ML imparano SOLO ciò che viene dato loro in pasto
durante l’addestramento
TIPOLOGIE DI ANNOTAZIONE
Annotazione morfosintattica: POS (part of
speech) tagged corpora (livello minimo di annotazione):
corpora annotati morfosintatticamente in cui vengono esplicitate le
parti di discorso (o categorie grammaticali) a cui appartengono i
tokens (nome, verbo, aggettivo, avverbio…); questa informazione
può essere integrata con ulteriori specificazioni morfologiche:
persona, genere, numero, tempo…
Lemmatizzazione : Corpora lemmatizzati associano ciascun
token al proprio lemma (o esponente lessicale) di riferimento (ha
AVERE; belle BELLO; ricostruzione, costruito, ricostruibile,
costruiva, costruisco… COSTRUIRE)
Annotazione morfosintattica e lemmatizzazione sono due livelli di
annotazione distinti ma strettamente correlati
Annotazione sintattica : permette di costruire treebanks,
ovvero corpora annotati con l’analisi sintattica (Parse) delle frasi,
rendendo espliciti 3 tipi di info: la struttura a costituenti
sintagmatici (bracketing), le relazioni (funzioni) grammaticali
(soggetto, oggetto…) e la struttura predicativa (predica