ling 388: language and computers sandiway fong lecture 21 11/3

23
LING 388: Language and Computers Sandiway Fong Lecture 21 11/3

Upload: isabella-felicia-price

Post on 02-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

LING 388: Language and Computers

Sandiway FongLecture 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-ga hon-o katta

(Japanese - canonical)– hon-o Taroo-ga katta

(Japanese - scrambled)

– *Taroo-ga katta hon-o

(English word order)

– ga = nominative case marker– o = accusative case marker

Japanese• example

– John bought a book– John a book bought– taroo-ga hon-o katta

– 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 nomcase acccasedo not create structure• order of np, transitive in the VPreflects 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’,[]).

1. s(s(Y,Z)) --> np(Y), nomcase, vp(Z).

2. vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y).

3. transitive(v(katta)) --> [katta].4. nomcase --> [ga].5. acccase --> [o].6. np(np(taroo)) --> [taroo].7. 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)))

1. s(s(Y,Z)) --> np(Y), nomcase, vp(Z).

2. vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y).

3. transitive(v(katta)) --> [katta].4. nomcase --> [ga].5. acccase --> [o].6. np(np(taroo)) --> [taroo].7. np(np(hon)) --> [hon].

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]

1. s(s(Y,Z)) --> np(Y), nomcase, vp(Z).

2. vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y).

3. transitive(v(katta)) --> [katta].4. nomcase --> [ga].5. acccase --> [o].6. np(np(taroo)) --> [taroo].7. np(np(hon)) --> [hon].

GeneratorSentence Parse tree

ParserSentence Parse tree

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,[]).

1. s(s(Y,Z)) --> np(Y), nomcase, vp(Z).

2. vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y).

3. transitive(v(katta)) --> [katta].4. nomcase --> [ga].5. acccase --> [o].6. np(np(taroo)) --> [taroo].7. 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|[]]

1. s(s(Y,Z)) --> np(Y), nomcase, vp(Z).

2. vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y).

3. transitive(v(katta)) --> [katta].4. nomcase --> [ga].5. acccase --> [o].6. np(np(taroo)) --> [taroo].7. 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]

1. s(s(Y,Z)) --> np(Y), nomcase, vp(Z).

2. vp(vp(Z,Y)) --> np(Z), acccase, transitive(Y).

3. transitive(v(katta)) --> [katta].4. nomcase --> [ga].5. acccase --> [o].6. np(np(taroo)) --> [taroo].7. 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”)» bought buy (untensed form)

John bought a bookJohn bought whatwhat John boughtwhat did John boughtwhat did John buy

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-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].– np(np(dare)) --> [dare].– np(np(nani)) --> [nani].

• allows sentences– Taroo-ga hon-o katta– Taroo-ga nani-o katta (ka)– dare-ga hon-o katta (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

JapaneseAlternative 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