层次短语模型学习笔记

来源:互联网 发布:淘宝购物券网站 编辑:程序博客网 时间:2024/06/09 23:05

摘要:

层次短语模型,顾名思义,短语是具有层次关系的。机器翻译中,最重要的就是两点,第一点选词问题,第二点调序问题。层次短语模型通过“变量规则”融合了选词以及调序问题。由于源语言以及目标语言表达的不同,变量规则可以很好地捕捉到位置的变化。层次短语模型名义上属于形式化句法翻译模型,实则是短语翻译模型。重要的过程包括两点:层次短语规则的抽取以及解码。

       层次短语规则的抽取过程包含普通短语规则的抽取,以及包含变量的规则抽取。抽取短语最基本的条件就是“对齐一致性”。在抽取变量规则的时候,通过枚举SPAN范围内所有可能的组合,不含变量、一个变量以及两个变量等三种可能。规则主要包含源端、目标端、双向词汇化翻译概率、双向短语翻译概率。计算时需要估算每一个短语的fraction,对于不含变量的规则而言,每次抽取该种规则时fraction1,对于包含变量规则,fraction为变量总数分之一。计算双向短语翻译概率时,使用fraction进行计算。注意工程实现细节,抽取的规则数目达到一定程度时,就需要输出到临时文件,并且清空所使用的内存。

      对于解码而言,层次短语模型使用最基本的CYK算法。自底向上逐渐填充每一个span。对于填充某一个span时,首先枚举该span可能包含的所有规则,对于每一个规则产生一个cube候选,然后对于所有的cube候选进行cube pruning,然后添加到chart图中。

      层次短语模型相比于短语模型以及MEBTG模型究竟优势在何处呢?短语模型依靠词汇化调序模型以及distortion调序模型进行随机调序,产生比较大的歧义,很难解决长距离调序问题。MEBTG模型生成一个span时,总是合并两个子span,并且合并方式只有两种,“逆序”或者“顺序”。而层次短语模型依靠变量规则直接进行了依据语言规律的调序,排除了很多歧义性,并且更加符合真实情况。对于处理OOV问题,短语模型以及MEBTG模型遇到之后,概率计算会使用默认值,并且OOV问题一直会影响后续的概率计算问题。对于层次短语模型,由于使用的是变量规则,OOV可以泛化成变量,而不影响后续的概率计算。依据此两点,层次短语模型能够更好的进行翻译工作。

 

一、解码流程

1. CKY算法自底向上填充每一个span

2.计算该span的所有可能的cube

  2.1 枚举span的所有可能的规则

  2.2 对于每一条合法且有效的规则,生成一个cube

3.利用cube pruning进行选取Candidate,添加到chart中。

      3.1 添加每一个cube中第一个元素(生成翻译)到优先级队列中

      3.2 从优先级队列中取出最优元素添加到chart中,并添加其邻居到队列

      3.3 直到达到chartlimit

系统涉及到的对象:

1. Rule: 规则,单条规则

2. RuleTable: 短语表,vector存放Rulemap<source, TargetIDs>存放映射

3. LanguageModel:计算语言模型分数

4. Search:核心数据结构,搜索最优路径

5. Cube:一个Cube,对应一条规则

6. Candidate: Cube Pruning时优先级队列中的对象

7. Translation:翻译后的对象

8. ChartCYK核心数据结构

9. StaticData:系统所需参数

二、NBEST计算
       输出最后一个span的内容即可,据听说合并翻译假设后生成的NBEST和最后一个span的内容相差没有多少。因此,为了简便,直接输出最后一个span的内容即可。


0 0
原创粉丝点击