LING 388: Language and Computers Sandiway Fong Lecture 7.

Slides:



Advertisements
Similar presentations
Artificial Intelligence: Natural Language and Prolog
Advertisements

Prolog programming....Dr.Yasser Nada. Chapter 8 Parsing in Prolog Taif University Fall 2010 Dr. Yasser Ahmed nada prolog programming....Dr.Yasser Nada.
CSA2050: DCG I1 CSA2050 Introduction to Computational Linguistics Lecture 8 Definite Clause Grammars.
LING 388: Language and Computers Sandiway Fong Lecture 5: 9/5.
LING 388: Language and Computers Sandiway Fong Lecture 5: 9/8.
CSA4050: Advanced Topics in NLP Semantics IV Partial Execution Proper Noun Adjective.
Grammars, constituency and order A grammar describes the legal strings of a language in terms of constituency and order. For example, a grammar for a fragment.
Grammars, Languages and Parse Trees. Language Let V be an alphabet or vocabulary V* is set of all strings over V A language L is a subset of V*, i.e.,
1 Grammars and Parsing Allen ’ s Chapters 3, Jurafski & Martin ’ s Chapters 8-9.
GRAMMAR & PARSING (Syntactic Analysis) NLP- WEEK 4.
LING 388: Language and Computers Sandiway Fong Lecture 9: 9/22.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 7: 9/12.
LING 388 Language and Computers Lecture 2 9/04/03 Sandiway FONG.
LING 364: Introduction to Formal Semantics Lecture 9 February 9th.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 9: 9/21.
LING 364: Introduction to Formal Semantics
LING 388 Language and Computers Lecture 8 9/25/03 Sandiway FONG.
LING 364: Introduction to Formal Semantics Lecture 4 January 24th.
LING/C SC/PSYC 438/538 Computational Linguistics Sandiway Fong Lecture 6: 9/6.
LING 388: Language and Computers Sandiway Fong Lecture 3: 8/29.
© Patrick Blackburn, Johan Bos & Kristina Striegnitz Lecture 7: Definite Clause Grammars Theory –Introduce context free grammars and some related concepts.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 6: 9/7.
LING 388 Language and Computers Lecture 18 10/30/03 Sandiway FONG.
LING 388: Language and Computers Sandiway Fong Lecture 17: 10/25.
1 Note As usual, these notes are based on the Sebesta text. The tree diagrams in these slides are from the lecture slides provided in the instructor resources.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 5: 9/5.
Chapter 3: Formal Translation Models
LING 364: Introduction to Formal Semantics Lecture 5 January 26th.
LING 388: Language and Computers Sandiway Fong Lecture 13: 10/10.
LING 388 Language and Computers Lecture 12 10/9/03 Sandiway FONG.
LING 388 Language and Computers Lecture 6 9/18/03 Sandiway FONG.
LING 388 Language and Computers Lecture 15 10/21/03 Sandiway FONG.
Context-Free Grammar CSCI-GA.2590 – Lecture 3 Ralph Grishman NYU.
LING 388: Language and Computers Sandiway Fong Lecture 8.
LING 388: Language and Computers Sandiway Fong 10/4 Lecture 12.
LING/C SC/PSYC 438/538 Lecture 19 Sandiway Fong 1.
LING 388: Language and Computers Sandiway Fong Lecture 11.
LING 388: Language and Computers Sandiway Fong Lecture 14 10/11.
ICS611 Introduction to Compilers Set 1. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
LING 388: Language and Computers Sandiway Fong Lecture 17.
For Friday Finish chapter 23 Homework: –Chapter 22, exercise 9.
CSI 3120, Grammars, page 1 Language description methods Major topics in this part of the course: –Syntax and semantics –Grammars –Axiomatic semantics (next.
LING 388: Language and Computers Sandiway Fong Lecture 6.
LING 388: Language and Computers Sandiway Fong Lecture 18.
A sentence (S) is composed of a noun phrase (NP) and a verb phrase (VP). A noun phrase may be composed of a determiner (D/DET) and a noun (N). A noun phrase.
CS Describing Syntax CS 3360 Spring 2012 Sec Adapted from Addison Wesley’s lecture notes (Copyright © 2004 Pearson Addison Wesley)
LING 388: Language and Computers Sandiway Fong Lecture 10.
October 2005csa3180: Parsing Algorithms 11 CSA350: NLP Algorithms Sentence Parsing I The Parsing Problem Parsing as Search Top Down/Bottom Up Parsing Strategies.
Syntax Why is the structure of language (syntax) important? How do we represent syntax? What does an example grammar for English look like? What strategies.
For Wednesday Read chapter 23 Homework: –Chapter 22, exercises 1,4, 7, and 14.
Semantic Construction lecture 2. Semantic Construction Is there a systematic way of constructing semantic representation from a sentence of English? This.
LING 388: Language and Computers Sandiway Fong Lecture 12.
LING 388: Language and Computers Sandiway Fong Lecture 11: 10/4.
Rules, Movement, Ambiguity
csa3050: Parsing Algorithms 11 CSA350: NLP Algorithms Parsing Algorithms 1 Top Down Bottom-Up Left Corner.
LING/C SC/PSYC 438/538 Lecture 15 Sandiway Fong. Did you install SWI Prolog?
LING/C SC/PSYC 438/538 Lecture 20 Sandiway Fong 1.
LING 388: Language and Computers Sandiway Fong Lecture 16.
Parsing and Code Generation Set 24. Parser Construction Most of the work involved in constructing a parser is carried out automatically by a program,
Programming Languages and Design Lecture 2 Syntax Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
LING/C SC/PSYC 438/538 Lecture 16 Sandiway Fong. SWI Prolog Grammar rules are translated when the program is loaded into Prolog rules. Solves the mystery.
GRAMMARS & PARSING. Parser Construction Most of the work involved in constructing a parser is carried out automatically by a program, referred to as a.
NLP. Introduction to NLP #include int main() { int n, reverse = 0; printf("Enter a number to reverse\n"); scanf("%d",&n); while (n != 0) { reverse =
Formal grammars A formal grammar is a system for defining the syntax of a language by specifying sequences of symbols or sentences that are considered.
Chapter 3 – Describing Syntax CSCE 343. Syntax vs. Semantics Syntax: The form or structure of the expressions, statements, and program units. Semantics:
Natural Language Processing
LING/C SC/PSYC 438/538 Lecture 21 Sandiway Fong.
LING/C SC/PSYC 438/538 Lecture 17 Sandiway Fong.
LING/C SC/PSYC 438/538 Lecture 20 Sandiway Fong.
Lecture 7: Definite Clause Grammars
Presentation transcript:

LING 388: Language and Computers Sandiway Fong Lecture 7

Administrivia Today’s Topics 1.Exercise 2 from last time 2.Grammar rules using Prolog

Exercise 2 Exercise 4.5: database tran(eins,one). tran(zwei,two). tran(drei,three). tran(vier,four). tran(fuenf,five). tran(sechs,six). tran(sieben,seven). tran(acht,eight). tran(neun,nine). Write a predicate listtran(G,E) which translates a list of German number words to the corresponding list of English number words. For example: ?- listtran([eins,neun,zwei],X). X = [one,nine,two] ?- listtran(X,[one,seven,six,two]). X = [eins,sieben,sechs,zwei]

Exercise 2 German/English word list translation Part 1: what is the base case? – The empty list … – Write the Prolog code –listtran([],[]).

Exercise 2 German/English word list translation Part 2: what is the recursive case? – Given two lists [G|L1] for German and [E|L2] for English, what needs to be recursively true… – Write the Prolog code listtran([G|L1],[E|L2]) :- tran(G,E), listtran(L1,L2).

What is a grammar? informally – set of rules to parse or “diagram” a sentence example NP = Noun Phrase VP = Verb Phrase From a parse, we can extract a grammar

What is a grammar? example NP = Noun Phrase VP = Verb Phrase production (or grammar) rule format –LHS → RHS LHS = Left Hand Side → = “expands to” or “rewrites to” RHS = Right Hand Side example –Sentence → NP VP –VP → Verb NP –Verb → took –NP → the man –NP → the book Using a grammar, we can derive the parse tree

What is a grammar? example – Sentence → NP VP – VP → Verb NP – Verb → took – NP → the man – NP → the book derivation –top-down (one of many) 1.Sentence 2.NP VP 3.NP Verb NP 4.NP took NP 5.the man took NP 6.the man took the book derivation –top-down (alternative) 1.Sentence 2.NP VP 3.the man VP 4.the man Verb NP 5.the man took NP 6.the man took the book

What is a grammar? example – Sentence → NP VP – VP → Verb NP – Verb → took – NP → the man – NP → the book derivation –bottom-up (one of many) 1.the man took the book 2.NP took the book 3.NP Verb the book 4.NP Verb NP 5.NP VP 6.Sentence derivation –bottom-up (alternative) 1.the man took the book 2.the man took NP 3.the man Verb NP 4.the man VP 5.NP VP 6.Sentence

What is a grammar? example – Sentence → NP VP – VP → Verb NP – Verb → took – NP → the man – NP → the book this grammar can generate more than one sentence examples –the man took the book –#the book took the man# = semantically odd –other sentences? add new rule –Verb → bought examples –the man took the book –the man bought the book –#the book took the man# = semantically odd –#the book bought the man

What is a grammar? example – Sentence → NP VP – VP → Verb NP – Verb → took – NP → the man – NP → the book formally: a grammar contains the following 4 things – a set of non-terminal symbols (N) a set of terminal symbols (T) production rules (P) of the form a designated start symbol (S) example –Non-terminals: {Sentence,VP,NP,Verb} –Terminals: {the,man,book,took} –Start symbol: Sentence –Production rules:set of LHS → RHS rules

Prolog Grammar Rules Good news! – Prolog supports grammar rules – it knows how to interpret them (directly) – it can use the grammar rules to construct a derivation automatically Prolog’s computation rule implies a top-down, left-to-right derivation knowing the order will be important when we deal with left and right recursive rules knowing the order will be important when we deal with left and right recursive rules

Prolog Grammar Rules Prolog’s version of grammar rules = Definite Clause Grammar (DCG) Prolog’s format – terminals and non-terminal symbols both begin with lowercase letters e.g. sentence, vp, np, book, took Note: variables begin with an uppercase letter (or underscore) – --> is the rewrite symbol – terminals are enclosed in square brackets to distinguish them from non-terminals (list notation) e.g. [the], [book], [took] list of terminals are possible, e.g. [good,luck] – comma (, ) is the concatenation symbol – semicolon ( ; ) is the disjunction symbol – a period (. ) is required at the end of all DCG rules

Prolog Grammar Rules example – Sentence → NP VP – VP → Verb NP – Verb → took – NP → the man – NP → the book Prolog DCG version –sentence --> np, vp. –vp --> verb, np. –verb --> [took]. –np --> [the], [man]. –np --> [the], [book]. Important Note –don’t enter these rules into the database using assert/1. –Must use a file and consult it. reason: Prolog needs to translate DCG rules into underlying (regular) Prolog rules

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> [the], [man]. – np --> [the], [book]. query format ?- sentence(S,[]). S = sentence (as a list) [] = empty list i.e. call the start symbol as a predicate and supply two arguments, a list and an empty list

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> [the], [man]. – np --> [the], [book]. example queries ?- sentence([the,man,took,the,book],[]). Yes “the man took the book” is a member of the language generated by the grammar ?- sentence([man,took,the,book],[]). No “man took the book” is not in the grammar “man took the book” is not generated by the grammar

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> [the], [man]. – np --> [the], [book]. other queries ?- sentence([the,man,took,X,book],[]). X = the ?- sentence(S,[]). S = [the, man, took, the, man] ; S = [the, man, took, the, book] ; S = [the, book, took, the, man] ; S = [the, book, took, the, book] ; No

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> [the], [man]. – np --> [the], [book]. notes –np --> [the,man]. OK –np --> [the,book]. OK more grammar det = determiner –np --> det, [man]. –np --> det, [book]. –det --> [the]. –det --> [a].

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> det, [man]. – np --> det, [book]. – det --> [the]. – det --> [a]. query ?- sentence(S,[]). generates 16 different answers for S 2 choices for deta, the 2 choices for head nounman, book total of 4 different choices for NP (a|(the))((man)|(book)) 2 choices for NPas subject, as object total = 4 2 = 16

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> det, [man]. – np --> det, [book]. – det --> [the]. – det --> [a]. query ?- sentence([the,man,took|L],[]). L = [the, man] ; L = [a, man] ; L = [the, book] ; L = [a, book] ; No 4 choices

Prolog Grammar Rules example – sentence --> np, vp. – vp --> verb, np. – verb --> [took]. – np --> det, [man]. – np --> det, [book]. – det --> [the]. – det --> [a]. query ?- sentence([X,man,took,X,book],[]). X = the ; X = a ; No 2 choices

Prolog Grammar Rules The computation rule for DCG rules – each time we look for a matching rule, we pattern- match against the database from the 1st rule on down example –sentence --> np, vp. –vp --> verb, np. –verb --> [took]. –np --> det, [man]. –np --> det, [book]. –det --> [the]. –det --> [a]. listing vp(A, B) :- verb(A, C), np(C, B). np(A, B) :- det(A, C), 'C'(C, man, B). np(A, B) :- det(A, C), 'C'(C, book, B). verb([took|A], A). det([the|A], A). det([a|A], A). sentence(A, B) :- np(A, C), vp(C, B).

Prolog Grammar Rules derivation ?- sentence([the,man,took,the,book],[]). Call: (7) sentence([the, man, took, the, book], []) ? creep Call: (8) np([the, man, took, the, book], _G353) ? creep Call: (9) det([the, man, took, the, book], _G353) ? creep Exit: (9) det([the, man, took, the, book], [man, took, the, book]) ? creep Call: (9) 'C'([man, took, the, book], man, _G357) ? creep Exit: (9) 'C'([man, took, the, book], man, [took, the, book]) ? creep Exit: (8) np([the, man, took, the, book], [took, the, book]) ? creep Call: (8) vp([took, the, book], []) ? creep Call: (9) verb([took, the, book], _G353) ? creep Exit: (9) verb([took, the, book], [the, book]) ? creep Call: (9) np([the, book], []) ? creep Call: (10) det([the, book], _G353) ? creep Exit: (10) det([the, book], [book]) ? creep Call: (10) 'C'([book], man, []) ? creep Fail: (10) 'C'([book], man, []) ? creep Redo: (10) det([the, book], _G353) ? creep Fail: (10) det([the, book], _G353) ? creep Redo: (9) np([the, book], []) ? creep Call: (10) det([the, book], _G353) ? creep Exit: (10) det([the, book], [book]) ? creep Call: (10) 'C'([book], book, []) ? creep Exit: (10) 'C'([book], book, []) ? creep Exit: (9) np([the, book], []) ? creep Exit: (8) vp([took, the, book], []) ? creep Exit: (7) sentence([the, man, took, the, book], []) ? creep Yes listing vp(A, B) :- verb(A, C), np(C, B). np(A, B) :- det(A, C), 'C'(C, man, B). np(A, B) :- det(A, C), 'C'(C, book, B). verb([took|A], A). det([the|A], A). det([a|A], A). sentence(A, B) :- np(A, C), vp(C, B).

Exercise Add grammar rules to handle: – I saw the boy with a telescope Test your grammar on (NB. have to add a lexical rule for me) – the boy with a telescope saw me