Anteprima
Vedrai una selezione di 8 pagine su 34
Linguistica computazionale - parte 2 Pag. 1 Linguistica computazionale - parte 2 Pag. 2
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Linguistica computazionale - parte 2 Pag. 6
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Linguistica computazionale - parte 2 Pag. 11
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Linguistica computazionale - parte 2 Pag. 16
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Linguistica computazionale - parte 2 Pag. 21
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Linguistica computazionale - parte 2 Pag. 26
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Linguistica computazionale - parte 2 Pag. 31
1 su 34
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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

Dettagli
Publisher
A.A. 2018-2019
34 pagine
SSD Scienze antichità, filologico-letterarie e storico-artistiche L-FIL-LET/12 Linguistica italiana

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher arodella 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à Università degli Studi di Pisa o del prof Lenci Alessandro.