1 / 16

LING 388: Language and Computers

LING 388: Language and Computers. Sandiway Fong Lecture 11: 10/4. Administrivia. Homework #2 has been graded you should get an email in a day or so Reservation (tentative) Lab class practice and homework #3 on context-free grammar parsing next Monday (11th October)

tiva
Download Presentation

LING 388: Language and Computers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LING 388: Language and Computers Sandiway Fong Lecture 11: 10/4

  2. Administrivia • Homework #2 • has been graded • you should get an email in a day or so • Reservation (tentative) • Lab class • practice and homework #3 on context-free grammar parsing • next Monday (11th October) • meet in SBS 224, Instructional Computing Lab (not here)

  3. Last Time • Context-Free Grammars (CFG) • from acceptor to parser • add an extra argument to grammar rules • x --> y, z. • x(x(Y,Z)) --> y(Y), z(Z). • extra argument changes the expressive power of the rules • regular grammar rules + extra argument  can handle the non-regular language anbn

  4. Today’s Topic • Context-free grammar technology + bells and whistles are at the core of parsing sentences • we’re going to keep exploring for the next few lectures how to implement natural language fragments • today: more on extra arguments ...

  5. Extra Argument and Phrase Structure • Grammar from Lecture #10: • 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

  6. s np vp s v np i np vp det n hit the ball v we ran Extra Argument and Phrase Structure • Examples: ?- 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))))

  7. Extra Argument and Determiner-Noun Agreement • Idea: • We can also use the extra argument to impose 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

  8. Extra Argument and 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].

  9. Extra Argument and 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].

  10. Extra Argument and Determiner-Noun Agreement • Lexical Features • man singular • men plural • Rules • the can combine with singular or plural nouns • a can combine only with singular nouns • 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].

  11. Extra Argument and Determiner-Noun Agreement • 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 • Data: • the man/men • a man/*a men • Grammar: (NP section) • 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),pl) --> [man]. • common_noun(n(men),pl) --> [men]. • pronoun(i) --> [i]. • pronoun(we) --> [we].

  12. Extra Argument and Determiner-Noun Agreement • 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 • 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),pl) --> [man]. • common_noun(n(men),pl) --> [men]. • pronoun(i) --> [i]. • pronoun(we) --> [we].

  13. Extra Argument and Determiner-Noun Agreement • 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),pl) --> [man]. • common_noun(n(men),pl) --> [men]. • pronoun(i) --> [i]. • pronoun(we) --> [we]. • 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))

  14. Extra Argument and Determiner-Noun Agreement • 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),pl) --> [man]. • common_noun(n(men),pl) --> [men]. • pronoun(i) --> [i]. • pronoun(we) --> [we]. • 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

  15. Extra Argument and Determiner-Noun Agreement • Simplifying the grammar: • det(det(the),sg) --> [the]. • det(det(the),pl) --> [the]. • det(det(a),sg) --> [a]. • Grammar is ambiguous: • 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 • DCG Rule: • np(np(D,N)) --> det(D,Number), common_noun(N,Number). • det(det(the),_) --> [the]. Note: _ is a variable used underscore character because I don’t care about the name of the variable

  16. Extra Argument and Determiner-Noun Agreement • np(np(Y)) --> pronoun(Y). • np(np(D,N)) --> det(D,Number), common_noun(N,Number). • det(det(the),_) --> [the]. • det(det(a),sg) --> [a]. • common_noun(n(ball),sg) --> [ball]. • common_noun(n(man),pl) --> [man]. • common_noun(n(men),pl) --> [men]. • pronoun(i) --> [i]. • pronoun(we) --> [we]. • 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)) • Advantage: • no need for retry (ambiguityremoved)

More Related