Michael Collins NLP Lecture 11
课程主页:http://www.cs.columbia.edu/~cs4705/
课程网盘地址:
链接:https://pan.baidu.com/s/1KijgO7yjL_MVCC9zKZ7Jdg
提取码:t1i3
这一讲介绍基于历史的解析的对数线性模型(Log-Linear Models for History-Based Parsing)。
这一讲将应用对数线性模型解决解析问题,现在第一个问题是,我们如何定义$P(T|S)$?其中$T$是一颗解析树,这里
处理该问题的方法为四步:
步骤1:用决策序列$d_1…d_m$表示一棵树
$m$不一定是句子的长度。
步骤2:树的概率为
步骤3:使用对数线性模型估计
步骤4:搜索。
下面分别介绍这几个步骤。
步骤1
步骤1利用了Ratnaparkhi的解析:三层结构:
- 词性标签(Part-of-speech tags)
- 分块(Chunks)
- 剩余的结构(Remaining structure)
Layer 1: Part-of-Speech Tags
第一层进行$n$个标签决策,一个具体例子如下:
Layer 2: Chunks
分块(Chunks)被定义为所有子节点都是词性标签的任何短语,例如上图的$\text{NP}$。
第二层进行分块操作,具体的步骤如下:
Layer 3: Remaining Structure
最后一层使用两类行动:
- $\text{Join(X)}$或$\text{Start(X)}$,其中$\text{X}$是标签。
- $\text{Check=YES}$或$\text{Check=NO}$。
这些行动的含义如下:
来看一个具体例子:
第一步给$\text{NP}$打标签:
第二步给$\text{Vt}$打标签:
第三步给$\text{NP} $打标签:
第四步给$\text{IN}$打标签:
第五步给$\text{NP} $打标签:
注意这一步的$\text{Check=YES}$,所以要把从$\text{Start(VP)}$开始到$\text{Join(VP)}$的部分全部合并:
这里同样有$\text{Check=YES}$,所以要把从$\text{Start(S)}$开始到$\text{Join(S)}$的部分全部合并:
全部的决策序列如下:
步骤2
步骤2是非常自然的,这里直接进入步骤3。
步骤3
这一步是使用对数线性模型估计
回顾对数线性模型的形式:
各个符号含义如下:
现在的问题是如何定义$f$,Ratnaparkhi的方法取决于下一个决定是否是:
- 标记决策。(与之前的POS标记特征相同!)
- 分块(chunking)决策。
- 分块后的$\text{start/join}$决策。
- $\text{check=no/check-yes}$决策。
构造特征的方式如下:
步骤4
因为这里没有使用马尔可夫假设,所以没法使用维特比算法,常用的搜索算法为beam search。
本讲测验题
Coursera部分
1.
START(NP),JOIN(NP),OTHER,START(ADJP)
2.
START(NP)
3.
b