Syntactic Parsing Obiettivo • Richiamo: Discussione della derivazione nelle grammatiche context-free e relazione con gli alberi • Obiettivo di un parser: Costruire alberi a partire da frasi © F.M.Zanzotto Outline • Parsing Algorithms – – – – © F.M.Zanzotto Top down Bottom Up CYK Early Algorithm / Chart Parsing Parsing CF with Cocke-Younger-Kasami (CYK) algorithm Grammar in CNF* --- ---- ---- ---- ---- ---- ---- ---- ---- S→AB|BC A→BC|a B→BB|CC|b C→a ---- b © F.M.Zanzotto a a b a FMZ *CNF Chomsky Normal Form Parsing CF with Cocke-Younger-Kasami (CYK) algorithm Grammar in CNF S --- B ---- ---- ---- ---- ---- ---- ---- ---- B A,S B S A,S ---- B C,A C,A B C,A b a a b a © F.M.Zanzotto FMZ S→AB|BC A→BC|a B→BB|CC|b C→a Parsing CF with Cocke-Younger-Kasami (CYK) algorithm input: a1 ... an. Pn,n is the matrix of sets of symbols initially Pn,n = For each i = 1 to n For each unit production Rj → ai, set P1,j = {Rj} For each i = 2 to n For each j = 1 to n-i+1 For each k = 1 to i-1 For each production RA → RB RC If RBPj,k and RC Pj+k,i-k then Pj,i = Pj,i {RA} If R1 P[1,n] Then string is member of language Else string is not member of language © F.M.Zanzotto FMZ Parsing CF with Cocke-Younger-Kasami (CYK) Limits • CYK relies on Chomsky Normal Form hence • there is no freedom on the final structure • a CYK parser has to be coupled with a tree transformer CYK is a very interesting theoretical result but let us find a more flexible parser!!! © F.M.Zanzotto FMZ Early Algorithm © F.M.Zanzotto Natural Language and its Models • Formal Languages Languages are artificially designed. The Chomsky Level is choosen Structural ambiguity is controlled and semantic is made “clear” • Natural Languages – It is a social phenomenon... as such has to be studied – It exists and evolves – People use differently natural language (performance) according to their language competence © F.M.Zanzotto FMZ Observing natural language .... La rivoluzione è la voce che corre sul web. ... ... Netto recupero anche per Iberia, mentre si riprende del 4,1% anche British Airways. ... Nella tabella la chiusura degli indici dei titoli guida delle principali piazze finanziarie del Vecchio Continente ... ... Mentre il professore spiega il modello climatico, Roberto e i colleghi sperimentano l'influenza di diversi parametri sulle previsioni meteorologiche. ... © F.M.Zanzotto FMZ A sample Grammar (introspectively produced) S NP VP | S SBAR | SBAR S SBAR CongSub S S S CongCoord S | S, S CongCoord S NP NP SBAR VP Verb NP VP Verb NP PP NP Art Noun | Art Adj Noun | Noun | NP PP PP Prep NP © F.M.Zanzotto FMZ Observing natural language Telefonia, la rivoluzione è la voce che corre sul web Si chiama Voip, è una rivoluzione perché abbatte i costi delle telefonate ma arriverà solo quando sarà chiaro come si potrà evitare che distrugga i bilanci delle telecom Finisce così con l'avere un impatto contenuto il brusco tonfo segnato dalla fiducia degli investitori tedeschi, con una flessione inattesa dell'indice Zew a marzo da 69,9 punti a quota 57,6. Il rimbalzo più deciso viene messo a segno da Madrid (+1,45%), maggiormente penalizzata nelle scorse sessioni, dopo che anche le banche d'affari consigliano di acquistarne i titoli. Hsbc, in particolare, ha ribadito l'indicazione di sovrappesare le azioni spagnole giudicando improbabili grandi cambiamenti alle politiche economiche da parte del nuovo governo socialista. Tra i bancari, in progresso Credit Suisse (+1,7%). Mentre corre la spagnola Santander Central Hispano (+1,8%). Nel comparto aereo, netto recupero anche per Iberia (+7,5%), mentre si riprende del 4,1% anche British Airways. Virgin Express, la compagnia low cost di Richard Branson, termina invariata dopo la formalizzazione con una lettera di intenti delle trattative di fusione con Sn Brussels Airlines (ex Sabena). Il comparto non registra però nessuna fiammata sulle attese di consolidamento e Ryanair termina in calo del 2,39%, Klm avanza di un modesto 0,49%. Dopo le vendite delle ultime sedute, Air France rimbalza dell'1,20%. Nel comparto petrolifero, è la spagnola Repsol (+1,42%) la blue chip più vivace, mentre Bp segna un progresso dello 0,22%. Invariata Shell, giù dello 0,36% Royal Dutch. La francese Total cede lo 0,14%. © F.M.Zanzotto FMZ Observations • The sample grammar is insufficient!! • NL is not completely captured! • However, it is possible to think to a camprehensive model? An NL model can cover all natural language phenomena? © F.M.Zanzotto FMZ Model Coverage • A complete model can be hardly achieved • Augmenting the coverage may imply also augmenting the induced ambiguity of the model • The model can cover partially a sentence. • Partial analysis are also relevant © F.M.Zanzotto FMZ Partial Analysis may be relevant... ... sai: questa cosa che è cosata all'improvviso, non so se è una cosa che coserà, ma coso di sì, anche se, cosando le solite cose, coso a cosare che le cose si cosino cosabilmente e che le cose non cosino per sempre, che siano cosabili, cosibili, soprattutto cosubili. Queste cose si stracosano all'inizio, poi si cosano, si discosano, si supercosano, fino a cosarsi di nuovo, e noi, in tutto questo, non ci possiamo cosare nessuna cosa, anche se adesso io ti coso cose e tu mi cosi cose, e tutti cosiamo le cose che ci cosiamo fino a scosarci e ricosarci all'infinito... © F.M.Zanzotto FMZ Model Ambiguity • Genuine ambiguity Time flies like an arrow Flying planes can be dangerous La vecchia porta la sbarra • Model-induced Ambiguity NP Art Noun | Art Adj Noun | Noun | NP PP Nella tabella la chiusura degli indici dei titoli guida delle principali piazze finanziarie del Vecchio Continente © F.M.Zanzotto FMZ Aim • Build a formalism/model able to give the possibility of reducing the unnecessary interpretations • Build a formalism (and an associated algorithm) able to represent partial analysis • We want the freedom to adopt bottom-up or topdown algorithms © F.M.Zanzotto FMZ What we have done? • CNF grammars and CYK: – a bottom-up algorithm – it stores partial analyses • CFG and prolog: – a top-down algorithm – it does not store partial analysis – many subtrees are recomputed in the different analyses © F.M.Zanzotto FMZ Parsing CF with Cocke-Younger-Kasami (CYK) algorithm Grammar in CNF S --- B ---- ---- ---- ---- ---- ---- ---- ---- B A,S B S A,S ---- B C,A C,A B C,A b a a b a © F.M.Zanzotto FMZ S→AB|BC A→BC|a B→BB|CC|b C→a Chart Parsing and Early Algorithm FMZ 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 © F.M.Zanzotto FMZ Un esempio di WFST SNP VP VP VP NP VP VP NP PP NP NP PP PP Prep NP NP Art Noun NP Noun VP Verb NP Art Noun Prep Mario guarda l’ uomo con © F.M.Zanzotto FMZ Art il Noun microscopio Chart Parsing S NP VP | S SBAR | SBAR S • Making the chart WFST active: representing a state of the analysis SBAR CongSub S S S CongCoord S | S, S CongCoord S NP NP SBAR VP Verb NP VP Verb NP PP NP Art Noun | Art Adj Noun | Noun | NP PP PP Prep NP NPNP•PP PPPrep•NP NP Art Noun NP Noun VP Verb NP Art Noun Mario guarda l’ uomo con © F.M.Zanzotto FMZ Art Prep il Noun microscopio Chart parsing • Estende l’idea 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. © F.M.Zanzotto FMZ Chart Parsing • Gli archi dell’active chart sono delle dotted rules. • E’ quindi possibile implementare strategie di parsing: – Bottom-up – Top-down – Ibride © F.M.Zanzotto FMZ Chart Parsing: introduzione • Definizione del formalismo • Definizione della struttura dati in prolog • Implementazione di una strategia di parsing © F.M.Zanzotto FMZ Chart Parsing • Dotted rule in prolog: edge(V0,V1,Category,TOBEFOUND,FOUND_STRUCTURED) • Rule: rule(Mother,List_of_daughters) • Lexicon: word(Category,Word). Un parser bottom-up – esempio © F.M.Zanzotto FMZ Bottom-up Chart Parsing (a) parse(V0,Vn,String) :start_chart(V0,Vn,String). % defined in chrtlib1.pl start_chart(V0,V0,[]). start_chart(V0,Vn,[Word|Words]) :V1 is V0+1, foreach(word(Category,Word), add_edge(V0,V1,Category,[],[Word,Category])), start_chart(V1,Vn,Words).% add_edge(V0,V1,Category,Categories,Parse) :edge(V0,V1,Category,Categories,Parse),!. © F.M.Zanzotto FMZ Bottom-up Chart Parsing (b) add_edge(V1,V2,Category1,[],Parse) :assert_edge(V1,V2,Category1,[],Parse), foreach(rule(Category2,[Category1|Categories]), add_edge(V1,V1,Category2,[Category1|Categories],[Category2])), foreach(edge(V0,V1,Category2,[Category1|Categories],Parses), add_edge(V0,V2,Category2,Categories,[Parse|Parses])). © F.M.Zanzotto FMZ BU Chart in action in black real edges in red add_edge add_edge(V1,V2,Category1,[],Parse) :assert_edge(V1,V2,Category1,[],Parse), foreach(rule(Category2,[Category1|Categories]), add_edge(V1,V1,Category2,[Category1|Categories],[Category2])), foreach(edge(V0,V1,Category2,[Category1|Categories],Parses), add_edge(V0,V2,Category2,Categories,[Parse|Parses])). NP • Noun Noun © F.M.Zanzotto Mario guarda l’ uomo con FMZ il .... Bottom-up Chart Parsing (c) 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])). © F.M.Zanzotto FMZ BU Chart in action in black real edges in red add_edge 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])). NP Noun • NP • Noun Noun © F.M.Zanzotto Mario guarda l’ uomo con FMZ il .... BU Chart in action in black real edges in red add_edge S NP • VP NP Noun • Noun © F.M.Zanzotto Mario guarda l’ uomo con FMZ il .... BU Chart in action add_edge(V1,V2,Category1,[],Parse) :assert_edge(V1,V2,Category1,[],Parse), in black real edges in red add_edge foreach(rule(Category2,[Category1|Categories]), add_edge(V1,V1,Category2,[Category1|Categories],[Category2])), foreach(edge(V0,V1,Category2,[Category1|Categories],Parses), add_edge(V0,V2,Category2,Categories,[Parse|Parses])). S NP • VP VP VP NP • NP Noun • VPVerb Noun Verb © F.M.Zanzotto Mario guarda l’ uomo con FMZ il .... Bottom-up Chart Parsing (d) foreach’s mistery % % foreach - for each X do Y % foreach(X,Y) :X, do(Y), fail. foreach(X,Y) :true. do(Y) :- Y,!. © F.M.Zanzotto FMZ Where are we? • NL is a phenomenon to be studied: – building a model implies understanding how it behaves – Performance makes things difficult • A compentence model hardly explain all the possible produced sentences • Partial analyses are needed – Charts are proposed as a good for storing partial and competing analysis © F.M.Zanzotto FMZ What’s next? • The eternal struggle between coverage and ambiguity. • Feacture structures to empower the language of representig grammatical rules © F.M.Zanzotto FMZ