Coursera自然语言处理 Week4 笔记

来源:互联网 发布:12年伤感网络歌曲大全 编辑:程序博客网 时间:2024/05/21 21:50

前一周讲的Pure PCFG是完全和语义没有关系的,但是很多的“歧义问题”放在一个特定的语境中,就不会产生歧义的,所以这个语义还是很重要的。第四周就讲了如何把这种语义放进Pure PCFG中去。

1. Pure PCFG的缺点

看下面这个例子:

这棵Parsing Tree由7条规则组成,看其中的第5条规则“NNP IBM”,这条规则的确定与句子中其他的单词无关,与整棵树的其余部分也无关,只与P(NNPIBM)的大小有关。而实际上,IBM这个单词的词性究竟是不是NNP,与句子中其余单词是有关系的。

再比如说下面这个例子中:

唯一不一样的地方就是选择”VPVP PP”还是”NPNP PP”,在pure PCFG中,会选择概率大的那条规则。但是实际上,选择哪一条规则可以直接从其他单词中看出,”VPVP PP”才是正确的选择。

总结:lexical information(语义信息)是重要的,我们大家需要它!

2. Lexical PCFG理论

Lexical PCFG通过向规则中加入“head”来添加语义信息。

“head”的意思就是这个词组中最重要的部分,如果只有一个单词,那就是这个单词本身,比如说:

DTthe中的词组就是”the”,则“head”就是“the”,于是标记为DT(the)the

NNwitness中词组就是”witness”,则“head”就是“witness”,于是标记为NN(witness)witness

NPDT(the) NN(witness)中的词组是“the witness”,那么“head”就是“witness”,于是标记成NP(witness)DT(the) NN(witness);选择哪个孩子作为head,就在它的上面标个横线。

就这样,由下至上,反向传播上去,直到root处结束。

于是就有了下面这个Pure PCFG 和 Lexical PCFG的对比图:

2.1 模型搭建

于是,我们的模型搭建如下:

t=argmaxt()P(t)

P(t)=γ(root)×i=1Nq(ri)

比如在上面的这棵树中,有8条rules和一个root:S(questioned)

于是整棵树的概率计算如下:

2.2 参数估计

于是,这个模型的唯一参数就是q(ri),因为加入了lexical information,这里的参数估计与Pure PCFG也不同了。

X为规则左边的部分,H为head单词的index,R表示这条规则X(H)Y(H) Z(M)M为词组中不是head的单词index。

于是有:

q(X(H)Y(H) Z(M))=q(R,M|X,H)=q(R|X,H)q(M|R,X,H)

于是这个参数转变成了两个小参数q(R|X,H)q(M|R,X,H)

然后,q(R|X,H)如下计算:

q(R|X,H)=λ1×q(R|X,H)+(1λ1)×q(R|X)

其中,

q(R|X,H)=Count(R,X,H)Count(X,H)

q(R|X)=Count(R,X)Count(X)

q(M|R,X,H)如下计算:

q(M|R,X,H)=λ2×q(M|R,H)+(1λ2)×q(M|R)

其中,

q(M|R,H)=Count(M,R,H)Count(R,H)

q(M|R)=Count(M,R)Count(R)

可以看到,这里参数估计的时候,融合了non-lexical部分(q(R|X)q(M|R))和lexical部分(q(R|X,H)q(M|R,H)),并且通过λ1λ2来权衡这两部分。

3. Lexical PCFG实现

这里依旧是使用“动态规划”来实现,唯一不通的就是,参数的计算,除此之外,整个算法没有什么不同。

原创粉丝点击