Dependency Parsing
Linguistic Structure: Denpendency Parsing(依存句法分析)
1 Two views of linguistic structure: Constituency structure, Dependency structure
Parse trees(解析树,语法分析树) 用于分析句子的语法结构(syntactic structure) ,主要有两种结构:constituency structures,dependency structures。
1.1 Constituency Structure
Constituency = phrase structure grammar = context-free grammars (CFGs)
Constituency grammar使用短语结构语法(phrase structure grammar)把单词组织成镶嵌的结构,在下面的章节会详细讲述这种结构,这节课主要关注Denpendency Parsing。
N(Noun)名词,NP(Noun Phrase)名词短语,Det(Determiner)限定词,prep(Preposition)介词,PP(Prepositional Phrase)介词短语,Adj(Adjective)形容词,verb(动词),pronoun(代词)
NP
→
Det N
e.g. the cat
NP
→
Det (Adj) N
e.g. the large cat
NP
→
Det (Adj) N PP
PP
→
prep NP
e.g. the large cat by the door
\begin{aligned} &\text{NP} \to \text{Det N} \\ &\qquad \text{e.g. the cat}\\ &\text{NP} \to \text{Det (Adj) N}\\ &\qquad \text{e.g. the large cat}\\ &\text{NP} \to \text{Det (Adj) N PP}\\ &\text{PP} \to \text{prep NP}\\ &\qquad \text{e.g. the large cat by the door} \end{aligned}
NP→Det Ne.g. the catNP→Det (Adj) Ne.g. the large catNP→Det (Adj) N PPPP→prep NPe.g. the large cat by the door
例如下面的句子可以生成这样的结构,
the(Det) cat(N) by(prep) the(Det) large(Adj) crate(N)
1.2 Dependency Structure
句子的依存结构(dependency structure)表示了一个单词如何依赖于(修饰)另外的单词,这种单词间二元的非对称的(binary asymmetric)关系叫做依赖(dependencies),使用箭头表示,通常这些依赖形成了一个树的结构。
2 Dependency Parsing
依存句法分析(dependency parsing)是指给定一个句子,分析它的语法依赖的机构,输出是一个依赖树(dependency tree)。
Dependency Grammar/Parsing的历史:
- 公元前五世纪,Panini的语法研究
- 20世纪,Constituency/context-free grammar,R.S. Wells(1947)然后是Chomsky
- 现代的做法来自于L.Tesniere(1959)
评估方法:UAS/LAS
2.1 Transition-based Dependency Parsing
依赖一个状态机(state machine),定义从输入的句子到输出的依赖树的映射。
2.2 Greedy Deterministic Transition-based Dependency Parsing
来自Nivre[2003]的工作,转换依赖一个状态机(state machine),包括状态(states) 和状态间的转换(transition),模型包含从一系列从初始状态(initial state)到终结(terminal state)状态的转换。形式定义如下:
States:
对于任意句子
S
=
w
0
w
1
.
.
.
w
n
S=w_0w_1...w_n
S=w0w1...wn,一个状态可以用一个三元组表示
c
=
(
σ
,
β
,
A
)
c=(\sigma, \beta,A)
c=(σ,β,A)。其中
σ
\sigma
σ代表一个栈由
S
S
S中的单词组成,
β
\beta
β代表一个缓冲区(buff)由
S
S
S中的单词组成,
A
A
A代表一个表示依赖弧(dependency arc)的集合,形式如
(
w
i
,
r
,
w
j
)
(w_i,r,w_j)
(wi,r,wj),
w
i
,
w
j
w_i,w_j
wi,wj来自
S
S
S,
r
r
r描述一个依赖关系。
对于句子
S
S
S而言,初始状态为
c
0
=
(
[
w
0
]
σ
,
[
w
1
,
.
.
.
,
w
n
]
β
,
∅
)
c_0=([w_0]_\sigma,[w_1,...,w_n]_\beta,\varnothing)
c0=([w0]σ,[w1,...,wn]β,∅),即只有ROOT在栈
σ
\sigma
σ中,其他的单词都在缓冲区
β
\beta
β中,并且目前没有选出任何的动作。结束状态为这样的形式
(
σ
,
[
]
β
,
A
)
(\sigma,[]_\beta,A)
(σ,[]β,A)。
Transitions:
在状态间定义了三种transitions
1
S
H
I
F
T
SHIFT
SHIFT: 移除buffer
β
\beta
β中的第一个单词,把它压到栈
σ
\sigma
σ的顶部(buffer
β
\beta
β非空)
2
L
E
F
T
−
A
R
C
r
LEFT-ARC_r
LEFT−ARCr: 把一个依赖弧
(
w
j
,
r
,
w
i
)
(w_j,r,w_i)
(wj,r,wi)添加到集合
A
A
A中,其中
w
i
w_i
wi是栈顶第二个单词,
w
j
w_j
wj是栈顶的单词,然后把
w
i
w_i
wi从栈中移除。(栈
σ
\sigma
σ至少要包含两个单词,
w
i
w_i
wi不可以是ROOT)
3
R
I
G
H
T
−
A
R
C
r
RIGHT-ARC_r
RIGHT−ARCr: 把一个依赖弧
(
w
i
,
r
,
w
j
)
(w_i,r,w_j)
(wi,r,wj)添加到集合
A
A
A中,其中
w
i
w_i
wi是栈顶第二个单词,
w
j
w_j
wj是栈顶的单词,然后把
w
j
w_j
wj从栈中移除。(栈
σ
\sigma
σ至少要包含两个单词)
形式定义如下:
1.
S
H
I
F
T
σ
,
w
i
∣
β
,
A
→
σ
∣
w
i
,
β
,
A
2.
L
E
F
T
−
A
R
C
r
σ
∣
w
i
∣
w
j
,
β
,
A
→
σ
∣
w
j
,
β
,
A
∪
{
r
(
w
j
,
w
i
)
}
3.
R
I
G
H
T
−
A
R
C
r
σ
∣
w
i
∣
w
j
,
β
,
A
→
σ
∣
w
i
,
β
,
A
∪
{
r
(
w
i
,
w
j
)
}
\begin{aligned} &\text{1. } SHIFT \qquad & \sigma,w_i|\beta,A \to \sigma|w_i,\beta,A \\ &\text{2. } LEFT-ARC_r \qquad & \sigma|w_i|w_j,\beta,A \to \sigma|w_j,\beta,A\cup\{r(w_j,w_i) \}\\ &\text{3. } RIGHT-ARC_r \qquad &\sigma|w_i|w_j,\beta,A \to \sigma|w_i,\beta,A\cup\{r(w_i,w_j) \} \end{aligned}
1. SHIFT2. LEFT−ARCr3. RIGHT−ARCrσ,wi∣β,A→σ∣wi,β,Aσ∣wi∣wj,β,A→σ∣wj,β,A∪{r(wj,wi)}σ∣wi∣wj,β,A→σ∣wi,β,A∪{r(wi,wj)}
2.3 Neural Dependency Parsing
这种模型性能和效率都要优于传统的方法,和先前的模型最大的区别就是它依赖于稠密(dense的特征表达而不是稀疏的(sparse),
Feature Selection:
针对模型的复杂性,可以灵活的选取神经网络的输入特征,给定一个句子S,可供选择的特征类型如下:
S
w
o
r
d
S_{word}
Sword: 句子S中一些单词的向量表示(vector representations)
S
t
a
g
S_{tag}
Stag: 句子S中一些单词的Part-Of-Speech(POS)标签
S
l
a
b
e
l
S_{label}
Slabel: 句子S中一些单词的arc-label,这些arc-label用于描述依赖关系
对于任意一个特征类型都有相应的嵌入矩阵(Embedding Matrix),用于把one-hot的编码映射成d维稠密向量表示(d-dimentional dense vector representations)。 对应 S w o r d S_{word} Sword的嵌入矩阵为 E w ∈ R d × N w E^w\in \mathbb{R}^{d\times N_w} Ew∈Rd×Nw,其中 N w N_w Nw代表词典(vocabulary)的大小,相应 S t a g S_{tag} Stag的为 E t ∈ R d × N t E^t\in \mathbb{R}^{d\times N_t} Et∈Rd×Nt,相应 S l a b e l S_{label} Slabel的为 E l ∈ R d × N l E^l\in \mathbb{R}^{d\times N_l} El∈Rd×Nl,其中 N t N_t Nt代表不同POS标签的个数, N l N_l Nl代表不同arc-label的个数。
Feedforward Neural Network Model:
网络比较简单,包含一个输入层 [ x w , x t , x l ] [x^w,x^t,x^l] [xw,xt,xl],一个隐藏层,最后带有互熵损失(cross-entropy loss)的softmax层。隐藏层对应不同的输入特征有三个矩阵 [ W 1 w , W 1 t , W 1 l ] [W_1^w,W_1^t,W_1^l] [W1w,W1t,W1l],其中隐藏层非线性函数使用的是 f ( x ) = x 3 f(x)=x^3 f(x)=x3