Sistemi computazionali per il linguaggio naturale.

28
Sistemi computazionali per il linguaggio naturale

Transcript of Sistemi computazionali per il linguaggio naturale.

Page 1: Sistemi computazionali per il linguaggio naturale.

Sistemi computazionali per il linguaggio naturale

Page 2: Sistemi computazionali per il linguaggio naturale.

Bad News…Good News

• Una frase è un descrittore incompleto dell’informazione che contiene

• “Alcuni cani sono fuori” = 2, 3, 4 cani… Bobby, Fido … Alcuni dei nostri cani…

• G.N.: Il linguaggio naturale permette di essere tanto vaghi o tanto precisi quanto si vuole!

Page 3: Sistemi computazionali per il linguaggio naturale.

Bad News…Good News

• La stessa espressione ha diversi significati in diversi contesti

• “Dov’è l’acqua?” In un laboratorio, l’acqua distillata; a tavola l’acqua potabile; con l’idraulico, la perdita d’acqua…

• G.N.: Il linguaggio naturale permette di comunicare qualsiasi cosa con un insieme finito di simboli.

• Se cosi’ non folsse il linguaggio non potrebbe essere appreso…

Page 4: Sistemi computazionali per il linguaggio naturale.

Bad News…Good News

• Nessun programma può essere esaustivo perchè nuove espressioni vengono continuamente coniate

• “Il programma sta runnando da 50 secondi, non è che per caso si è alluppato?”

• G.N.: Il linguaggio naturale si evolve insieme al mondo che descrive

Page 5: Sistemi computazionali per il linguaggio naturale.

Bad News…Good News

• Ci sono tantissime espressioni diverse per dire la stessa cosa

• “Tanti auguri! Buon compleanno! ”

• G.N.: Quando si hanno molte conoscenze è più facile derivare inferenze; il linguaggio naturale è ‘pensato’ per agenti che hanno molte conoscenze…

Page 6: Sistemi computazionali per il linguaggio naturale.

Tipi di compiti

• Comprendere (o generare) testi scritti.

• Comprendere (o generare) il parlato.

• Fornire traduzioni.

Page 7: Sistemi computazionali per il linguaggio naturale.

Cosa significa una frase?

Una fraseUna rappresentazione TARGETIn un determinato CONTESTO

Problema: tanti sono i contesti tante sono le possibili rappresentazioni del significato di una frase

Page 8: Sistemi computazionali per il linguaggio naturale.

I tipi di analisi linguistica

Analisi morfologica:

Si scompongono le singole parole nelle componenti (affissi, suffissi, radici..) e si si separano I segni di interpunzione dalle parole

Es: ‘incontriamoci alle 10,30… Anzi no! Meglio alle 11!’

Incontriamoci = incontr + iamo + ci

declinazione Suffisso pronominale

radice

Page 9: Sistemi computazionali per il linguaggio naturale.

I tipi di analisi linguistica

Analisi sintattica:

Sequenze lineari di parole sono trasformate in strutture che mostrano in che modo le parole

si relazionano le une con le altre all’interno della frase

Le frasi che violano la sintassi di un linguaggio devono essere riconoscibili

Page 10: Sistemi computazionali per il linguaggio naturale.

I tipi di analisi linguistica

Analisi semantica:

Le strutture create dall’analizzatore sintattico sono assegnate al loro significato.

Deve essere possibile individuare le frasi che hanno ‘significato anomalo’

Esempio: Idee verdi e senza colore dormono furiosamente

Page 11: Sistemi computazionali per il linguaggio naturale.

I tipi di analisi linguistica

Analisi semantica:

Le strutture create dall’analizzatore sintattico sono assegnate al loro significato.

Deve essere possibile individuare le frasi che hanno ‘significato anomalo’ in uno o più universi di significato

Esempio: Idee verdi e senza colore dormono furiosamente

Page 12: Sistemi computazionali per il linguaggio naturale.

I tipi di analisi linguistica

Integrazione del discorso:

L’assegnazione del significato può essere determinata al di fuori della frase in analisi.

Esempio: Francesco è uno studente modello. Lo è sempre stato.

Page 13: Sistemi computazionali per il linguaggio naturale.

I tipi di analisi linguistica

Analisi pragmatica:

Bisogna che il programma sia in grado di intendere ciò che una frase può voler dire al di là del significato letterale

Esempio: “Scusi, mi saprebbe indicare la più vicina fermata della metropolitana?”

“Si, certo”… Non è una risposta accetabile“No, mi spiace”… E’ una risposta accettabile

Page 14: Sistemi computazionali per il linguaggio naturale.

Analisi sintattica

La finalità dell’analisi sintattica è di ottenere il Parsing di una frase, cioè di derivare la struttura gerarchica delle dipendenze tra le parole della frase.

Ovviamente serve una teoria sintattica per farlo!

Page 15: Sistemi computazionali per il linguaggio naturale.

Analisi sintattica‘Voglio stampare il file iniziale di Bill’

S

(RM1)

NP

ADJS

NPV

VP

VP

PRO

NP

(RM3)

Io

(RM2) PRO

Io stampare

V

voglio

(RM4)

ADJS

inizialedi Bill il file

NP

N

Page 16: Sistemi computazionali per il linguaggio naturale.

Analisi sintattica

S = sentence (frase)

(RM) = Reference Marker - serve per riallacciarsi dopo…

NP = Noun Phrase (sintagma nominale)

VP = Verbal Phrase (sintagma verbale)

PRO = pronoun (pronome)

ADJS = Adjective (aggetivo)

N = Noun (nome)

Page 17: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaPer eseguire il parsing serve

1) Una rappresentazione dichiarativa dei ‘fatti sintattici’

di una lingua, ovverosia una GRAMMATICA

2) Un algoritmo di parsing che associa frasi a strutture e viceversa

Esempio di regola della grammatica: S NP VPSi legge: una frase è composta da un sintagma nominale e da un Sintagma verbale

Page 18: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaPer ogni linguaggio la sua GRAMMATICE DEFINISCE:

1) La sua capacità generativa in senso debole, ossia l’insieme delle frasi benformate

2) La sua capacità generativa in senso forte, ossia l’insieme delle strutture sintattiche ad esse

associate.

Page 19: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaParsing TOP-DOWN

Si inizia con il simbolo di partenza e si applicano le regole fino a che I simboli ai terminali dell’albero sintattico corrispondono alle componenti della frase che si sta analizzando

Page 20: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaParsing BOTTOM-UP.

Si inizia con la frase e si applicano le regole all’indietro fino a che un solo albero è prodotto, quello che ha ai terminali le parole della frase che si deve analizzare.

Page 21: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaParsing BOTTOM-UP con filtraggio TOP-DOWN.

Aggiunge alla strategia precedente l’impiego di una serie di tavole grammaticali precalcolate che eliminano possibili constituenti che non potrebbero mai essere combinati in forma sintatticamente valida per un dato linguaggio.

Page 22: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaQuando le interpretazioni sono molteplici…

Il linguaggio è ricco di frasi che possono essere associate a diversi alberi sintattici.

Esempio: ‘Guardo l’uomo con il cannocchiale’.

Sussistono diverse strategie per trattare questo tipo di frasi.

Page 23: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaQuando le interpretazioni sono molteplici…

Best Path with Backtracking

Segue un albero alla volta ma registra tutte le ‘scelte’ alternative in modo che se una interpretazione fallisce torna indietro e considera le scelte alternative.

Page 24: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaQuando le interpretazioni sono molteplici…

Best Path with Patchup

Segue un albero alla volta e registra tutte le ‘scelte’ alternative come il precedente, ma se una struttura fallisce inverte prima di tutto l’ordine dei componenti della parte della frase che contiene l’ambiguità

Page 25: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaQuando le interpretazioni sono molteplici…

Wait and See

Segue un albero alla volta e registra solo le scelte che non presentano ambiguità fino a quando lo sviluppo della procedura non consente di inserire le soluzioni in una forma non ambigua.

Page 26: Sistemi computazionali per il linguaggio naturale.

Analisi sintatticaQuando le interpretazioni sono molteplici…

All pathsCostruisce tutte le possibili interpretazioni

sintattiche, anche quelle meno probabili. Può essere una strategia molto poco efficente.

Page 27: Sistemi computazionali per il linguaggio naturale.

Integrazione del discorsoRichiede la costruzione di una base di conoscenza

per il discorso che deve essere interpretato.

Si possono usare diversi formalismi, tipo frames o scripts.

Page 28: Sistemi computazionali per il linguaggio naturale.

Integrazione del discorsoEsempio:

User isa: Person *login-name: must be ‘string’

Printing isa: physical event * agent: must be ‘animate or program’ * object: must be ‘information-object’