Trattamento Automatico del Linguaggio Naturale (1) Cristina Bosco Informatica applicata alla...

Post on 03-May-2015

218 views 0 download

Transcript of Trattamento Automatico del Linguaggio Naturale (1) Cristina Bosco Informatica applicata alla...

Trattamento Automatico del

Linguaggio Naturale(1)

Cristina BoscoInformatica applicata alla

comunicazione multimediale2014-2015

Di cosa parleremo

- definizione di NLP e MT- problemi e sottoproblemi- approcci- valutazione

Definizione

Con Trattamento Automatico del Linguaggio Naturale (TAL) o il suo equivalente inglese Natural Language Processing (NLP) o Linguistica Computazionale

si indica quella parte dell’Intelligenza Artificiale che si occupa specificamente del linguaggio umano distinguendolo, grazie al termine NATURALE, dai linguaggi di programmazione o della logica.

Origini di NLP

Uno dei primi problemi che si è cercato di trattare con il computer è quello della traduzione automatica da una lingua ad un’altra, in inglese Machine Translation (MT).

Ma a causa delle difficoltà emerse nello sviluppo di sistemi di MT, ci si è rivolti ad approfondire i problemi del linguaggio naturale anche in modo indipendente dalla MT.

Brevissima storia di NLP e MT

- Anni ’30: si costruiscono le 2 prime macchine di MT

- 1949: memorandum “On Translation”- Anni ‘50-’60: si sviluppano i primi sistemi di MT- Anni ‘60: la MT riceve molte critiche- 1966: viene stilato il rapporto ALPAC- Dopo il 1966: nascono NLP e CAT- Fine ‘900: si ricomincia a lavorare a MT

NLP: i problemi

L’approfondimento dello studio del linguaggio ha portato i ricercatori a scoprire una grande varietà di problemi ad esso sottostanti. Noi parleremo in particolare di:

- ambiguità nel linguaggio naturale- variabilità e costante evoluzione del

linguaggio naturale- differenze tra lingue, che possono richiedere

algoritmi parzialmente diversi, e che impattano fortemente sui sistemi di MT.

NLP: esiste una GU?

Se fosse possibile ritrovare, al di là delle differenze, una condivisione di principi tra le diverse lingue ed una struttura basilare comune a tutti i linguaggi, allora si potrebbero trattare tutte le lingue con approcci e sistemi simili.

Ma esistono principi comuni a tutte le lingue?Secondo la teoria della Grammatica Universale

(GU) proposta da Noham Chomsky, questi principi esistono.

NLP: esiste una GU?

La GU è una teoria linguistica secondo la quale i principi della grammatica sono condivisi da tutte le lingue, e sono innati in tutti gli esseri umani.

Chomsky propose questa teoria per spiegare l’acquisizione del linguaggio in presenza di stimoli limitati: come può il bambino imparare così bene la sua lingua madre e in così poco tempo?

Chi parla fluentemente una lingua sa quali espressioni sono accettabili nella propria lingua e quali espressioni sono inaccettabili. L'enigma chiave è capire come chi parla riesce a comprendere le restrizioni del proprio linguaggio, dal momento che le espressioni che violano tali restrizioni non vengono percepite durante l'apprendimento, né vengono indicate come tali.

NLP: esiste una GU?

Lo stimolo offerto a chi apprende non contiene prove che un'espressione appartenga alla classe di frasi grammaticalmente scorrette e le espressioni scorrette non vengono proposte a chi apprende la lingua. La GU conterrebbe le restrizioni su come è fatto il linguaggio che portano chi apprende a non poter generalizzare le regole in modo illecito.

NLP: esiste una GU?

L'idea di regole universali è presente già nel pensiero di Fancesco Bacone e dei grammatici speculativi che postulavano regole universali alla base di tutte le grammatiche, e sta alla base di molte teorie filosofiche del XVII secolo.

NLP: esiste una GU?

Secondo Sampson le teorie sulla GU non sono refutabili in quanto le generalizzazioni grammaticali alla base della GU sono speculazioni sulle lingue esistenti, e non valutazioni predittive sulle possibilità di una lingua. La povertà dello stimolo si spiega osservando che chi apprende un linguaggio può ipotizzare da solo le restrizioni grammaticali notando l'assenza di una certa classe di espressioni.

NLP: esiste una GU?

Come vedremo più avanti, esistono approcci alla MT che presuppongono l’esistenza di una sorta di GU, ma si sono rivelati in pratica non realizzabili.

E vedremo che si è rivelato molto difficile anche pensare di descrivere completamente una lingua tramite regole.

Sono queste delle prove empiriche del fatto che non esiste una GU?

NLP: esiste una GU?

NLP: suddivisione in sottoproblemi

Il compito che NLP deve affrontare è quello di COMPRENDERE IL LINGUAGGIO NATURALE. Vista la sua difficoltà, si suddivide tale compito in sottocompiti più semplici in cui occorre solo una parziale comprensione del linguaggio:

- Information Extraction- Information Retrieval- Machine Translation- Sentiment Analysis e Opinion Mining- …

NLP: suddivisione in sottoproblemi

Anche quando si vuole affrontare il compito di COMPRENDERE IL LINGUAGGIO NATURALE, grazie a delle astrazioni lo si gestisce come composto da più compiti da affrontare separatamente:

- morfologia- sintassi- semantica- pragmatica

NLP: suddivisione in sottoproblemi

Ad ogni livello di astrazione si risolvono diversi problemi ed in particolare:

- trattamento delle ambiguità- rappresentazione adatta ai sistemi di NLP- acquisizione e utilizzo di conoscenza

linguistica linguistica nei sistemi di NLP

NLP: approcci

Mettendo insieme la definizione di Informatica (= scienza che studia gli algoritmi per risolvere problemi) con quella di NLP, risulta chiaro che NLP si occupa di progettare gli algoritmi necessari a trattare in modo automatico il linguaggio naturale.

Nel corso degli anni si sono studiati algoritmi che seguono approcci diversi ai problemi di NLP, e in particolare approcci basati su regole e approcci basati su corpora di dati linguistici.

NLP: approcci

L’applicazione di un algoritmo che segue l’approccio basato su regole anziché quello basato su corpora ha degli effetti significativi su:

- come si costruisce il sistema di NLP- quale conoscenza serve al sistema- come deve essere acquisita la conoscenza- come deve essere valutato il risultato

prodotto dal sistema

NLP: valutazione

Una importante attività legata ai sistemi di NLP è quella che riguarda la valutazione.

L’obiettivo della valutazione è sempre quello di scoprire fino a che punto le prestazioni del sistema di NLP sono vicine a quelle offerte da un essere umano che svolge lo stesso compito.

Si tratta quindi di una valutazione insieme qualitativa e quantitativa, che è molto importante per decidere se un sistema è pronto per essere utilizzato o dove si deve intervenire per migliorarlo.

NLP: valutazione

L’idea della valutazione nasce contestualmente all’idea di Intelligenza Artificiale e resta presente in tutta la storia dell’NLP.

Turing per primo richiama l’attenzione sulla valutazione proponendo il famoso test che porta il suo nome.

Il rapporto ALPAC propone la prima valutazione “formale” della MT.

Tutte le volte che si costruisce un sistema di NLP si deve dimostrare che produce i risultati attesi.

NLP: riassumendo

Ci concentreremo su:- cosa significa comprendere il linguaggio- cosa è l’ambiguità e perché ci interessa- come si può rappresentare il linguaggio - come si può trattare il linguaggio

Cosa significa comprendere il linguaggio naturale?

Comprendere un linguaggio naturale significa essere in grado di associare UNA SOLA interpretazione ad ogni espressione di tale linguaggio.

Dove con espressione si intende: parola, sintagma, frase …

Human Language Understanding

• Si basa su una complessa conoscenza grammaticale e lessicale

• È supportata da una almeno altrettanto ampia conoscenza del mondo

• Insomma ... comprendere l’informazione codificata nel linguaggio richiede una quantità di conoscenza e competenza

Livelli di struttura linguistica

La complessità del linguaggio umano è tale che si è soliti assumere diversi livelli di astrazione per descriverlo ed analizzarlo.

Questa assunzione è fondamentale per il NLP e per qualunque elaborazione automatica del inguaggio.

Livelli di struttura linguistica• fonetico: suoni del parlato, come vengono prodotti, come vengono percepiti• fonologico: la struttura grammaticale dei suoni e del sistema sonoro

Ogni lingua ha delle convenzioni in base alle quali certi suoni e certe composizioni di lettere sono accettabili ed altri no:ca / tcha / çataogt / gatto

Livelli di struttura linguistica

• morfologico: come le sotto-unità delle parole si combinano per formare la parola

* remangia vs mangiare

* silavare vs lavarsi

Livelli di struttura linguistica• sintattico: come le parole si combinano per formare la frase

In italiano:* bianco Giorgio il vuole pane* Vuole bianco Giorgio pane ilGiorgio vuole il pane bianco

Ma in toba batak:Manjaha buku guru ilegge libro maestro il

Livelli di struttura linguistica

• semantico (lessicale e proposizionale): che cosa significa ogni parola e come i significati delle parole si combinano per formare il significato della frase

* la macchia invisibile crede nel cielo* idee verdi senza colore sognano furiosamente

Livelli di struttura linguistica

• pragmatico: in che modo i significati delle frasi sono utilizzati per manifestare gli scopi comunicativi degli esseri umani all’interno del contesto e della situazione di enunciazione

- La casa è la prima che trovi svoltando a destra dopo il teatro - La prima notte di San Silvestro del nuovo millennio- Questo è bello

Problemi

Oltre alla molta conoscenza che il NLU richiede, il principale problema del NLP è la pervasiva ambiguità del linguaggio a tutti i livelli di analisi.

Noi vedremo in modo specifico i livelli morfologico e sintattico, che sono quelli maggiormente interessanti dal punto di vista della traduzione.

Cosa è l’ambiguità?

Quando una frase contiene una ambiguità non è possibile darne una (SOLA) interpretazione.

Perchè ci interessa l’ambiguità?

Gli esseri umani hanno una quantità di conoscenza grazie alla quale non percepisconomolte delle ambiguità che invece una macchina trova nel linguaggio.

Ambiguità morfologica

Trans-categoriale:

- “Tutti hanno un TELEFONINO e a chi TELEFONINO non si capisce”

- PESCA nome (il frutto, lo sport) verbo (lo sport, l’estrazione, ...) aggettivo (il colore)

Ambiguità semantica lessicale

brucia (bruciare, 3a persona, ind. pres., intr.):

- La carta brucia (“è un combustibile”)- La casa di Mario brucia (“ha preso fuoco”)- Il peperoncino brucia (“è piccante”)- La minestra brucia (“è troppo calda”)- La gola brucia (“causa dolore fisico”)- La condanna brucia (“causa dolore mentale”)

Ambiguità sintatticaPuò essere indipendente dall’ambiguità

morfologica: “Giorgio vide un uomo nel parco con il telescopio”

Può causare ambiguità semantica: “Giorgio vide un uomo con un telescopio”

Può essere relativa alle relazioni grammaticali: “Chi uccise il poliziotto?”

Ambiguità sintatticaPuò essere locale, nel senso che una parte della

frase ammette diverse analisi, ma solo una di queste analisi è valida per la frase intera:

“I soldati, avvertiti del pericolo ... ..., condussero il raid di mezzanotte.”“I soldati, avvertiti del pericolo ... ... i cittadini, condussero il raid di

mezzanotte.”

Ambiguità sintattica

Può essere globale ed anche irrisolvibile se la frase completa ammette più analisi tutte valide:

“La vecchia porta la sbarra”

Ambiguità semantica

Può essere determinata dall’ambiguità presente ad altri livelli, e può dipendere dai quantificatori:

- Ogni uomo ama una donna= per ogni singolo uomo, esiste una singola donna che egli ama= esiste una sola singola donna che ognuno degli uomini (preso singolarmente) ama

E sottoproblemi

Per gestire le difficoltà che la comprensione del linguaggio nel suo complesso comporta, si scompone il compito (task) del NLP in vari sottoproblemi (subtasks) relativamente indipendenti e consistenti con i livelli di analisi identificati a livello teorico.

Analisi morfologica

Si analizza ogni parola PRESA SINGOLARMENTE e se ne esplicitano le caratteristiche grammaticali:

- categoria grammaticale della parola (Part of Speech tagging), come nome, verbo, aggettivo, ecc.

- Lemmatizzazione o ricerca delle radici, come “vedere” per “vidi”, “rosso” per “rossi”, ecc.

Analisi morfologica

Deve essere chiarito cosa si intende per parola PRESA SINGOLARMENTE ovvero si deve affrontare la tokenizzazione del testo:

- mangiamelo è una singola parola o sono tre?- della è una singola parola o sono due?- e la punteggiatura?

• Es.: la morfologia di CANI èCANE (lemma), NOME COMUNE (categoria

grammaticale), MASCHILE (genere), SINGOLARE (numero)

• Es.: la morfologia di DORMÌ è DORMIRE (lemma), VERBO (categoria

grammaticale), INDICATIVO (modo), PASSATO REMOTO (tempo), 3 (persona), SINGOLARE (numero)

Analisi morfologica

Un esempio di analisi morfologica di una frase

1. la (IL ART DEF F SING)2. storia (STORIA NOUN COMMON F SING) 3. non (NON ADV NEG) 4. educa (EDUCARE VERB MAIN IND PRES 3 SING) 5. a (A PREP MONO) 6. nulla (NULLA NOUN COMMON M SING)

E se la parola è ambigua? Un esempio di analisi possibile:

1. la (IL ART DEF F SING)2. pesca (PESCA NOUN COMMON F SING) pesca (PESCARE VERB MAIN IND PRES 3 SING)

pesca (PESCARE VERB MAIN IMP PRES 2 SING)3. non (NON ADV NEG) 4. è (ESSERE VERB MAIN IND PRES 3 SING) 5. un (UN ART INDEF M SING) 6. frutto (FRUTTO NOUN COMMON M SING)

Analisi sintatticaRiguarda le informazioni a livello dell’intera frase

e si può impostare secondo due modelli teorici:

- riconoscimento della struttura sintagmatica della frase, cioè dei sintagmi e del modo in cui si compongono tra di loro

- riconoscimento della struttura relazionale della frase in cui gli interi sintagmi o le singole parole sono legate tra di loro

Analisi sintatticaLa struttura sintagmatica:

- in cosa consiste- come si rappresenta

Analisi sintattica: sintagmiLa struttura sintagmatica della frase, detta anche

struttura a costituenti rappresenta la suddivisione della frase in sottounità più piccole e così via procedendo in ordine gerarchico:

La frase è un sintagma composto (e.g.) da sintagma nominale + sintagma verbale.

Il sintagma verbale è composto (e.g.) da verbo + sintagma nominale.

Il sintagma nominale è composto da articolo + sintagma nominale … ecc.

Analisi sintattica: sintagmiLa struttura sintagmatica della frase si

rappresenta tradizionalmente con degli alberi, perchè sono le strutture che meglio consentono di mostrare un ordinamento gerarchico di elementi.

Quindi il risultato prodotto su una frase da un sistema di analisi sintattica, detto PARSER, è un albero sintattico o albero di derivazione.

Analisi sintattica: sintagmi

E se la frase contiene ambiguità sintattiche? Una frase ambigua permette più di una analisi sintattica, quindi verranno costruite più strutture per la stessa frase.

Esempio: “Giorgio vide l’uomo dentro il parco con il telescopio”

Analisi sintattica: sintagmi

Analisi sintattica: sintagmi

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, Giorgio lo vide dentro il parco, Giorgio lo vide utilizzando il telescopio

Analisi sintattica: sintagmi

Analisi sintattica: sintagmi

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, Giorgio lo vide dentro il parco, il parco che ha il telescopio

Analisi sintattica: sintagmi

Analisi sintattica: sintagmi

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, l’uomo che stava dentro il parco, e Giorgio lo vide utilizzando il telescopio

Analisi sintattica: sintagmi

Analisi sintattica: sintagmi

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, l’uomo che stava dentro il parco, il parco che ha il telescopio

Analisi sintattica: sintagmi

I quattro alberi di derivazione non esauriscono tutte le possibili strutture che si possono costruire per la frase.

In questo esempio l’ambiguità è determinata dalla presenza di sintagmi preposizionali che possono essere agganciati praticamente a qualunque altro sintagma.

Analisi sintattica: sintagmi

Analisi sintatticaLa struttura relazionale:

- in cosa consiste- come si rappresenta

Analisi sintattica: relazioniLa struttura relazionale, detta anche struttura a

dipendenze, mostra in che rapporto stanno tra loro le parole della frase tramite le cosiddette relazioni grammaticali o di dipendenza.

In “il cane dorme” cane è il SOGGETTO del verbo dorme.

In “Mario sovente mangia banane” sovente è un modificatore del verbo mangia, mentre banane è l’oggetto del verbo mangia.

Analisi sintattica: relazioniLa struttura a dipendenze della frase si

rappresenta tradizionalmente con degli alberi, perchè sono le strutture che meglio consentono di mostrare le relazioni sugli archi che legano le parole.

Quindi il risultato prodotto su una frase da un sistema di analisi sintattica, detto PARSER, è un albero sintattico a dipendenze.

Es.: la sintassi della frase “Giorgio ama Maria”

Giorgio

ama

Maria

SUBJ OBJ

Analisi sintattica: relazioni

Es.: la sintassi della frase “Balzac non perse mai la sua inclinazione per la speculazione.”

Analisi sintattica: relazioni

Es.: la sintassi della frase “Galli laeti in castra pergunt”

Analisi sintattica: relazioni

Es.: la sintassi della frase “Cicero consul coniurationem Catilinae detexit”

Analisi sintattica: relazioni

Qualunque sia la rappresentazione adottata per la sintassi, non si risolve il problema dell’ambiguità.

Molto sovente le ambiguità del linguaggio naturale non sono percepite dagli esseri umani. Questo ha indotto gli studiosi di NLP a credere che trattare il linguaggio naturale fosse molto più semplice di quello che si è poi rivelato.

Analisi sintattica

Un esempio concreto di come l’ambiguità sintattica non viene percepita?

Io mangio le fragole con la panna.

Quante diverse strutture sintattiche posso costruire?

Analisi sintattica

mangio

le fragole

con la panna

Io

mangio

le fragole con la pannaIo

?

A)

B)

Io mangio le fragole con la panna.

Nessun essere umano sceglierebbe la B ed aggancerebbe il sintagma preposizionale con la panna al sintagma verbale mangio, invece che al sintagma nominale le fragole.

Eppure la struttura B è assolutamente sensata dal punto di vista sintattico se si prescinde da qualunque considerazione semantica.

mangio

le fragole

con il cucchiaio

Io

mangio

le fragole

con il cucchiaio

Io

?

A)

B)

Infatti, in altri casi, come

Io mangio le fragole con il cucchiaino.

la struttura B verrebbe naturalmente scelta, agganciando il sintagma preposizionale con il cucchiaino al sintagma verbale mangio, invece che al sintagma nominale le fragole.

Inoltre, la presenza di ambiguità é proporzionale alla lunghezza della frase.

3 (7): List the sales of products in 1973

10 (8): List the sales of products produced in 1973

28 (13): List the sales of products produced in 1973 with the products in 1972

455 (14): List the sales of products produced in 1973 with the products produced in 1972

Il problema dell’ambiguità provocata dalla presenza dei sintagmi preposizionali è uno dei più classici e difficili per i sistemi di NLP.

Alcuni esperimenti hanno dimostrato che scegliere dove agganciare il sintagma preposizionale è un compito difficile anche per gli esseri umani.

Sicuramente i risultati dimostrano che lo è molto di più per i sistemi di NLP.

Un esperimento sull’ambiguità sintattica provocata dall’aggancio del sintagma preposizionale

- applicazione di un analizzatore sintattico (parser) ad un corpus di 13 milioni di parole - rilevazione delle associazioni lessicali, i.e. co-occorrenze di nomi o verbi con determinate preposizioni, ES. “to” in abbinamento con “send” nel contesto “send NP to …” NB: il parser, non può risolvere le ambiguità strutturali e produce parti sconnesse di strutture sintattiche da cui è estratta l’associazione lessicale

Vengono estratte 2.500.000 associazioni lessicali, di cui oltre 200.000 ambigue

Si applica il modello probabilistico Lexical Association score: LA(v,n,p) = log2 x (P(verb_attach p | v,n)/P(noun_attach p | v,n))

cioè si cattura la frequenza con cui certi nomi e verbi co-occorrono con certe preposizioni e la si rappresentata con il modello LA

Lo stesso task di aggancio del sintagma preposizionale viene svolto:

automaticamente con l’approccio corpus-based lessicalizzato (modello LA) >>> errore del 20%

separatamente da 2 giudici umani >>> errore del 12-15%

automaticamente con approcci strutturali: right association >>> errore del 33% minimal attachment >>> errore del 67%

L’esperimento dimostra che 1)Il task dell’aggancio del sintagma preposizionale è difficile2)Il task non può essere affrontato con successo grazie a regolarità di tipo morfologico e sintattico, quindi non esiste una regola che ci consenta di risolverlo 3)Una certa regolarità esiste, ma solo a livello statistico e probabilmente legata alla semantica delle parole coinvolte nella struttura

Questo esperimento è stato determinante per la definizione degli approcci basati su corpora

Se le regolarità del linguaggio non possono essere formalizzate in regole, non vuol dire che non esistono.Come il linguaggio stesso, le regole che lo governano sono complesse e hanno molte varianti, per cui diventa molto difficile descriverle e il metodo più sensato per farlo sembra essere la statistica.