FMZ, Giugno 2001 Parsing del linguaggio naturale Fabio Massimo Zanzotto Università di Tor Vergata.

Slides:



Advertisements
Presentazioni simili
I Linguaggi di programmazione
Advertisements

Sintassi (prima parte)
Traduttore diretto dalla sintassi (seconda parte)
LR Parser Giuseppe Morelli. La maggior parte dei parser Bottom-Up è costituita dai cosiddetti parser LR(k) dove: L indica il verso dellanalisi della stringa.
Parser Bottom UP Giuseppe Morelli. Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di.
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Linguaggi Regolari e Linguaggi Liberi
Viable Prefixes, conflitti e formato delle tabelle per il parsing LR
Costruzione di tabelle di Parsing SLR
Linguaggi di programmazione
Traduzione guidata dalla sintassi
La comunicazione.
Algebra parziale con predicati
Linguaggi a memoria condivisa Lidea è di aggiungere ad un linguaggio imperativo dei costrutti per rappresentare lesecuzione parallela di statements. Supponiamo.
Algoritmi e Programmazione
Generalità Linguaggio e Macchina Astratta
La Rappresentazione della Conoscenza
1 Linguaggi di Programmazione - elementi Corso di Laurea in Informatica (AA 2005/2006) Gabriella Pasi e Carla Simone
Lez. 31 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Strategie per la progettazione di algoritmi:
Sistemi computazionali per il linguaggio naturale
Intelligenza Artificiale Linguaggio naturale
Elaborazione del linguaggio naturale automi & morfologia Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Elaborazione del linguaggio naturale Analisi sintattica: parsing
Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Comunicazione basata sul linguaggio naturale Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento (2 - Reti semantiche, Frames) Prof. M.T. PAZIENZA a.a
Introduzione alle reti semantiche R. Basili. Sistemi basati su conoscenza Fanno uso di una rappresentazione esplicita del: –Mondo/Ambiente –Dominio di.
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Esercizio 4 Data una stringa P di lunghezza m e definita sullalfabeto, scrivere un programma PERL per calcolare la seguente funzione: PREFIX_FUNCTION:
Scuola Secondaria di 1° Grado - Classe I F - Favara
-calcolo Vogliamo studiare le problematiche relative al meccanismo di chiamata di funzione (eg differenze fra binding statico e dinamico) in isolamento.
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica1 Linguaggi Classificati rispetto alle caratteristiche principali: –potere espressivo che influenza lo stile di programmazione.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Logica proposizionale Sintassi vs Semantica
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
Da Problema a Programmazione
Automi LAVORO SVOLTO DA MARIO GERMAN O
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
Lo sviluppo del software e i linguaggi di programmazione
Introduzione ai linguaggi formali e alle stringhe
Fabio Massimo Zanzotto (slides di Andrea Turbati con aggiunte)
Grammatiche, Linguaggio e Automi R. Basili TAL - a.a
Sistemi basati su conoscenza Comunicazione basata sul linguaggio naturale (grammatica, semantica) Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Linguaggio naturale: grammatiche Prof. M.T. PAZIENZA a.a
FMZ Sistemi basati su conoscenza Da logica proposizionale a logica del primo ordine Dott. Fabio Massimo Zanzotto a.a
FMZ Sistemi basati su conoscenza Prolog (1) Dott. Fabio Zanzotto a.a
Elaborazione del linguaggio naturale CFG: esercizi Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 19 Prof. M.T. PAZIENZA a.a
Introduzione a Javascript
Elaborazione del linguaggio naturale automi & morfologia Maria Teresa PAZIENZA a.a
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
Sistemi basati su conoscenza Linguaggio naturale: semantica Prof. M.T. PAZIENZA a.a
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Linguaggi Diversi tipi di linguaggi:
Sistemi basati su conoscenza Comunicazione basata sul linguaggio naturale (grammatica, semantica) Prof. M.T. PAZIENZA a.a
Automi temporizzati.
Comprensione frasale Garden Path theory
Linguaggi e Grammatiche Alfabeto : insieme non vuoto di elementi detti simboli A = { a, b, c } Stringa : sequenza di simboli di un alfabeto ab abc abcab.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Logica Lezione 8, DISTRIBUIRE COMPITO 1.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
Transcript della presentazione:

FMZ, Giugno 2001 Parsing del linguaggio naturale Fabio Massimo Zanzotto Università di Tor Vergata

FMZ, Giugno 2001 Parsing e linguaggio naturale Lezione 1

FMZ, Giugno 2001 Il parsing Un esempio di programma –Come viene strutturato? –Come viene utilizzato Strutturare significa capire e poter utilizzare

FMZ, Giugno 2001 Analisi del testo di un programma if (a>b) { printf(Hello World!); a++; } else { printf(Bye Bye World!); }

FMZ, Giugno 2001 Analisi del testo di un programma In quale linguaggio è stato scritto? Come avete fatto a scoprirlo? Scriviamo un automa a stati finiti che almeno riconosca quellingresso.

FMZ, Giugno 2001 Automa a stati finiti Quintupla V insieme dei simboli Q insieme degli stati insieme delle transizioni q0 stato iniziale F insieme degli stati finali

FMZ, Giugno 2001 Costruiamo lautoma V = { if, else, a, b, (,),>, +, ;, printf(Hello World!), printf(Bye Bye World!),{, } }

FMZ, Giugno 2001 Analisi del testo di un programma I problemi che vogliamo risolvere sono: Il pezzo di codice fa parte del linguaggio? Come posso utilizzare il pezzo di codice? –Dandogli significato per tradurlo in un linguaggio più a basso livello.

FMZ, Giugno 2001 Da testo di un programma ad albero ifthen else if-statement (a>b) printf(Hello World!); a++; printf(Bye Bye World!);

FMZ, Giugno 2001 Il problema in generale V insieme di simboli L V* il linguaggio Esiste un meccanismo che possa dire se dato un l V* questo appartenga a L o non appartenga a L ? Esiste un modo sintetico per esprimere L (ovvero diverso dallenumerazione)? Esiste la possibilità di assegnare una struttura allelemento l in esame (se questo appartiene al linguaggio)?

FMZ, Giugno 2001 Digressione Chiusura di Kleene indicata con uno * sul nome dellinsieme Informale V* contiene tutte le concatenazioni possibili di elementi in V di qualsiasi lunghezza Se V i =tutte le stringhe di lunghezza i composte da elementi di V Allora V*= V i

FMZ, Giugno 2001 Da testo di un programma ad albero if (a>b) { printf(Hello World!); a++; }

FMZ, Giugno 2001 Da testo di un programma ad albero if then if-statement (a>b) printf(Hello World!);

FMZ, Giugno 2001 Da testo di un programma ad albero REGOLE: if-statement if condition instructions if-statement if condition instructions else instructions

FMZ, Giugno 2001 Il parser PARSER Regole Testo Programma

FMZ, Giugno 2001 Il processo di generazione di codice macchina lalbero codice macchina lalbero permette di utilizzare il testo del programma la struttura esplicita il significato del testo del programma Strutturare == capire (per poi riutilizzare)

FMZ, Giugno 2001 Il parsing del linguaggio naturale Vogliamo rispondere ad Chi ha vinto lo scudetto? utilizzando le frasi: La XYZ ha agguantato lo scudetto di campioni dItalia allultima giornata di campionato La ZXY dopo una lunga rincorsa è rimasta delusa La ZYX avrebbe potuto cucirsi sulle maglie il suo N scudetto

FMZ, Giugno 2001 Il parsing del linguaggio naturale Capire la sintassi Capire la semantica Capire la pragmatica (struttura del discorso) Capire == strutturare

FMZ, Giugno 2001 Esempio la XYZ ha agguantato lo scudetto S( Subj(la XYZ), VP( Verb(ha agguantato), Obj(lo scudetto) )

FMZ, Giugno 2001 Esempio la XYZ ha agguantato lo scudetto S NP VP VP Verb NP NP Art Noun Noun XYZ Noun scudetto Art la Art lo Verb ha agguantato

FMZ, Giugno 2001 Parsing e linguaggio naturale Lezione 2

FMZ, Giugno 2001 Parsing e linguaggio naturale Concetti importanti: –capire = strutturare –strutturare permette poi di utilizzare Strutturare richiede: –Comprendere se una data sequenza di caratteri appartiene o meno ad un linguaggio –Costruire la struttura l che appartiene al linguaggio

FMZ, Giugno 2001 Il problema in generale V insieme di simboli L V* il linguaggio Esiste un meccanismo che possa dire se dato un l V* questo appartenga a L o non appartenga a L ? Esiste un modo sintetico per esprimere L (ovvero diverso dallenumerazione)? Esiste la possibilità di assegnare una struttura allelemento l in esame (se questo appartiene al linguaggio)?

FMZ, Giugno 2001 Digressione Chiusura di Kleene indicata con uno * sul nome dellinsieme Informale V* contiene tutte le concatenazioni possibili di elementi in V di qualsiasi lunghezza Se V i =tutte le stringhe di lunghezza i composte da elementi di V Allora V*= V i

FMZ, Giugno 2001 Il parsing del linguaggio naturale Modelliamo una parser che possa interpretare le seguenti frasi: La XYZ ha agguantato lo scudetto di campioni dItalia allultima giornata di campionato La ZXY dopo una lunga rincorsa è rimasta delusa La ZYX avrebbe potuto cucirsi sulle maglie il suo N scudetto

FMZ, Giugno 2001 Un parser Regole: quelle fornite della grammatica precedente Parser (cioè il processore): il motore inferenziale del prolog

FMZ, Giugno 2001 Un parser Cominciamo con il costruire un riconoscitore in prolog Costruiamo poi un riconoscitore che fornisca la struttura

FMZ, Giugno 2001 Esempio la XYZ ha agguantato lo scudetto S NP VP VP Verb NP NP Art Noun Noun XYZ Noun scudetto Art la Art lo Verb ha agguantato

FMZ, Giugno 2001 Un parser Esempio1 Esempio2 Esempio3

FMZ, Giugno 2001 Prolog: uno zucchero sintattico Formalismo DCG –a(A,B) --> c(D),e(I,K). viene espanso in a(A,B,A0,AN) :- c(D,E,A0,A1),e(I,K,A1,AN). –a(A,B) --> [a,b]. viene espanso in a(A,B,A0,AN) :- C(A0,a,A1), C(A1,b,AN). Built-in C([X|A],X,A).

FMZ, Giugno 2001 Linguaggi naturali vs linguaggi formali La XYZ ha agguantato lo scudetto di campioni dItalia allultima giornata di campionato S NP VP VP Verb NP VP Verb NP PP NP Art Noun NP Noun NP NP PP PP Prep NP

FMZ, Giugno 2001 I problemi dei parser costruiti Talvolta non terminano (ricorrenza sinistra) NP NP PP Perché funzionano solo in maniera top- down

FMZ, Giugno 2001 Strategie di parsing Top-down Bottom-up

FMZ, Giugno 2001 Strategie di parsing Applichiamole ad un esempio La XYZ ha agguantato lo scudetto di campioni dItalia allultima giornata di campionato S NP VP VP Verb NP VP Verb NP PP NP Art Noun NP Noun NP NP PP PP Prep NP

FMZ, Giugno 2001 Parsing e linguaggio naturale Lezione 3

FMZ, Giugno 2001 Richiami Strategie di parsing: –Top-down (es. le regole DCG e il prolog) –Bottom-up

FMZ, Giugno 2001 Limiti del parsing the linguaggio naturale Notare lambiguità sullesempio (PP-attachment) Altri esempi di ambiguità: Mario guarda luomo con la bandiera Mario guarda luomo con il cannocchiale Mario guarda luomo con il microscopio La vecchia porta la sbarra Gianna mi ha prestato la borsetta di pelle di Leonordo Gianna mi ha prestato la borsetta di pelle di leopardo

FMZ, Giugno 2001 Linguaggi naturali vs linguaggi formali Costruire linterpretazione al fine di far emergere lambiguità Differenze –Linguaggi formali: Si decide il modello che deve essere rispettato dai locutori. In genere, questo modello non è ambiguo. –Linguaggi naturali: il modello deve spiegare una fenomenologia preesistente

FMZ, Giugno 2001 Linguaggi naturali Problemi intrinseci: –Ambiguità (genuina oppure introdotta dal modello) –Copertura

FMZ, Giugno 2001 (Prima) Stratificazione del regole di parsing Livello di interpretazione morfosintattico Livello di interpretazione sintattico

FMZ, Giugno 2001 Stratificazione Costruzione di un dizionario Evidenziare la necessità di feature aggiuntive –Genere/Numero

FMZ, Giugno 2001 Chart Parser

FMZ, Giugno 2001 Limiti del parser DCG (con interprete prolog) Implementa solo una strategia top-down La struttura della frase viene assegnata solo se completamente riconosciuta. Le strutture parziali riconosciute vengono utilizzate solo nella derivazione di cui fanno parte

FMZ, Giugno 2001 Chart Parsing: introduzione Definizione del formalismo Definizione della struttura dati in prolog Implementazione di una strategia di parsing

FMZ, Giugno 2001 Chart parsing: la struttura dati Well Formed Substring Table WFST La struttura dati è un grafo i cui –Nodi sono i connettori –Archi sono le ragioni per cui i connettori sono connessi tra loro

FMZ, Giugno 2001 Un esempio di WFST Albero vs WFST della frase: Mario guarda luomo con il microscopio

FMZ, Giugno 2001 Chart parsing Estende lidea del WFST per permettere di rappresentare goal e ipotesi. La struttura risultante è quella degli active chart Il concetto principale è quello delle Dotted Rules A B.C I simboli a destra del punto sono quelli che sono stati confermati mentre quelli a sinistra sono quelli da confermare.

FMZ, Giugno 2001 Chart Parsing Gli archi dellactive chart sono delle dotted rules. E quindi possibile implementare strategie di parsing: –Bottom-up –Top-down –Ibride

FMZ, Giugno 2001 Chart Parsing Dotted rule in prolog: add_edge(V0,V1,Category,TOBEFOUND,FOUND) Un parser bottom-up –esempio

FMZ, Giugno 2001 parse(V0,Vn,String) :- start_chart(V0,Vn,String).% defined in chrtlib1.pl % add_edge(V0,V1,Category,Categories,Parse) :- edge(V0,V1,Category,Categories,Parse),!. % add_edge(V1,V2,Category1,[],Parse) :- assert_edge(V1,V2,Category1,[],Parse), foreach(rule(Category2,[Category1|Categories]), add_edge(V1,V1,Category2,[Category1|Categories],[Categ ory2])), foreach(edge(V0,V1,Category2,[Category1|Categories],Parses), add_edge(V0,V2,Category2,Categories,[Parse|Parses])). add_edge(V0,V1,Category1,[Category2|Categories],Parses) :- assert_edge(V0,V1,Category1,[Category2|Categories],Parses), foreach(edge(V1,V2,Category2,[],Parse), add_edge(V0,V2,Category1,Categories,[Parse|Parses])).

FMZ, Giugno 2001 Il parsing del linguaggio naturale Parsing sintattico Esempi di frasi e loro analisi sintattica Formalizzazione semi-intuitiva delle regole utilizzate. Limite dellambiguità e della copertura

FMZ, Giugno 2001 Gerarchia dei linguaggi Come il problema è stato formalizzato? Linguaggi regolari –Automi a stati finiti e loro limiti Linguaggi context-free Linguaggi context-sensitive Problema della calcolabilità