Sistemi computazionali per il linguaggio naturale

Preview:

Citation preview

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!

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…

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

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…

Tipi di compiti

• Comprendere (o generare) testi scritti.

• Comprendere (o generare) il parlato.

• Fornire traduzioni.

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

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

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

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

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

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.

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

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!

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

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)

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

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.

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

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.

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.

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.

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.

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à

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.

Analisi sintatticaQuando le interpretazioni sono molteplici…

All pathsCostruisce tutte le possibili interpretazioni

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

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.

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’

Recommended