ling 388: language and computers sandiway fong lecture 15 10/13
TRANSCRIPT
LING 388: Language and Computers
Sandiway Fong
Lecture 15
10/13
Administrivia
• Reminder– Homework 5 due next Monday
Today’s Topic
• case study– How to implement the passive construction in a
traditional grammar framework• verb inflection• constraints between auxiliary and main verbs• subcategorization and adjuncts
Example Grammar
• grammar so far – including extra arguments for parse tree – and simple determiner-noun agreement– s(s(Y,Z)) --> np(Y), vp(Z). – 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),sg) --> [man].– common_noun(n(men),pl) --> [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].
• query– ?- s(X,Sentence,[]). Sentence = Prolog list of words
all rules take one extra argument for the parse treehoweverdet and common_nountake two extra arguments:one for the parse treeand one for Number
only one extra argument for the parse tree
verb classes
Passivization
• in English...• passivization applies only to transitive verbs
– I hit the ball (active)– the ball was hit (passive)
transitive(v(hit)) --> [hit].
• i.e. passivization should only apply to verbs encoded in the grammar using the transitive non-terminal
• not for unaccusative or unergative verbs– I arrived– *I was arrived
unaccusative(v(arrived)) --> [arrived].
– We ran– *We were ran/run
unergative(v(ran)) --> [ran].
Passivization
• simple phrase structure– I hit the ball (active)– the ball was hit (passive) A first pass
(simplistic non-movement account)
s
np vp
v np
det n
the ball
hit
i
s
aux
vp
v
np
det n
the ball hitwas
avoiding empty categories for simplicity (can be added, see later slide): the ball was hit e
[the ball]i was hit ti
Passivization
• phrase structure– the ball was hit (passive)
• rules (active sentence)– s(s(Y,Z)) --> np(Y), vp(Z).– vp(vp(Y,Z)) --> transitive(Y), np(Z).– transitive(v(hit)) --> [hit].
• new rules (passive sentence)– vp(vp(A,V)) --> aux(A), transitive(V).
– aux(aux(was)) --> [was].
s
aux
vp
v
np
det n
the ball hitwas
Passivization1. s(s(Y,Z)) --> np(Y), vp(Z). 2. np(np(Y)) --> pronoun(Y).3. np(np(D,N)) --> det(D,Number),
common_noun(N,Number).4. det(det(the),_) --> [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].11. vp(vp(A,V)) --> aux(A), transitive(V). 12. vp(vp(Y)) --> unergative(Y). 13. vp(vp(Y,Z)) --> transitive(Y), np(Z).14. unergative(v(ran)) --> [ran].15. transitive(v(hit)) --> [hit].16. aux(aux(was)) --> [was].
• query– ?- s(X,[the,ball,was,hit],[]).
• computation tree– ?- s(X,[the,ball,was,hit],[]).
• ?- np(Y,[the,ball,was,hit],L).• ?- vp(Z,L,[]).
– ?- np(Y,[the,ball,was,hit],L).• Y=np(det(the),n(ball)) L=[was,hit]
– ?- vp(vp(A,V),[was,hit],[]).• ?- aux(A,[was,hit],L’).• ?- transitive(V,L’,[]).
– ?- aux(A,[was,hit],L’).• A=aux(was) L’=[hit]
– ?- transitive(V,[hit],[]).• V=v(hit)
• X=s(np(det(the),n(ball)),vp(aux(was),v(hit)))
Passivization
• We are (free to) modify the parse for the VP constituent to include items not found in the input– sometimes this can be very useful– e.g. there are good linguistic reasons why we might prefer to
write– vp(vp(Aux,vp(V,np(trace))),Number) --> aux(Aux,Number),
transitive(V,Ending), {Ending = en}.
instead, which produces:s
aux
vp
v
np
det n
the ball
hit
was
vp
np
trace
Passive Morphology
• verbal inflection– hit eat– hits eats (-s)– hit ate (-ed)– hit eaten (-en)
• verbal inflection and passive morphology• rule: (passive) be V-en
– was hit (ambiguous between -ed and -en)– *was ate (-ed)– was eaten (-en)
• how to implement this restriction?– vp(vp(A,V)) --> aux(A), transitive(V).
• idea– use an extra argument to indicate the verb form for transitive
other morphological rules(progressive) be V-inge.g. was eating(passive+progressive)e.g. was being eaten
Passive Morphology
• verbal inflection– eat (root)– eats (-s)– ate (-ed)– eaten (-en)
• use an extra argument to signal the inflected form, e.g.– transitive(v(eat),root) --> [eat].– transitive(v(eat-s),s) --> [eats].– transitive(v(eat-ing),ing) --> [eating].– transitive(v(eat-ed),ed) --> [ate].– transitive(v(eat-en),en) --> [eaten].
• original rule– vp(vp(A,V)) --> aux(A), transitive(V).
• modified rule– vp(vp(A,V)) --> aux(A), transitive(V,en).equivalentlyvp(vp(A,V)) --> aux(A), transitive(V,Ending),
{Ending=en}.
Constraint for -en realized by Prolog pattern-matching
Passive Morphology
• grammar rules (partial)– transitive(v(eat),root) --> [eat].– transitive(v(eats),s) --> [eats].– transitive(v(ate),ed) --> [ate].– transitive(v(eaten),en) --> [eaten].– vp(vp(A,V)) --> aux(A), transitive(V,en).– aux(aux(was)) --> [was].
• query– ?- vp(X,[was,eaten],[]).
• computation tree– ?- vp(X,[was,eaten],[]). X=vp(A,V)
• ?- aux(A,[was,eaten],L).• ?- transitive(V,en,L,[]).
– ?- aux(A,[was,eaten],L).• A=aux(was) L=[eaten]
– ?- transitive(V,en,[eaten],[]).• V=v(eaten)
example: was eaten
Passive Morphology
• grammar rules (partial)– transitive(v(eat),root) --> [eat].– transitive(v(eats),s) --> [eats].– transitive(v(ate),ed) --> [ate].– transitive(v(eaten),en) --> [eaten].– vp(vp(A,V)) --> aux(A), transitive(V,en).– aux(aux(was)) --> [was].
• query– ?- vp(X,[was,ate],[]).
• computation tree– ?- vp(X,[was,ate],[]). X=vp(A,V)
• ?- aux(A,[was,ate],L).• ?- transitive(V,en,L,[]).
– ?- aux(A,[was,ate],L).• A=aux(was) L=[ate]
– ?- transitive(V,en,[ate],[]).• No
example: *was ate
attemptedmatch fails
Subject in By-Phrase
• phrase structure– I hit the ball (active)– the ball was hit (passive)– the ball was hit by me (passive + subject in by-phrase)
optional prepositional phrase (PP)is adjoined to the verb phrase (VP)
s
aux
vp
v
np
det n
the ball
hitwas
vp pp
p np
by me
s
aux
vp
v
np
det n
the ball hitwas
Subject in By-Phrase • phrase structure
– I hit the ball (active)– the ball was hit (passive)– the ball was hit by me (passive + subject in by-phrase)
• add PP rules– pp(pp(P,NP)) --> preposition(P), np(NP).– preposition(p(by)) --> [by].
• add VP adjunction rule– vp(vp(VP,PP)) --> vp(VP), pp(PP).
• add pronoun rule– np(np(Y)) --> pronoun(Y).– pronoun(i) --> [i].– pronoun(we) --> [we].– pronoun(me) --> [me].
• there is a Case Constraint – (not implemented here)– by me– *by I– *me hit the ball
s
aux
vp
v
np
det n
the ball
hitwas
vp pp
p np
by me
Other Constraints
• examples– I hit the ball (active)– the ball was hit (passive)– the ball was hit by me (passive + by-phrase)– *the ball were hit by me– *the balls was hit by me – the balls were hit by me
• Subject-Verb Agreement Rule– subject must agree with the verb for number
– np(np(D,N)) --> det(D,Number), common_noun(N,Number).– common_noun(n(ball),sg) --> [ball].– common_noun(n(balls),pl) --> [balls].
– np(np(D,N),Number) --> det(D,Number), common_noun(N,Number).
s
aux
vp
v
np
det n
the ballballs
hitwaswere
Other Constraints
• examples– the ball was hit by me (passive + by-phrase)– *the ball were hit by me– *the balls was hit by me – the balls were hit by me
• Subject-Verb Agreement Rule– subject must agree with the verb for number
– must propagate number feature up the tree!
– np(np(D,N),Number) --> det(D,Number),common_noun(N,Number). – common_noun(n(ball),sg) --> [ball].– common_noun(n(balls),pl) --> [balls].
– s(s(Y,Z)) --> np(Y,Number), vp(Z).
– s(s(Y,Z)) --> np(Y,Number), vp(Z,Number).
s
aux
vp
v
np
det n
the ballballs
hitwaswere
numbernumber number
numbernumber
Grammar so far
• new additions today– verbal inflection and
passive morphology• (passive) be V-en
– PP by-phrase• “by me”
– Subject-Verb Agreement Rule
• “the ball/balls was/were”
• grammar is still not fully implemented– see underscores “-”
for Subject-Verb Agreement
1. s(s(Y,Z)) --> np(Y,Number), vp(Z,Number). 2. np(np(Y),_) --> pronoun(Y).3. np(np(D,N),Number) --> det(D,Number),
common_noun(N,Number).4. det(det(the),_) --> [the].5. det(det(a),sg) --> [a].6. common_noun(n(ball),sg) --> [ball].7. common_noun(n(balls),pl) --> [balls].8. common_noun(n(man),sg) --> [man].9. common_noun(n(men),pl) --> [men].10. pronoun(i) --> [i].11. pronoun(we) --> [we].12. pronoun(me) --> [me].13. pp(pp(P,NP)) --> preposition(P), np(NP,_).14. preposition(p(by)) --> [by].15. vp(vp(VP,PP),_) --> vp(VP,_), pp(PP).16. vp(vp(A,V),Number) --> aux(A,Number),
transitive(V,en). 17. vp(vp(Y),_) --> unergative(Y). 18. vp(vp(Y,Z),_) --> transitive(Y,_), np(Z,_).19. unergative(v(ran)) --> [ran].20. transitive(v(hit),_) --> [hit].21. transitive(v(eat),root) --> [eat].22. transitive(v(eats),s) --> [eats].23. transitive(v(ate),ed) --> [ate].24. transitive(v(eaten),en) --> [eaten].25. aux(aux(was),sg) --> [was].26. aux(aux(were),pl) --> [were].
Grammar built in class: Part 1• s(s(Y,Z)) --> np(Y,Num1), vp(Z,Num2), {Num1 = Num2}. % Partial Subject-Verb agreement• np(np(Y),Number) --> pronoun(Y,Number).• np(np(D,N),Number) --> det(D,Number), common_noun(N,Number).• det(det(the),_) --> [the].• det(det(a),sg) --> [a].• common_noun(n(apple),sg) --> [apple].• common_noun(n(ball),sg) --> [ball].• common_noun(n(man),sg) --> [man].• common_noun(n(men),pl) --> [men].• pronoun(i,sg) --> [i].• pronoun(we,pl) --> [we].• pronoun(me,sg) --> [me].• vp(vp(Y),_) --> unergative(Y). • vp(vp(Y,Z),_) --> transitive(Y,_), np(Z,_).• vp(vp(Aux,vp(V,np(trace))),Number) --> aux(Aux,Number), transitive(V,Ending), {Ending = en}. • vp(vp(VP,NP),Number) --> vp(VP,Number), pp(NP).
Grammar built in class: Part 2• unergative(v(ran)) --> [ran].• transitive(v(hit),root) --> [hit].• transitive(v(hit-s),s) --> [hits].• transitive(v(hit-ing),ing) --> [hitting].• transitive(v(hit-ed),ed) --> [hit].• transitive(v(hit-en),en) --> [hit].• transitive(v(eat),root) --> [eat].• transitive(v(eat-ing),ing) --> [eating].• transitive(v(eat-s),s) --> [eats].• transitive(v(eat-ed),ed) --> [ate].• transitive(v(eat-en),en) --> [eaten].• aux(aux(was),sg) --> [was].• aux(aux(was),pl) --> [were].• pp(pp(P,NP)) --> p(P), np(NP,_).• p(p(by)) --> [by].
Outstanding issues
• The relative order of the VP rules is criticale.g. what happens when the rulevp(vp(VP,PP),Number) --> vp(VP,Number), pp(PP).is moved around in the program for the following query?
?- s(X,[the,balls,were,hit,by,me],[]).
• how to block recursion (iteration) for *the balls were hit by me by the man??- s(X,[the,balls,were,hit,by,me,by,the,man],[]).
• would (less linguistically desirable) ternary branching for the VP adjunct work better computationally?e.g. vp(vp(A,V,PP)) --> aux(A), transitive(V,en), pp(PP).
More to come…
• Grammar also has infinite loops,
i.e. does not terminate properly
• We’ll fix these issues next time