LING 581: Advanced Computational Linguistics
Lecture NotesMarch 23rd
Administrivia
• Welcome back!• Task 3 is due
Homework Task
Treebank• There are 180487 VPs in the
Wall Street Journal section• Q: what kinds of verb
frames are attested?EVCA Project• Pick verbs that exist in EVCA
(evca93.index) and also in the PTB
• Produce a report that compares EVCA with what is present in the corpus
Minimalist Syntax
From stochastic parsing to the (near) latest in syntax• Paper:
– Derivation by Phase (DbP) (Chomsky) – (manuscript 1999, published 2001)
• 4 files on usb drive– Reading Homework over Spring Break– dpb.pdf (the unlocked published version)
you may find the following notes very useful– JU_DbP_1.pdf (DbyP with inline notes from Juan Uriagereka)– JU_DbP_2.pdf (part 2)– Yoon_DbP.pdf (notes from James Yoon, UIUC)
Software
• Code– GUI: (Tcl/Tk side) treeserver.tcl– GUI: (Prolog side) prolog_client.pl– Grammar: (GUI version) grammar8.pl
• What you need– Tcl/Tk wish
interpreter– Prolog SWI
Prolog– Command line (some) shell
Processes
• Process #1run treeserver.tcl
under wish interpreter
– example:bash-3.2$ wish treeserver.tclConnection from 127.0.0.1channel closed
• Process #2run SWI-Prolog
– example:bash-3.2$ swiplWelcome to SWI-Prolog (Multi-threaded, 64 bits, Version
5.8.3)
?- [prolog_client, grammar8].% library(error) compiled into error 0.00 sec, 17,480 bytes% library(lists) compiled into lists 0.01 sec, 39,256 bytes% library(shlib) compiled into shlib 0.01 sec, 59,552 bytes% library(unix) compiled into unix 0.01 sec, 65,968 bytes% prolog_client compiled 0.01 sec, 134,368 bytes% grammar8 compiled 0.00 sec, 46,816 bytestrue.
chatter: uses sockets to communicate with Prolog side
Example 1
• John likes Mary• Run in SWI Prolog window?- parse([john,like,mary]).Probe [v*] agrees with goal
[n mary]Probe [t] agrees with goal
[n john][c[c][t[n john][t[t][v[n john]
[v[v*][V[V like][n mary]]]]]]]
true ;false.
Click to see derivation steps
Tree display zoom slider
Agree(P,G) computationsdisplayedterminal parse output: same
as last step of GUI output
Current Limitations• John likes Mary• Run in SWI Prolog window?- parse([john,like,mary]).Probe [v*] agrees with goal
[n mary]Probe [t] agrees with goal
[n john][c[c][t[n john][t[t][v[n
john][v[v*][V[V like][n mary]]]]]]]
true ;false.
Implementation limitations:1. No Spell-Out implemented (just
narrow syntax)T + v* f(phi,3-sg-f)+ V(like) = likes
2. No head movement/affix-hopping implemented (part of Spell-Out)input: awarded -> [ed,award]
3. No undo of displacement implemented(displacement is computed from base position)input:[be,ed,award,several,prizes]Several prizes are awarded
Note: not inflected
Spell-Out: implementation of simple inflectional morphology would be straightforwardParsing from final landing sites would require an additional computational mechanism
Interacting with the Grammar• parse(List).
– Prolog List = input sentence1. Opens a socket connection to
display server2. Calls the definite clause grammar
(DCG) rule for a clause: c(Parse,List,[]).
3. Closes socket connection
• resetDisplay.1. Opens a socket connection to
display server2. Clears the display history for a
derivation3. Closes socket connection
• Components of parse(List) can be called separately– open_connection.– close_connection.– X(Parse,List,[]).
• X = grammar rule name
– useful when other DCG rules need to be called directly
• Implementation (prolog_client.pl)
parse(List) :-open_connection,c(Parse,List,[]),format('~p~n',[Parse]),close_connection.
use after each derivation
Four Examples
Example 1• There are likely to be awarded several
prizes• (note input lexme order)?-
parse([be,likely,there,be,ed,award,several,prizes]).
Probe [a!case ed] agrees with goal [n!case several prizes]
Probe [tdef] agrees with goal [n!case several prizes]
Probe [t!phi] agrees with goal [n!phi there]
Probe [t] agrees with goal [n several prizes]
[c[c][t[n there][t[t][v[v be][a[a likely][t[n there][t[tdef][v[v be][a[a ed][V[V award][n several prizes]]]]]]]]]]]
true ;false.
Example 2• Several prizes are likely to be awarded• (note input lexeme order)?- resetDisplay.true.
?- parse([be,likely,be,ed,award,several,prizes]).
Probe [a!case ed] agrees with goal [n!case several prizes]
Probe [tdef] agrees with goal [n!case several prizes]
Probe [t] agrees with goal [n several prizes][c[c][t[n several prizes][t[t][v[v be][a[a
likely][t[n several prizes][t[tdef][v[v be][a[a ed][V[V award][n several prizes]]]]]]]]]]]
true ;false.
Example 3• we expect there to be awarded several prizes
(note input lexeme order)
?- parse([we,expect,there,be,ed,award,several,prizes]).
Probe [a!case ed] agrees with goal [n!case several prizes]
Probe [tdef] agrees with goal [n!case several prizes]
Probe [v*!phi] agrees with goal [n!phi there]Probe [v*] agrees with goal [n several prizes]Probe [t] agrees with goal [n we][c[c][t[n we][t[t][v[n we][v[v*][V[V expect]
[t[n there][t[tdef][v[v be][a[a ed][V[V award][n several prizes]]]]]]]]]]]]
true ;false.
Example 4• we expect several prizes to be awarded
(note input lexeme order)
?- parse([we,expect,be,ed,award,several,prizes]).
Probe [a!case ed] agrees with goal [n!case several prizes]
Probe [tdef] agrees with goal [n!case several prizes]
Probe [v*] agrees with goal [n several prizes]
Probe [t] agrees with goal [n we][c[c][t[n we][t[t][v[n we][v[v*][V[V expect]
[t[n several prizes][t[tdef][v[v be][a[a ed][V[V award][n several prizes]]]]]]]]]]]]
true ;false.
Basic Computation• start with lexical array of syntactic
objects: {α,..,ω}• Merge “an indispensible operation of a
recursive system”• (external)
– two syntactic objects (SOs): α, β– create merged SO: {α, β}– label({α, β})=label(α) or label(β)
• (internal), implements Displacement– SOs: α and γ, γ properly contained in α – create SO: {α, γ}– label({α, γ})=label(α)
• Agree– active probe SO: α (active =
uninterpretable features), goal SO: β– match and delete uninterpretable features
of probe and goal• Convergent derivation: uninterpretable
features must be eliminated
copy
v*: φ, accN: φ, Case
Basic Implementation (1)Definite clause grammar (DCG) (simplified)
V([V V N]) --> V(V), n(N).
V([V Verb]) --> [Verb].
features (V) features (N)– phonetic matrix: f(pmatrix,like) f(pmatrix,john)
– (takes an) argument: f(arg,+) f(arg,+)
– uninterpretable Case: f(case,_)
% (big V) verb classesbV(n('V',[],[V,N])) --> bV0(V), n0(N), {theta(V),theta(N)} report 'theta merge V & N'.bV0(n('V',[f(pmatrix,Verb),f(arg,+)],[])) --> [Verb], {transitive(Verb)}.bV0(n('V',[f(pmatrix,Verb),f(arg,+)],[])) --> [Verb], {unaccusative(Verb)}.bV0(n('V',[f(pmatrix,Verb)],[])) --> [Verb], {unergative(Verb)}.
transitive(like). transitive(expect).unergative(run). unaccusative(arrive).
n0(n(n,[f(pmatrix,BNoun)|Fs],[])) --> [BNoun], {bareNoun(BNoun,Fs)}.bareNoun(john,[f(phi,3-sg-m),f(case,_),f(arg,+)]).
variable
Basic Implementation (2)
Definite clause grammar (DCG) (simplified)v([v N v]) --> n(N), v(v).
v([v v V]) --> v(v), V(V).
v([v*]) --> [].
– features (v*)• uninterpretable φ-features: f(phi,_-_-_)
• can value accusative Case: f(case,acc)
% v*/vPv(n(v,[],[N,V])) --> n0(N), {theta(N)}, v1(V) report 'theta merge N & v'.v1(n(v,[],[V,BV])) --> v0(V), bV(BV), {goals(BV,Goals),agree(V,Goals)} report 'merge v & V'.v0(n('v*',[f(phi,_-_-_),f(case,acc)],[])) --> [].
triggers Agree
f(phi,_-_-_)f(case,acc)
f(phi,3-sg-f)f(case,_)
Basic Implementation (2)
f(phi,_-_-_)f(case,acc)
f(phi,3-sg-f)f(case,_)
• Agree(v*,N)
Operation: unification (Robinson, 1965)(match and instantiate unvalued features)Probe Goalf(phi,_-_-_) f(phi,3-sg-f)f(case,acc) f(case,_)
Uninterpretable/unvalued features (represented by variables) are eliminated
Basic Implementation (3)
Definite clause grammar (DCG)T([T N v]) --> n(N), v(v).
T([T N v]) --> v(v), {N a goal}
T([T]) --> [].
– features (φ-complete T)• uninterpretable φ-features: f(phi,_-_-_)
• can value nominative Case: f(case,nom)
• EPP
t(n(t,[],[N,T])) --> n0(N), {nonarg(N)}, t1(T,_) report 'merge expl & T'. % EPP: (1) merget(n(t,[],[Goal,T])) --> t1(T,Goal) report 'move to spec-T’. % EPP: (2) move with maximize matching
t1(n(t,[],[T,V]),G) --> t0(T), v(V), {goals(V,Goals),agree(T,Goals), Goals = [G|_]} report 'merge T & v’.t0(n(t,[f(phi,_-_-_),f(case,nom)],[])) --> [].
triggers Agree
defective Tφ-incompletee.g. infinitivals
╳
Putting it all together (1)
Putting it all together (2)
Putting it all together (3)
Putting it all together (4)
Putting it all together (5)
(EPP requirement)
Putting it all together (6)Operation: Spell-Out (not currently implemented)“John likes Mary”only one copy of John is pronouncedbundleT + v* f(phi,3-sg-f)+ V (like) = likes
A Worked Example
Consider the derivation of• several prizes are likely to be awarded (= 4(b)(ii))
awarded = award + -ed (adjectival participle)
?- parse([be,likely,be,ed,award,several,prizes]).Probe [a!case ed] agrees with goal [n!case several prizes]Probe [tdef] agrees with goal [n!case several prizes]Probe [t] agrees with goal [n several prizes][c[c][t[n several prizes][t[t][v[v be][a[a likely][t[n several prizes][t[tdef][v[v be][a[a ed][V[V award][n several prizes]]]]]]]]]]]
ϕ-incomplete: uninterpretable Number and Gender onlyuninterpretable Casemorphologically unrealized in English (cf. Icelandic)
-ed
Agree(a,N)-ed: φ, CaseN: φ, Case
A Worked Example
A Worked Example
Agree(a,N)-ed: φ, CaseN: φ, Case
Notation: !case means feature is unvalued
A Worked Example
Agree(Tdef,N)Tdef: φN: φ, Case
A Worked Example
(several prizes raises to subject position of embedded infinitival)
A Worked Example
Agree(T,N)T: φ, NominativeN: φ, Case
Case for –ed also valuedbecause of earlier unification stepAgree(a,N)-ed: φ, CaseN: φ, Case
Matrix T
Unification presents an possible advantage: computation is more local
Probing with multiple goals
(Chomsky 2001)compare with…
A Worked Example
Spell-OutSeveral prizes are likely to be awarded
Another Example
?- parse([be,likely,there,be,ed,award,several,prizes]).Probe [a!case ed] agrees with goal [n!case several prizes]Probe [tdef] agrees with goal [n!case several prizes]Probe [t!phi] agrees with goal [n!phi there]Probe [t] agrees with goal [n several prizes][c[c][t[n there][t[t][v[v be][a[a likely][t[n there][t[tdef][v[v be]
[a[a ed][V[V award][n several prizes]]]]]]]]]]]
Consider also the derivation of• There are likely to be awarded several prizes(= 4(b)(i))
pleonastic there: φ-incomplete (Person only)
Agree(a,N)-ed: φ, CaseN: φ, Case
Agree(T,N)T: φN: φ
Another Example
Agree(a,N)-ed: φ, CaseN: φ, Case
Examples
(Chomsky 2001)
• Examples (ECM):– (i) we expect there to be awarded several prizes– (ii) we expect several prizes to be awarded
Example: we expect several prizes to be awarded
Prior Unification: locality advantage
Case
Example: we expect several prizes to be awarded
Spell-OutWe expect several prizes to be awarded