230 likes | 322 Views
LING 388: Language and Computers. Sandiway Fong Lecture 21 11/3. Predicate-Argument Structure. looking ahead... Predicate-argument mapping from language to language
E N D
LING 388: Language and Computers Sandiway Fong Lecture 21 11/3
Predicate-Argument Structure • looking ahead... • Predicate-argument mapping from language to language • simpler mapping than parse tree to parse tree because languages may differ greatly with respect to construction format and word order • Example 1 (Declarative case): • John bought a book bought(john,book) • Taroo-ga hon-o katta katta(taroo,hon) • Example 2 (Subject wh-Question): • Who bought a book bought(who,book) • dare-ga hon-o katta ka katta(dare,hon) • Example 3 (Object wh-Question): • What did John buy bought(john,what) • taroo-ga nani-o katta ka katta(taroo,nani)
New Topic • Let’s write a grammar for simple Japanese
Japanese • head-final language • we introduced the notion “head of a phrase” (see last lecture) • e.g. verb is the head of a verb phrase • hit the ball • ran • noun is the head of a noun phrase • the man (that I saw) • the old man • John’s mother • Japanese sentence word order (canonical) • Subject Object Verb • cf. English word order • Subject Verb Object
Japanese • head-final language • sentence word order (canonical) • Subject Object Verb (Japanese) • Subject Verb Object (English) • example • John bought a book (English) • John a book bought (Japanese word order) • Taroo-ga hon-o katta (Japanese) • case markers • ga = nominative case marker • o = accusative case marker • note: no determiner present in the Japanese sentence
Japanese • head-final language • sentence word order (canonical) • Subject Object Verb • Japanese also allows “scrambling” • e.g. object and subject can be switched in order • Subject Object Verb • Object Subject Verb • *Subject Verb Object (must still be head-final) • Example • John bought a book (English) • John a book bought • Taroo-gahon-okatta (Japanese - canonical) • hon-oTaroo-gakatta (Japanese - scrambled) • *Taroo-gakattahon-o (English word order) • ga= nominative case marker • o = accusative case marker
Japanese • example • John bought a book • John a book bought • taroo-gahon-okatta • ga = nominative case marker • o = accusative case marker • Parser input • (as a Prolog list with case markers separated) • [taroo,ga,hon,o,katta] • Example grammar rules • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon]. • note: • new nonterminals nomcaseacccase • do not create structure • order of np, transitive in the VP • reflects Japanese word order
Japanese • example • John a book bought • taroo-ga hon-o katta • ga = nominative case marker • o = accusative case marker • computation tree • ?- s(X,[taroo,ga,hon,o,katta],[]). • ?- np(Y,[taroo,ga,hon,o,katta],L1). • ?- nomcase(L1,L2). • ?- vp(Z,L2,[]). • ?- np(Y,[taroo,ga,hon,o,katta],L1). • Y = np(taroo) L1 = [ga,hon,o,katta] • ?- nomcase([ga,hon,o,katta],L2). • L2 = [hon,o,katta] • ?- vp(vp(Z’,Y’), [hon,o,katta],[]). Z = vp(Z’,Y’) • ?- np(Z’,[hon,o,katta],L1’). • ?- acccase(L1’,L2’). • ?- transitive(Y’,L2’,[]). • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon].
Japanese • example • John a book bought • taroo-ga hon-o katta • ga = nominative case marker • o = accusative case marker • computation tree • ?- vp(vp(Z’,Y’), [hon,o,katta],[]). • ?- np(Z’,[hon,o,katta],L1’). • ?- acccase(L1’,L2’). • ?- transitive(Y’,L2’,[]). • ?- np(Z’,[hon,o,katta],L1’) • Z’ = np(hon) L1’ = [o,katta] • ?- acccase([o,katta],L2’). • L2’ = [katta] • ?- transitive(Y’,[katta],[]). • Y’ = v(katta) • answer • ?- s(X,[taroo,ga,hon,o,katta],[]). • X = s(np(taroo), vp(np(hon), v(katta))) • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon].
Parser Sentence Parse tree Generator Sentence Parse tree Japanese • example • John a book bought • taroo-ga hon-o katta • ga = nominative case marker • o = accusative case marker • grammar • can be run “backwards” for sentence generation • we’ll need this • query • ?- s(s(np(taroo), vp(np(hon), v(katta))),L,[]). • L = [taroo, ga, hon, o, katta] • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon].
Japanese • example • John a book bought • taroo-ga hon-o katta • ga = nominative case marker • o = accusative case marker • query (generation) • ?- s(s(np(taroo),vp(np(hon),v(katta))),L,[]). • Y = np(taroo) Z = vp(np(hon),v(katta))) • ?- np(np(taroo),L,L1). • ?- nomcase(L1,L2). • ?- vp(vp(np(hon),v(katta))),L2,[]). • ?- np(np(taroo),L,L1). • L = [taroo|L1] • ?- nomcase(L1,L2). • L1 = [ga|L2] • ?- vp(vp(np(hon),v(katta))),L2,[]). • Z’ = np(hon) Y’ = v(katta) • ?- np(np(hon),L2,L3). • ?- acccase(L3,L4). • ?- transitive(v(katta),L4,[]). • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon].
Japanese • example • John a book bought • taroo-ga hon-o katta • ga = nominative case marker • o = accusative case marker • query (generation) • ?- vp(vp(np(hon),v(katta))),L2,[]). • Z’ = np(taroo) Y’ = v(katta) • ?- np(np(hon),L2,L3). • ?- acccase(L3,L4). • ?- transitive(v(katta),L4,[]). • ?- np(np(hon),L2,L3). • L2 = [hon|L3] • ?- acccase(L3,L4). • L3 = [o|L4] • ?- transitive(v(katta),L4,[]). • L4 = [katta|[]] • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon].
Japanese • example • John a book bought • taroo-ga hon-o katta • ga = nominative case marker • o = accusative case marker • query (generation) • back-substituting ... • ?- np(np(taroo),L,L1). • L = [taroo|L1] • ?- nomcase(L1,L2). • L1 = [ga|L2] • ?- np(np(hon),L2,L3). • L2 = [hon|L3] • ?- acccase(L3,L4). • L3 = [o|L4] • ?- transitive(v(katta),L4,[]). • L4 = [katta|[]] • answer • L = [taroo, ga, hon, o, katta] • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon].
Japanese • wh-NP phrases • English • examples • John bought a book • Who bought a book? (subject wh-phrase) • *John bought what? (echo-question only) • What did John buy? (object wh-phrase) • object wh-phrase case • complex operation required from the declarative form: • object wh-phrase must be fronted • do-support (insertion of past tense form of “do”) • boughtbuy (untensed form) what did John buy what did John bought what John bought John bought what John bought a book
Japanese • wh-NP phrases • English • Who bought a book? (subject wh-phrase) • *John bought what? (only possible as an echo-question) • What did John buy? (object wh-phrase) • Japanese • wh-in-situ: • meaning wh-phrase appears in same position as a regular noun phrase • easy to implement! (no complex series of operations) • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who
Japanese • wh-in-situ: • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who • grammar • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon]. • add new wh-words • np(np(dare)) --> [dare]. • np(np(nani)) --> [nani].
Japanese • wh-in-situ: • taroo-ganani-okatta ka • nani: means what • ka: sentence-final question particle • dare-gahon-okatta ka • dare: means who • grammar • s(s(Y,Z)) --> np(Y), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo)) --> [taroo]. • np(np(hon)) --> [hon]. • np(np(dare)) --> [dare]. • np(np(nani)) --> [nani]. • allows sentences • Taroo-gahon-okatta • Taroo-ganani-okatta (ka) • dare-gahon-okatta (ka) • Assuming for simplicity that a sentence-final particle is required for wh-questions… • How do we enforce the constraint that ka is obligatory when a wh-phrase is in the sentence?
Japanese • wh-in-situ: • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who • grammar • s(s(Y,Z)) --> np(Y,Q), nomcase, vp(Z). • vp(vp(Z,Y)) --> np(Z,Q), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo),notwh) --> [taroo]. • np(np(hon),notwh) --> [hon]. • np(np(dare),wh) --> [dare]. • np(np(nani),wh) --> [nani]. • answer • employ an extra argument to encode the lexical feature wh (with values wh, notwh) for nouns
Japanese • wh-in-situ: • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who • grammar • s(s(Y,Z)) --> np(Y,Q1), nomcase, vp(Z,Q2). • vp(vp(Z,Y),Q) --> np(Z,Q), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo),notwh) --> [taroo]. • np(np(hon),notwh) --> [hon]. • np(np(dare),wh) --> [dare]. • np(np(nani),wh) --> [nani]. • answer • employ an extra argument to encode the lexical feature wh for nouns • propagate this feature up to the (top) sentence rule • means adding extra argument Q to the VP nonterminal
Japanese • wh-in-situ: • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who • grammar • s(s(Y,Z)) --> np(Y,Q1), nomcase, vp(Z,Q2), sf(Q1,Q2). • vp(vp(Z,Y),Q) --> np(Z,Q), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo),notwh) --> [taroo]. • np(np(hon),notwh) --> [hon]. • np(np(dare),wh) --> [dare]. • np(np(nani),wh) --> [nani]. • answer • employ an extra argument to encode the lexical feature wh for nouns • propagate this feature up to the s rule • add a sentence-final particle rule (sf) that generates ka when this feature is wh
Japanese • wh-in-situ: • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who • grammar • s(s(Y,Z)) --> np(Y,Q1), nomcase, vp(Z,Q2), sf(Q1,Q2). • vp(vp(Z,Y),Q) --> np(Z,Q), acccase, transitive(Y). • transitive(v(katta)) --> [katta]. • nomcase --> [ga]. • acccase --> [o]. • np(np(taroo),notwh) --> [taroo]. • np(np(hon),notwh) --> [hon]. • np(np(dare),wh) --> [dare]. • np(np(nani),wh) --> [nani]. • sentence-final particle rule (sf/2) • sf(wh,notwh) --> [ka]. • sf(notwh,wh) --> [ka]. • sf(notwh,notwh) --> []. (empty) • sf(wh,wh) --> [ka]. (example:dare-ga nani-o katta ka: who bought what)
Japanese • wh-in-situ: • taroo-ga nani-o katta ka • nani: means what • ka: sentence-final question particle • dare-ga hon-o katta ka • dare: means who • computation tree • ?- s(X,[taroo,ga,nani,o,katta,ka],[]). • X = s(np(taroo),vp(np(nani),v(katta))) • ?- s(X,[taroo,ga,nani,o,katta],[]). • no s(s(Y,Z)) --> np(Y,Q1), nomcase, vp(Z,Q2), sf(Q1,Q2). vp(vp(Z,Y),Q) --> np(Z,Q), acccase, transitive(Y). transitive(v(katta)) --> [katta]. nomcase --> [ga]. acccase --> [o]. np(np(taroo),notwh) --> [taroo]. np(np(hon),notwh) --> [hon]. np(np(dare),wh) --> [dare]. np(np(nani),wh) --> [nani]. sf(wh,notwh) --> [ka]. sf(notwh,wh) --> [ka]. sf(notwh,notwh) --> []. sf(wh,wh) --> [ka]. we may want to modifiy the parse tree to represent the sentence-final particle ka as well
Japanese Alternative implementations… • so far, we used: • s(s(Y,Z)) --> np(Y,Q1), nomcase, vp(Z,Q2), sf(Q1,Q2). • could have written • s(s(Y,Z)) --> np(Y,notwh), nomcase, vp(Z,notwh). • s(s(Y,Z)) --> np(Y,Q1), nomcase, vp(Z,Q2), {\+ Q1=notwh ; \+ Q2=notwh}, sf. • sf --> [ka]. • or • s(s(Y,Z)) --> np(Y,notwh), nomcase, vp(Z,notwh). • s(s(Y,Z,ka)) --> np(Y,Q1), nomcase, vp(Z,Q2), {\+ Q1=notwh ; \+ Q2=notwh}, sf. • sf --> [ka]. • generates different structures for declarative vs. wh-NP questions