LING 388: Language and Computers Sandiway Fong Lecture 15: 10/17.

Slides:



Advertisements
Similar presentations
November 2008NLP1 Natural Language Processing Definite Clause Grammars.
Advertisements

CSA4050: Advanced Topics in NLP Semantics IV Partial Execution Proper Noun Adjective.
LING 388: Language and Computers Sandiway Fong Lecture 15: 10/18.
LING 388: Language and Computers Sandiway Fong Lecture 22.
LING 388: Language and Computers Sandiway Fong Lecture 28 12/1.
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.
LING 388: Language and Computers Sandiway Fong Lecture 24: 11/16.
DEFINITE CLAUSE GRAMMARS Ivan Bratko University of Ljubljana Faculty of Computer and Information Sc.
Natural Language Processing DCG and Syntax NLP DCG A “translation” example: special case A DCG recogniser.
LING 364: Introduction to Formal Semantics Lecture 8 February 7th.
Natural Language Processing - Feature Structures - Feature Structures and Unification.
LING 388: Language and Computers Sandiway Fong Lecture 16: 10/20.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 7: 9/12.
LING/C SC/PSYC 438/538 Computational Linguistics Sandiway Fong Lecture 10: 9/27.
LING 388 Language and Computers Lecture 19 11/04/03 Sandiway FONG.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 9: 9/21.
LING 364: Introduction to Formal Semantics
LING 388: Language and Computers Sandiway Fong Lecture 21: 11/7.
LING/C SC/PSYC 438/538 Computational Linguistics Sandiway Fong Lecture 8: 9/18.
LING 438/538 Computational Linguistics Sandiway Fong Lecture 22: 11/15.
LING 388: Language and Computers Sandiway Fong Lecture 20: 11/2.
LING 364: Introduction to Formal Semantics Lecture 4 January 24th.
LING 388: Language and Computers Sandiway Fong Lecture 23: 11/14.
LING 388: Language and Computers Sandiway Fong Lecture 14: 10/13.
LING/C SC/PSYC 438/538 Computational Linguistics Sandiway Fong Lecture 9: 9/25.
 Christel Kemke 2007/08 COMP 4060 Natural Language Processing Feature Structures and Unification.
LING 388 Language and Computers Lecture 10 10/2/03 Sandiway FONG.
LING 388 Language and Computers Take-Home Final Examination 12/9/03 Sandiway FONG.
LING 364: Introduction to Formal Semantics Lecture 7 February 2nd.
LING 388 Language and Computers Lecture 20 11/6/03 Sandiway FONG.
LING 388 Language and Computers Lecture 18 10/30/03 Sandiway FONG.
LING 388: Language and Computers Sandiway Fong Lecture 17: 10/25.
LING 388 Language and Computers Lecture 16 10/23/03 Sandiway FONG.
LING 388: Language and Computers Sandiway Fong Lecture 16: 10/19.
LING 388 Language and Computers Lecture 9 9/30/03 Sandiway FONG.
CS 4705 Lecture 11 Feature Structures and Unification Parsing.
LING 388 Language and Computers Lecture 13 10/14/03 Sandiway FONG.
LING 388: Language and Computers Sandiway Fong Lecture 17: 10/24.
LING 364: Introduction to Formal Semantics Lecture 5 January 26th.
LING 388 Language and Computers Lecture 17 10/28/03 Sandiway FONG.
LING 388: Language and Computers Sandiway Fong Lecture 13: 10/10.
LING 388: Language and Computers Sandiway Fong Lecture 19: 11/1.
LING 388 Language and Computers Lecture 12 10/9/03 Sandiway FONG.
LING 388 Language and Computers Lecture 15 10/21/03 Sandiway FONG.
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.
October 2004csa4050: Semantics II1 CSA4050: Advanced Topics in NLP Semantics II The Lambda Calculus Semantic Representation Encoding in Prolog.
1 Features and Unification Chapter 15 October 2012 Lecture #10.
LING 388: Language and Computers Sandiway Fong Lecture 14 10/11.
LING 388: Language and Computers Sandiway Fong Lecture 17.
LING 388: Language and Computers Sandiway Fong Lecture 27.
For Friday Finish chapter 23 Homework: –Chapter 22, exercise 9.
LING 388: Language and Computers Sandiway Fong Lecture 7.
LING/C SC/PSYC 438/538 Lecture 14 Sandiway Fong. Administrivia Midterm – This Wednesday – A bit like doing a homework in real time – Bring your laptop.
LING 388: Language and Computers Sandiway Fong Lecture 15 10/13.
LING 388: Language and Computers Sandiway Fong Lecture 18.
LING 388: Language and Computers Sandiway Fong Lecture 21 11/3.
LING 388: Language and Computers Sandiway Fong Lecture 10.
LING 388: Language and Computers Sandiway Fong Lecture 13.
LING 388: Language and Computers Sandiway Fong Lecture 12.
LING 388: Language and Computers Sandiway Fong Lecture 11: 10/4.
Rules, Movement, Ambiguity
LING/C SC/PSYC 438/538 Lecture 20 Sandiway Fong 1.
LING 388: Language and Computers Sandiway Fong Lecture 16.
LING/C SC/PSYC 438/538 Lecture 19 Sandiway Fong 1.
Natural Language Processing
LING/C SC/PSYC 438/538 Lecture 21 Sandiway Fong.
LING/C SC/PSYC 438/538 Lecture 22 Sandiway Fong.
LING/C SC/PSYC 438/538 Lecture 24 Sandiway Fong.
Presentation transcript:

LING 388: Language and Computers Sandiway Fong Lecture 15: 10/17

Administrivia Homework #4 –acknowledgements to be sent out soon...

Last Time: Lab Class original DCG –sentence --> np, vp. –vp --> verb, np. –verb --> [took]. –np --> det, [man]. –np --> det, [book]. –det --> [the]. revised DCG: tree representation –sentence(s(NP,VP)) --> np(NP), vp(VP). –vp(vp(V,NP)) --> verb(V), np(NP). –verb(v(took)) --> [took]. –np(np(D,man)) --> det(D), [man]. –np(np(D,book)) --> det(D), [book]. –det(det(the)) --> [the]. s(np(det(the),man),vp(v(took),np(det(the),man))) original query ?- sentence(List,[]). query (with an extra argument) ?- sentence(P,List,[]). –P = parse tree –List = sentence

Last Time: Lab Class query –what parse P corresponds to the sentence “the man took the book”? –?- sentence(P,[the,man,too k,the,book],[]). –P = s(np(det(the),man),vp(v (took),np(det(the),book ))) ? ; –no query –what are the possible parses P and word X for the sentence “the man took the X”? ?- sentence(P,[the,man,took,th e,X],[]). P = s(np(det(the),man),vp(v(too k),np(det(the),man))), X = man ? ; P = s(np(det(the),man),vp(v(too k),np(det(the),book))), X = book ? ; no

Last Time: Lab Class add new rule –“kicked the bucket” is a VP idiom meaning “died” –vp(vp(v(died))) --> [kicked,the,bucket]. –example illustrates the ability to return any parse we like for a given rule query –what are the possible parses for “the man kicked the bucket”? ?- sentence(Parse,[the,man,kicked,the,bucket],[]). Parse = s(np(det(the),man),vp(v(died)) ) ? ; no –idiomatic meaning only

Last Time: Lab Class add new rules –for “kicked” and “bucket” as a verb and noun, respectively –verb(v(kicked)) --> [kicked]. –np(np(D,bucket)) --> det(D), [bucket]. –provides the ability to return the literal parse for “kicked the bucket” query –what are the possible parses for “the man kicked the bucket”? –?- sentence(Parse,[the,man,kicked,the,bucket],[]). –Parse = s(np(det(the),man),vp(v(kicked),np(det(the),bucket))) ? ; –Parse = s(np(det(the),man),vp(v(died))) ? ; –no –both idiomatic and literal meanings are now possible

A Note on Encoding Idioms Our ability to handle the idiom neatly depends on the fact that the idiom is a constituent –this means we can encode it in just one rule Example: –“kicked the bucket” is a VP idiom meaning “died” –vp(vp(v(died))) --> [kicked,the,bucket]. –very common... V + Object(s) –call it a day –jump the gun –walk the plank –turn the other cheek Asymmetry: Subject+V idioms are practically non-existent –The vultures appear to be circling NP[Linguist List, Vol-4-43] sentence --> np, vp. vp --> verb, np. verb --> [took]. np --> det, [man]. np --> det, [book]. det --> [the].

Extra Argument(s) used to hold the parse tree we can have multiple extra arguments in grammar rules –there are other uses... e.g. agreement

Another Grammar example –s(s(Y,Z)) --> np(Y), vp(Z). –np(np(Y)) --> pronoun(Y). –np(np(det(the),n(ball))) --> [the,ball]. –pronoun(i) --> [i]. –pronoun(we) --> [we]. –vp(vp(Y)) --> unergative(Y). –vp(vp(Y,Z)) --> transitive(Y), np(Z). –unergative(v(ran)) --> [ran]. –transitive(v(hit)) --> [hit]. query –?- s(X,[john,hit,the,ball],[]). Result: parse tree

Another Grammar example parses s npvp vnp detn the ball hit i s npvp v ran we ?- s(X,[we,ran],[]). X = s(np(we),vp(v(ran))) ?- s(X,[i,hit,the,ball],[]). X = s(np(i),vp(v(hit),np(det(the),n(ball))))

Determiner-Noun Agreement idea –we can also use the extra argument to enforce constraints between constituents within a DCG rule example –English determiner-noun number agreement –data the man the men a man *a men –lexical features man [singular] men [plural]

Determiner-Noun Agreement data –the man/men –a man/*a men grammar –s(s(Y,Z)) --> np(Y), vp(Z). –np(np(Y)) --> pronoun(Y). –np(np(det(the),n(ball))) --> [the,ball]. –pronoun(i) --> [i]. –pronoun(we) --> [we]. –vp(vp(Y)) --> unergative(Y). –vp(vp(Y,Z)) --> transitive(Y), np(Z). –unergative(v(ran)) --> [ran]. –transitive(v(hit)) --> [hit]. np --> det, common_noun. det --> [the]. det --> [a]. common_noun--> [ball]. common_noun--> [man]. common_noun --> [men]. np --> det, common_noun. det --> [the]. det --> [a]. common_noun--> [ball]. common_noun--> [man]. common_noun --> [men].

Determiner-Noun Agreement data –the man/men –a man/*a men grammar –s(s(Y,Z)) --> np(Y), vp(Z). –np(np(Y)) --> pronoun(Y). –np(np(det(the),n(ball))) --> [the,ball]. –pronoun(i) --> [i]. –pronoun(we) --> [we]. –vp(vp(Y)) --> unergative(Y). –vp(vp(Y,Z)) --> transitive(Y), np(Z). –unergative(v(ran)) --> [ran]. –transitive(v(hit)) --> [hit]. np --> det, common_noun. det --> [the]. det --> [a]. common_noun--> [ball]. common_noun--> [man]. common_noun --> [men]. np(np(D,N)) --> det(D), common_noun(N). det(det(the)) --> [the]. det(det(a)) --> [a]. common_noun(n(ball)) --> [ball]. common_noun(n(man)) --> [man]. common_noun(n(men)) --> [men]. np(np(D,N)) --> det(D), common_noun(N). det(det(the)) --> [the]. det(det(a)) --> [a]. common_noun(n(ball)) --> [ball]. common_noun(n(man)) --> [man]. common_noun(n(men)) --> [men].

Determiner-Noun Agreement data –the man/men –a man/*a men grammar –s(s(Y,Z)) --> np(Y), vp(Z). –np(np(Y)) --> pronoun(Y). –np(np(D,N)) --> det(D), common_noun(N). –det(det(the)) --> [the]. –det(det(a)) --> [a]. –common_noun(n(ball)) --> [ball]. –common_noun(n(man)) --> [man]. –common_noun(n(men)) --> [men]. –pronoun(i) --> [i]. –pronoun(we) --> [we]. –vp(vp(Y)) --> unergative(Y). –vp(vp(Y,Z)) --> transitive(Y), np(Z). –unergative(v(ran)) --> [ran]. –transitive(v(hit)) --> [hit]. lexical features man [singular] men [plural] rules the can combine with singular or plural nouns a can combine only with singular nouns

Determiner-Noun Agreement data –the man/men –a man/*a men grammar (only the NP section shown here) –np(np(Y)) --> pronoun(Y). –np(np(D,N)) --> det(D), common_noun(N,Number). –det(det(the)) --> [the]. –det(det(a)) --> [a]. –common_noun(n(ball),sg) --> [ball]. –common_noun(n(man),sg) --> [man]. –common_noun(n(men),pl) --> [men]. –pronoun(i) --> [i]. –pronoun(we) --> [we]. idea specify singular ( sg ) and plural ( pl ) for common nouns using an extra argument rules the can combine with singular or plural nouns a can combine only with singular nouns common_noun now takes two extra arguments: 1.parse tree 2.number [ sg, pl ] Note: we therefore have to query common_noun with two extra arguments, e.g. common_noun(N,Number)

Determiner-Noun Agreement data –the man/men –a man/*a men grammar (NP section) –np(np(Y)) --> pronoun(Y). –np(np(D,N)) --> det(D,Number), common_noun(N,Number). –det(det(the),sg) --> [the]. –det(det(the),pl) --> [the]. –det(det(a),sg) --> [a]. –common_noun(n(ball),sg) --> [ball]. –common_noun(n(man),sg) --> [man]. –common_noun(n(men),pl) --> [men]. –pronoun(i) --> [i]. –pronoun(we) --> [we]. idea give determiners a number feature as well and make it agree with the noun rules the can combine with singular or plural nouns a can combine only with singular nouns

Determiner-Noun Agreement query –?- np(X,[the,men],[]). –Note: we need not start with non-terminal symbol s, –i.e. parse a full sentence –Prolog DCG rules can be independently accessed computation tree –?- np(X,[the,men],[]). X = np(D,N) ?- det(D,Number,[the,men],L). ?- common_noun(N,Number,L,[]). –?- det(D,Number,[the,men],L). Rule #3 D = det(the) Number = sg L = [men] –?- common_noun(N,sg,[men],[]). Rule #8 No –Retry (rule #3 led to failure) –?- det(D,Number,[the,men],L). Rule #4 D = det(the) Number = pl L = [men] –?- common_noun(N,pl,[men],[]). Rule #8 Yes N = n(men) X = np(det(the),n(men)) 1.np(np(Y)) --> pronoun(Y). 2.np(np(D,N)) --> det(D,Number), common_noun(N,Number). 3.det(det(the),sg) --> [the]. 4.det(det(the),pl) --> [the]. 5.det(det(a),sg) --> [a]. 6.common_noun(n(ball),sg) --> [ball]. 7.common_noun(n(man),sg) --> [man]. 8.common_noun(n(men),pl) --> [men]. 9.pronoun(i) --> [i]. 10.pronoun(we) --> [we].

Determiner-Noun Agreement data –the man/men –a man/*a men query –?- np(X,[a,men],[]). computation tree –?- np(X,[a,men],[]). X = np(D,N) ?- det(D,Number,[a,men],L). ?- common_noun(N,Number,L,[]). –?- det(D,Number,[a,men],L). Rule #5 D = det(a) Number = sg L = [men] –?- common_noun(N,sg,[men],[]). Rule #8 No 1.np(np(Y)) --> pronoun(Y). 2.np(np(D,N)) --> det(D,Number), common_noun(N,Number). 3.det(det(the),sg) --> [the]. 4.det(det(the),pl) --> [the]. 5.det(det(a),sg) --> [a]. 6.common_noun(n(ball),sg) --> [ball]. 7.common_noun(n(man),sg) --> [man]. 8.common_noun(n(men),pl) --> [men]. 9.pronoun(i) --> [i]. 10.pronoun(we) --> [we].

Determiner-Noun Agreement simplifying the grammar det(det(the),sg) --> [the]. det(det(the),pl) --> [the]. det(det(a),sg) --> [a]. grammar is ambiguous –we have two rules for determiner the –can see the effect in the computation tree retry needed to get “the men” to parse agreement rule (revisited): the can combine with singular or plural nouns i.e. the doesn’t care about the number of the noun modified DCG np(np(D,N)) --> det(D,Number), common_noun(N,Number). –det(det(the),_) --> [the]. Note: _ is a variable a variable is used because it matches anything (sg,pl) used underscore character because I don’t care about the name of the variable

Determiner-Noun Agreement revisit query –?- np(X,[the,men],[]). computation tree –?- np(X,[the,men],[]). X = np(D,N) ?- det(D,Number,[the,men],L). ?- common_noun(N,Number,L,[]). –?- det(D,Number,[the,men],L). Rule #3 D = det(the) Number = _ L = [men] –?- common_noun(N,_,[men],[]). Rule #7 Yes N = n(men) _ = pl X = np(det(the),n(men)) a computational advantage –no need for retry (ambiguity removed) 1.np(np(Y)) --> pronoun(Y). 2.np(np(D,N)) --> det(D,Number), common_noun(N,Number). 3.det(det(the),_) --> [the]. 4.det(det(a),sg) --> [a]. 5.common_noun(n(ball),sg) --> [ball]. 6.common_noun(n(man),sg) --> [man]. 7.common_noun(n(men),pl) --> [men]. 8.pronoun(i) --> [i]. 9.pronoun(we) --> [we].