270 Chapter 8. 基于句法的模型 肖桐 朱靖波
引入 d
′
的意义在于,整个分析过程具有了递归性。从超图上看,d
′
可以对应以
一个(或几个)节点为“根”的子图,因此只需要在这个(或这些)子图上增加新的
超边就可以得到更大的推导。这个过程不断执行,最终完成对整个句子的分析。
在句法分析中,超图的结构往往被组织为一种表格(Chart)结构。表格的每个
单元代表了一个跨度,因此可以把所有覆盖这个跨度的推导都放入相应的表格单元
(Chart Cell)。对于上下文无关文法,表格里的每一项还会增加一个句法标记,用来
区分不同句法功能的推导。
cell[1,2] cell[0,2]
cell[0,1]
N/A
VV[0,1]
NN[1,2]
NP[1,2]
VP[0,2]
NP[0,2]
跨度大小
起
始
位
置
Chart(表格)
图 8.38 句法分析 Chart(表格)结构实例
如图8.38所示,覆盖相同跨度的节点会被放入同一个表格单元,但是不同句法标
记的节点会被看作是不同的项(Item)。这种组织方式建立了一个索引,通过索引可
以很容易地访问同一个跨度下的所有推导。比如,如果采用自下而上的分析,可以
从小跨度的表格单元开始,构建推导,并填写表格单元。这个过程中,可以访问之前
的表格单元来获得所需的局部推导(类似于前面提到的 d
′
)。该过程重复执行,直到
处理完最大跨度的表格单元。而最后一个表格单元就保存了完整推导的根节点。通
过回溯的方式,能够把所有推导都生成出来。
基于句法的机器翻译仍然可以使用超图进行翻译推导的表示。和句法分析一样,
超图的每条边可以对应一个基于树结构的文法,超边的头代表文法的左部,超边的
尾代表规则中变量所对应的超图中的节点
10
。图8.39 给出了一个使用超图来表示机
器翻译推导的实例。可以看到,超图的结构是按源语言组织的,但是每个规则(超
边)会包含目标语言的信息。由于同步翻译文法可以确保规则的源语言端和目标语
言端都覆盖连续的词串,因此超图中的每个节点都对应一个源语言跨度,同时对应
一个目标语的连续译文。这样,每个节点实际上代表了一个局部的翻译结果。
不过,机器翻译与句法分析也有不同之处。最主要的区别在于机器翻译使用了
语言模型作为一个特征,比如 n-gram 语言模型。因为语言模型并不是上下文无关的,
因此机器翻译中计算最优推导的方法和句法分析会有不同。常用的方法是,直接在
每个表格单元中融合语言模型的分数,保留前 k 个结果;或者,在构建超图时不计算
语言模型得分,等到构建完整个超图之后对最好的若干个推导用语言模型重新排序;
10
也可以把每个终结符看作是一个节点,这样一个超边的尾就对应规则的树片段中所有的叶子。