Parsing 1. Grammars and Parsing 2. Top-Down and Bottom-Up Parsing 3
Total Page:16
File Type:pdf, Size:1020Kb
Syntax Parsing syntax: from the Greek syntaxis, meaning “setting out together or arrangement.” 1. Grammars and parsing Refers to the way words are arranged together. 2. Top-down and bottom-up parsing Why worry about syntax? 3. Chart parsers • The boy ate the frog. 4. Bottom-up chart parsing • The frog was eaten by the boy. 5. The Earley Algorithm • The frog that the boy ate died. • The boy whom the frog was eaten by died. Slide CS474–1 Slide CS474–2 Grammars and Parsing Need a grammar: a formal specification of the structures allowable in Syntactic Analysis the language. Key ideas: Need a parser: algorithm for assigning syntactic structure to an input • constituency: groups of words may behave as a single unit or phrase sentence. • grammatical relations: refer to the subject, object, indirect Sentence Parse Tree object, etc. Beavis ate the cat. S • subcategorization and dependencies: refer to certain kinds of relations between words and phrases, e.g. want can be followed by an NP VP infinitive, but find and work cannot. NAME V NP All can be modeled by various kinds of grammars that are based on ART N context-free grammars. Beavis ate the cat Slide CS474–3 Slide CS474–4 CFG example CFG’s are also called phrase-structure grammars. CFG’s Equivalent to Backus-Naur Form (BNF). A context free grammar consists of: 1. S → NP VP 5. NAME → Beavis 1. a set of non-terminal symbols N 2. VP → V NP 6. V → ate 2. a set of terminal symbols Σ (disjoint from N) 3. NP → NAME 7. ART → the 3. a set of productions, P, each of the form A → α, where A is a 4. NP → ART N 8. N → cat non-terminal and α is a string of symbols from the infinite set of ∗ • CFG’s are powerful enough to describe most of the structure in strings (Σ ∪ N) natural languages. 4. a designated start symbol S • CFG’s are restricted enough so that efficient parsers can be built. Slide CS474–5 Slide CS474–6 LG Derivations The language LG generated by a grammar G is the set of strings ∗ • If the rule A → β ∈ P , and α and γ are strings in the set (Σ ∪ N) , composed of terminal symbols that can be derived from the designated then we say that αAγ directly derives αβγ, or αAγ ⇒ αβγ start symbol S. ∗ • Let α1, α2, . , αm be strings in (Σ ∪ N) , m > 1, such that ∗ ∗ LG = {w|w ∈ Σ , S ⇒ w} α1 ⇒ α2, α2 ⇒ α3, . , αm−1 ⇒ αm, ∗ then we say that α1 derives αm or α1 ⇒ αm Parsing: the problem of mapping from a string of words to its parse tree according to a grammar G. Slide CS474–7 Slide CS474–8 General Parsing Strategies Grammar Top-Down Bottom-Up A Top-Down Parser → → → 1. S NP VP S NP VP NAME ate the cat Input: CFG grammar, lexicon, sentence to parse → → → 2. VP V NP NAME VP NAME V the cat Output: yes/no 3. NP → NAME → Beav VP → NAME V ART cat State of the parse: (symbol list, position) 4. NP → ART N → Beav V NP → NAME V ART N 1 The 2 old 3 man 4 cried 5 5. NAME → Beavis → Beav ate NP → NP V ART N 6. V → ate → Beav ate ART N → NP V NP start state: ((S) 1) 7. ART → the → Beav ate the N → NP VP 8. N → cat → Beav ate the cat → S Slide CS474–9 Slide CS474–10 Grammar and Lexicon Algorithm for a Top-Down Parser P SL ← (((S) 1)) Grammar: 1. Check for failure. If PSL is empty, return NO. 1. S → NP VP 4. VP → v 2. Select the current state, C. C ← pop (PSL). 2. NP → art n 5. VP → v NP 3. Check for success. If C = (() <final-position>), YES. 3. NP → art adj n 4. Otherwise, generate the next possible states. Lexicon: (a) s1 ← first-symbol(C) the: art (b) If s1 is a lexical symbol and next word can be in that class, create old: adj, n new state by removing s1, updating the word position, and adding it man: n, v to P SL. (I’ll add to front.) cried: v (c) If s1 is a non-terminal, generate a new state for each rule in the 1 The 2 old 3 man 4 cried 5 grammar that can rewrite s1. Add all to P SL. (Add to front.) Slide CS474–11 Slide CS474–12 Example 8. ((v NP) 3) ((art adj n VP) 1) leads to backtracking ... Current state Backup states 9. ((art adj n VP) 1) 1. ((S) 1) 10. ((adj n VP) 2) 2. ((NP VP) 1) 11. ((n VP) 3) 3. ((art n VP) 1) ((art adj n VP) 1) 12. ((VP) 4) 4. ((n VP) 2) ((art adj n VP) 1) 13. ((v) 4) ((v NP) 4) 5. ((VP) 3) ((art adj n VP) 1) 14. (() 5) ((v NP) 4) 6. ((v) 3) ((v NP) 3) ((art adj n VP) 1) YES 7. (() 4) ((v NP) 3) ((art adj n VP) 1) Backtrack DONE! Slide CS474–13 Slide CS474–14 Problems with the Top-Down Parser Efficient Parsing 1. Only judges grammaticality. The top-down parser is terribly inefficient. 2. Stops when it finds a single derivation. Have the first year Phd students in the computer science 3. No semantic knowledge employed. department take the Q-exam. 4. No way to rank the derivations. Have the first year Phd students in the computer science 5. Problems with left-recursive rules. department taken the Q-exam? 6. Problems with ungrammatical sentences. Slide CS474–15 Slide CS474–16 Chart Parsers chart: data structure that stores partial results of the parsing process Chart Parsing: The General Idea in such a way that they can be reused. The chart for an n-word The process of parsing an n-word sentence consists of forming a chart sentence consists of: with n + 1 vertices and adding edges to the chart one at a time. • n + 1 vertices • Goal: To produce a complete edge that spans from vertex 0 to n • a number of edges that connect vertices and is of category S. Judge Ito scolded the defense. 0 1 2 3 4 5 • There is no backtracking. S-> NP . VP VP->V NP . • Everything that is put in the chart stays there. • Chart contains all information needed to create parse tree. S-> NP VP . Slide CS474–17 Slide CS474–18 Bottom-UP Chart Parsing Algorithm Do until there is no input left: 5. Extend existing edges that are looking for a C. 1. If the agenda is empty, get next word from the input, look up word (a) For any active edge of form X → X1 . ◦ CXn from p0 to p1, categories, add to agenda (as constituent spanning two postions). add a new active edge X → X1 . C ◦ Xn from p0 to p2. 2. Select a constituent from the agenda: constituent C from p1 to p2. (b) For any active edge of form X → X1 . Xn ◦ C from p0 to p1, add a new (completed) constituent of type X from p0 to p2 to 3. Insert C into the chart from position p1 to p2. the agenda. 4. For each rule in the grammar of form X → C X1 . Xn, add an active edge of form X → C ◦ X1 . Xn from p1 to p2. Slide CS474–19 Slide CS474–20 Grammar and Lexicon Grammar: 1. S → NP VP 3. NP → ART ADJ N 2. NP → ART N 4. VP → V NP Example [See .ppt slides] Lexicon: the: ART man: N, V old: ADJ, N boat: N Sentence: 1 The 2 old 3 man 4 the 5 boat 6 Slide CS474–21 Slide CS474–22 S (rule 1) NP2 (rule 3) VP2 (rule 4) NP1 (rule 2) VP1 NP1 (rule 2) Bottom-up Chart Parser The old man the boat. Is it any less naive than the top-down parser? 1 2 3 4 5 6 1. Only judges grammaticality.[fixed] ART1 ADJ1 N2 ART2 N3 V1 2. Stops when it finds a single derivation.[fixed] NP->ART . N NP->ART . N 3. No semantic knowledge employed. NP->ART . ADJ N NP->ART . ADJ N 4. No way to rank the derivations. NP -> ART ADJ . N 5. Problems with ungrammatical sentences.[better] S -> NP . VP VP -> V . NP 6. Terribly inefficient. S -> NP . VP Slide CS474–23 Slide CS474–24 Earley Algorithm: Top-Down Chart Parser Efficient Parsing For all S rules of the form S → X1 . Xk, add a (top-down) edge from n = sentence length 1 to 1 labeled: S → ◦X1 . Xk. Time complexity for naive algorithm: exponential in n Time complexity for bottom-up chart parser: &(n3) Do until there is no input left: 1. If the agenda is empty, look up word categories for next word, add Options for improving efficiency: to agenda. 1. Don’t do twice what you can do once. 2. Select a constituent from the agenda: constituent C from p1 to p2. 2. Don’t represent distinctions that you don’t need. 3. Using the (bottom-up) edge extension algorithm, combine C with Fall leaves fall and spring leaves spring. every active edge on the chart (adding C to chart as well). Add any new constituents to the agenda. 3. Don’t do once what you can avoid altogether. 4. For any active edges created in Step 3, add them to the chart using The can holds the water. (“can”: AUX, V, N) the top-down edge introduction algorithm.