• Non ci sono risultati.

Linguistica computazionale e approcci corpus-based

N/A
N/A
Protected

Academic year: 2021

Condividi "Linguistica computazionale e approcci corpus-based"

Copied!
47
0
0

Testo completo

(1)

Linguistica computazionale e approcci corpus-based

Cristina Bosco

Corso di Informatica applicata alla comunicazione multimediale

2016-2017

(2)

Per definire un sistema di NLP occorre conoscerne i seguenti aspetti:

- Input

- Algoritmi

- Conoscenza linguistica - Output

Sistemi di NLP

(3)

INPUT: modalità

Il sistema riceve in ingresso un input in linguaggio naturale

L’input può assumere diverse modalità: scritto,

parlato, gestuale o una mescolanza di queste tre modalità, che possono anche interagire tra loro.

Noi ci occuperemo specificamente di linguaggio scritto, ma non va dimenticata la complessità

derivante dalle altre modalità, come la sintesi del parlato e i problemi derivanti dal “rumore”, la

percezione ed interpretazione della gestualità.

(4)

Un esempio: l’input nelle lingue dei segni e nel parlato

Nel caso delle lingue dei segni, l’input è gestuale e si deve tenere conto della gestualità delle mani,

principale strumento per “segnare”, ma anche

delle espressioni del viso, della posizione del capo, delle spalle, braccia, ecc.

Queste stesso componenti possono entrare in gioco anche quando il linguaggio è parlato …

l’espressione del viso in molti casi è una

fondamentale chiave di interpretazione del significato del testo enunciato.

(5)

INPUT: lingua e genere

Il sistema riceve in ingresso un input in linguaggio naturale

L’input può contenere testi di natura molto diversa tra loro a seconda di:

- Lingua (francese, giapponese, swahili …)

- Genere testuale (prosa giornalistica, Twitter, poesia, romanzi, prosa scientifica, manualistica tecnica, previsioni meteo …)

(6)

Il sistema deve anche avere gli algoritmi adeguati a utilizzare la conoscenza e a produrre un determinato output.

Si deve pertanto assumere che la sequenza di semplici passi (=algoritmo) da fare sull’input sia ben definibile, e trovare un modo per

definirla.

ALGORITMI

(7)

Ma quale è l’algoritmo giusto?

Potrebbe includere le stesse operazioni che fanno gli esseri umani (AI forte) oppure no (AI debole).

Potrebbe esserci più di un modo per produrre

l’output e potrebbe essercene uno migliore e per vari motivi:

- più adatto all’input e la tipo di conoscenza - più veloce

ALGORITMI

(8)

I sistemi che traducono in modo automatico adottano approcci diversi, traducono

direttamente dalla lingua target alla lingua sorgente oppure tramite la mediazione di interlingue.

Essi utilizzano tipi di conoscenza diversa,

dizionari, ontologie ecc. (e non tutte queste

basi di conoscenza sono disponibili per tutte le lingue).

ALGORITMI: un esempio, la traduzione

(9)

Rispetto alla conoscenza necessaria al sistema per trattare il linguaggio occorre risolvere vari problemi:

- quale conoscenza?

- come rappresentarla?

- come fornirla al sistema?

- come usarla una volta acquisita?

CONOSCENZA LINGUISTICA

(10)

Assumiamo che una lingua sia trattabile da un sistema che ha a disposizione la conoscenza posseduta da un parlante di quella lingua.

La prima cosa da fare è dunque equipaggiare il sistema con tale conoscenza.

CONOSCENZA LINGUISTICA: quale?

(11)

Il primo problema consiste nel delimitare la

conoscenza necessaria alla comprensione del linguaggio.

Gli esseri umani non hanno che una molto parziale consapevolezza di quale e quanta conoscenza utilizzano per comunicare

tramite il linguaggio

CONOSCENZA LINGUISTICA: quale?

(12)

CONOSCENZA LINGUISTICA:

quale?

Esempio: che conoscenza occorre a un PoS tagger (analizzatore morfologico) per

prendere in input

“il cane dorme in giardino”

e restituire in output

“il ART, cane NOUN, dorme VERB, in PREP, giardino NOUN” ?

(13)

CONOSCENZA LINGUISTICA:

quale?

output = il ART, cane NOUN, dorme VERB, in PREP, giardino NOUN

conoscenza =

ART (il), NOUN (cane, giardino), VERB (dorme), PREP (in)

(14)

CONOSCENZA LINGUISTICA:

quale?

Esempio: che conoscenza occorre a un parser (analizzatore sintattico) per

prendere in input

“il cane dorme in giardino”

e restituire in output

“[S [NP (il – cane)]

[VP (dorme) [PP (in – giardino)]]]” ?

(15)

CONOSCENZA LINGUISTICA:

quale?

output = [S [NP (il – cane)] [VP (dorme) [PP (in – giardino)]]]

conoscenza = art + noun = NP verb + PP = VP

prep + noun = PP NP + VP = S

(16)

Il secondo problema è che la conoscenza del parlate deve essere rappresentata in modo adeguato ad essere usata dal sistema

(dizionari, ontologie, corpora, memorie di traduzione, basi terminologiche …).

La forma di tale conoscenza può essere molto diversa a seconda del task e del tipo di

informazione.

CONOSCENZA LINGUISTICA: come rappresentarla?

(17)

Un dizionario utilizzato da un sistema di MT ha una organizzazione molto diversa da un

dizionario usato dagli esseri umani.

I termini sono divisi in sezioni in base alla frequenza d’uso (alta, media, bassa) e al

dominio terminologico (generale, specifico), in modo da massimizzare la velocità con cui il sistema accede alle informazioni.

CONOSCENZA LINGUISTICA: un esempio, il dizionario per la MT

(18)

Una volta stabilito quale conoscenza si deve fornire al sistema ed in quale forma, occorre risolvere il problema di come fornirla al

sistema.

Questo è un problema che è stato molto discusso e che è determinante per chi progetta un sistema di NLP.

CONOSCENZA LINGUISTICA: come fornirla al sistema?

(19)

Acquisizione della conoscenza

Dove si trova la conoscenza?

Le soluzioni sono 2:

1)conoscenza dentro il sistema – rule- based

2)conoscenza dentro un corpus di dati linguistici – corpus-based

(20)

Corpus versus rule-based

grammatica grammatica

lessico lessico

SISTEMA

(21)

Corpus versus rule-based

grammatica grammatica

lessico lessico

CORPUS SISTEMA

apprendimento

(22)

Corpus versus rule-based

In entrambi i casi si presuppone che il linguaggio sia governato da regole (da conoscere per trattarlo)

MA:

• nei sistemi corpus-based le regole sono apprese, nei rule-based sono date

• nei sistemi corpus-based le regole sono probabilistiche, nei rule-based sono

deterministiche

(23)

Corpus versus rule-based

Se le regole variano, ad es. da una

lingua all’altra, da un genere testuale ad un altro, devono essere riscritte in un

sistema rule-based, ma non in uno corpus-based.

(24)

Approccio corpus-based

• Utilizzato dai linguisti dalla fine dell’800 e oggi molto diffuso

• Consiste nell’apprendere dal linguaggio le regole ed irregolarità del linguaggio

(25)

Approccio corpus-based

• A causa delle critiche di Chomsky

l’approccio corpus-based non è stato

adottato dalla linguistica computazionale che negli ultimi 20 anni.

(26)

Approccio corpus-based

• Il suo principale vantaggio è di offrire un concreto supporto alla soluzione del

problema dell’ambiguità.

• Se una frase è ambigua, il sistema che la tratta ne costruisce più strutture

alternative. Analizzando un corpus possiamo scoprire quale ordine di

preferenza dare alle alternative costruite.

(27)

Approccio corpus-based

• Si basa sull’idea che le co-occorrenze sono fonti importanti di informazioni sulla lingua

• Si ispira all’idea di apprendimento

linguistico umano, tramite esposizione a esempi e basato su criteri statistici

(28)

Approccio corpus-based:

come funziona?

Si assume che un CORPUS C di un

linguaggio L possa contenere (~tutta) la conoscenza necessaria a trattare L, e si acquisisce la conoscenza da esso.

L’acquisizione della conoscenza avviene tramite tecniche di apprendimento

automatico (machine learning).

(29)

Approccio corpus-based

Il processo di apprendimento offre come risultato:

• la conoscenza delle regole ed irregolarità del linguaggio (non-ristretto)

• MA SOPRATTUTTO la percezione della frequenza delle strutture linguistiche

(30)

Approccio corpus-based:

come funziona?

Si prende un campione di linguaggio, cioè un insieme di frasi (= CORPUS) che si considera rappresentativo della lingua

Si cercano nel corpus le strutture linguistiche e la frequenza con cui occorrono nel corpus,

arrivando a costruire una BASE di CONOSCENZA per il sistema

Si utilizza la base di conoscenza per trattare le frasi nuove

(31)

Approccio corpus-based

Prendiamo il corpus formato dalle 5 frasi seguenti:

Il cane dorme in giardino.

Mario ha un cane che dorme in giardino.

Il cane dorme spesso nel suo giardino.

Quando Mario dorme il cane va in giardino.

Il cane dorme in giardino.

(32)

Approccio corpus-based

Acquisiamo dal corpus preso la conoscenza circa la frequenza di strutture linguistiche:

avremo le seguenti frequenze di bi-grammi:

Il-cane: 80%, cane-dorme: 60%,

Mario-dorme:20%, in-giardino:80%, ...

e molte altre

(33)

Approccio corpus-based

Nell’esempio sono stati usati i bi-grammi, cioè le coppie di parole che si trovano vicine nella frase:

per ogni coppia <a,b> di parole possiamo estrarre dal corpus la probabilità che a e b siano associate sintatticamente

(34)

Approccio corpus-based

Perché usare i bi-grammi?

ovviamente il sistema non conosce a priori

quale è la struttura della frase (il suo obiettivo è proprio di costruirla!)

quindi procede per ipotesi e si interroga su quali parole della frase sarebbe corretto associare

e ipotizza che le parole che sovente sono vicine siano tra loro legate sintatticamente

(35)

Approccio corpus-based

Ma come funziona un sistema statistico?

ad ogni struttura S del linguaggio il sistema associa un valore di probabilità

il valore di probabilità di S è dato dalla

composizione delle probabilità delle parti di S

(36)

Approccio corpus-based

In pratica un sistema corpus-based:

se incontra una struttura ambigua cerca nella base di conoscenza l’informazione utile per costruire la rappresentazione più probabile della struttura

(37)

Approccio corpus-based

Esempio:

“il cane dorme in giardino”

P(il–cane: NP) = 95%

P(cane-dorme:?) = 3%

P(dorme-in: ?) = 5%

P(in-giardino: PP) = 95%

(38)

Approccio corpus-based

Ma come funziona un sistema statistico?

la probabilità di ogni parte di una frase analizzata dipende dalla sua frequenza in un CORPUS di riferimento e dal

modello statistico utilizzato

(39)

Approccio corpus-based

Ma come funziona un sistema statistico?

Cosa è un modello probabilistico ?

Serve a determinare come calcolare la probabilità di ogni risultato ottenuto dal sistema

(40)

Approccio corpus-based

i bi-grammi di “il cane dorme in giardino”:

1-il cane

2-cane dorme 3-dorme in

4-in giardino

La probabilità di 1 sarà maggiore di quella di 2, quindi il sistema propone la costruzione di 1 invece che di 2.

(41)

Approccio corpus-based

Nell’analisi sintattica (parsing), di fronte

all’ambiguità e quindi generazione di più strutture, per una singola frase, si

ricavano dai dati linguistici i CRITERI per scegliere la migliore delle strutture

generate

(42)

Approccio corpus-based

L’approccio corpus-based assume che

buona parte del successo del linguaggio umano nella comunicazione dipende

dall’abilità che gli esseri umani hanno nel gestire ambiguità ed imprecisione in

modo efficiente.

(43)

Approccio corpus-based

Gli esseri umani riescono infatti a cogliere la corretta interpretazione di un

messaggio da un insieme di stimoli di varia natura (ad es. contestuali ed

emotivi) oltre che dalle parole e

strutture che compongono il messaggio stesso.

(44)

Approccio corpus-based

L’approccio corpus-based offre inoltre la

possibilità di sfruttare la conoscenza che va al di là delle parole e delle strutture che

compongono il linguaggio.

È quindi un modo efficiente di acquisire la conoscenza sul linguaggio.

(45)

Approccio corpus-based

I primi sistemi corpus-based apprendevano tutta la conoscenza direttamente dai dati così come si presentavano (approccio non supervisionato).

Parte della conoscenza risultava però difficile da apprendere perché poco rappresentata o perché difficile da generalizzare.

(46)

Approccio corpus-based

A partire dagli anni ‘90 si sono sviluppati

sistemi che apprendono la conoscenza da

corpora di dati linguistici annotati (approccio supervisionato).

In questo modo si ha maggiore controllo sulla conoscenza che il sistema deve apprendere.

(47)

Approccio corpus-based

Attualmente i TREEBANK (la cui annotazione descrive i dati dal punto di vista

morfologico e sintattico) sono le risorse linguistiche più utilizzate nel NLP.

Altre risorse annotate sono i corpora per la sentiment analysis, lessici e lemmari

semantici e/o morfologici, corpora annotati con part of speech, ...

Riferimenti

Documenti correlati

Moduli simbolici di parsing (basati su metodologie consolidate nella lin- guistica computazionale, come le tecnologie a stati finiti) sono affiancati a strumenti stati- stici che

supponiamo che la nostra query sia “gatto” e che nel nostro insieme di 100 documenti ce ne siano 10 che parlano di gatti; vorremmo che il sistema di IR trovasse questi 10.&#34;.

 La variazione della lingua attraverso gli strati, gruppi e reti sociali.  Unità d’analisi:

 la semantica lessicale semantica lessicale semantica lessicale semantica lessicale, che si occupa del significato dei lessemi e delle relazioni tra i significati delle. parole,

 I sintagmi sono i costituenti della frase e ogni sintagma è formato da una combinazione minima di parole che costituisce una unità della.

Per la lingua italiana ad esempio sono stati creati, intorno all’anno 2000, 2 treebank, entrambi con un formato a dipendenze, TUT e Italian Syntactic Semantic Treebank

Al contrario l’approccio corpus-based è empiricista e fondato sull’osservazione di dati naturali che sono espressione empirica della conoscenza del linguaggio

newspapers (Wall Street Journal), telephone conversations. Selezione  in  altri  treebank