读书人

NLP 学习札记 04 (Machine Translatio

发布时间: 2013-04-12 18:33:12 作者: rapoo

NLP 学习笔记 04 (Machine Translation)

all is based on the open course nlp on coursera.org week 5,week 6 lecture

-------------------------------------------------------

时间匆匆啊,最近都比较忙,nlp这门课我在苦苦跟随,倒不是很难,就是平时有些忙,清明三天又因为一个比赛废了,有空了可能会写一篇推荐系统的东西,贴贴代码什么的~~下面还是做笔记吧

-------------------------------------------------------

①.Week5 机器翻译大家想必都用过吧,谷歌翻译百度翻译什么的,虽然绝大多数时候翻译得啼笑皆非,不过相对于以前的模型其精度已经高了很多了,第五周的课程主要介绍了Statistical Machine Translation的最早的两个模型,IBM Model 1 & IBM Model 2.
相关资料:http://www.cs.columbia.edu/~mcollins/courses/nlp2011/notes/ibm12.pdf 1.Challenge 首先还是看看挑战吧,万变不离其宗,一切nlp的问题基本上都离不开语言的Ambiguity这个词,相同词汇在不同语句中的词性,意义都可能会不同。这还是在一门语言中,机器翻译涉及到两门语言,其问题更甚,比如同一个词可能会有很多种不同的翻译方法。 除此之外,不同语言的句子构成结构是不同的,比如下面是英语和日语的构句形式: NLP 学习札记 04 (Machine Translation) 2.Direct Machine Translation 最简单的翻译方法就是直接翻译,如你所想,一个词一个词地翻译,基本上是不懂英语的人的水平,翻译出来的结果可想而知。 不过这也是机器翻译的鼻祖了吧 对于一个词的翻译你得用很多歌if else来写,这样一个模型的缺点当然就很多啦,要靠人工来写if else,这是相当费时费力还不讨好的事情,而且没有考虑单词的意义。 除此之外还有一些“经典”的翻译模型,也就是过时的,落后的,比如通过分析两种语言不同的构句结构来调整语法树,从而得到翻译的句子。从结果来讲都没有statistic的模型来得有效 3.The Noisy Channel Model The Noisy Channel Model有两个部分组成: NLP 学习札记 04 (Machine Translation) 我们用e代表英语,f代表法语,因为IBM的模型是在这两门语言上进行实验的。这里是由法语翻译为英语 通过很简单的概率论的转换我们就可以得到: NLP 学习札记 04 (Machine Translation) 我们的翻译结果就是argmax所得到的e。 注意:语言模型p(e)和我们之前定义的是一样的。而翻译模型我们会从很多句一一对应的英法语句中训练学习到。 这个模型是IBM两个模型的基础。 4.IBM 1 Model IBM 1模型引入了一个很重要的东西:Alignments,也就是词汇之间是如何关联的。很明显不同语言中同一个意思的句子词汇之间肯定会联系起来,这是翻译的基础。 比如说有如下两个句子: NLP 学习札记 04 (Machine Translation) NLP 学习札记 04 (Machine Translation) l=6表示英语句子的长度 m=7表示法语句子的长度 一个alignment就是一个长度为m的序列,将f中的每一个词映射到e中,为了完善,我们会为e额外增加一个序号0,用来表示映射为空 比如说一个allignment: NLP 学习札记 04 (Machine Translation) 就表示如下映射: NLP 学习札记 04 (Machine Translation)
多个词可以映射到同一个词。 有了Alignments之后,我们就可以改变我的模型了,我们有如下定义 NLP 学习札记 04 (Machine Translation) 这是总模型 NLP 学习札记 04 (Machine Translation) 其中a表示一个alignment 在这个过程中我们其实还可以得到很多有用的东西,比如说“最大可能的Alignment”,给你两个句子,必然有一个最大可能的映射 给定一个f,e,当然也就知道了l和m。我们有: NLP 学习札记 04 (Machine Translation) 值得一提的是,IBM Model 1虽然现在没有用于翻译,但它仍被用来寻找“最大可能的Alignment”
在Model 中: NLP 学习札记 04 (Machine Translation) 所有alignment都是一样的,这是一个很强的假设,但同时也是所有事情的开始~~~ 这是我们总的模型的右边部分,左边部分是上式: NLP 学习札记 04 (Machine Translation) t是什么东西能,其实就是每个法语词汇对应所alignment的英语词汇的概率,举个例子: NLP 学习札记 04 (Machine Translation) 综上,IBM 1 Model : NLP 学习札记 04 (Machine Translation) 至于t到底怎么求,这个我们在后面会讲到。 5.IBM Model 2 我们先介绍一下Model 2中引入的新的元素: NLP 学习札记 04 (Machine Translation),l,m还是和model 1中的定义一样,该式表示第 j 个法语中的词和第 i 个英语中的词互相关联的概率(在给出l和m的情况下) 然后有: NLP 学习札记 04 (Machine Translation)
注意这就是Model 1中不同的地方了,Model 1中所有alignment的该项值都是相等的,这里是不等的 那么总的模型就是: NLP 学习札记 04 (Machine Translation) 这就是Model 2中和1的差别 6.EM Training of Models 1 and 2 那么怎么计算这两个模型呢,我们首先介绍alignment已经存在的情况,也就是训练集包括e,f,a 对t和q做如下统计计算: NLP 学习札记 04 (Machine Translation) 具体的伪代码如下: NLP 学习札记 04 (Machine Translation) 这种情况相对比较简单,我们再来看训练集中没有a的情况: NLP 学习札记 04 (Machine Translation) 其思想是EM算法的思想,通过下式计算NLP 学习札记 04 (Machine Translation),来实现逐步地趋近于最优值,注意每次都会重新计算t和q的值 NLP 学习札记 04 (Machine Translation) ②:Week 6

ps:这渣排版。。。。。写得我伤心

1.Introduction 第六周的主要内容是Phrase-based Translation Models(基于短语的翻译模型) 这个很好理解啦,我们平时看英文就知道翻译不能逐字地搞,有些短语是需要整体翻译的,这一周的课程讲的就是这样一个模型 比如下面这样一个例子: NLP 学习札记 04 (Machine Translation)

这样我们将一个翻译拆分成了数个对应的短语的翻译,那么这样一个短语翻译(上面每个括号内的部分)的概率同样也可以用统计求得到:

NLP 学习札记 04 (Machine Translation)

当然这不是phrase模型的全部,我们对每一个翻译都有一个评分,我们用一个例子来说明:

NLP 学习札记 04 (Machine Translation)

这是翻译第一个短语的得分,等式右边的第一个部分叫做“语言模型”的得分,表示翻译后的语句是否是合法的英语,第二个部分叫“短语模型”,如你所见是单单这个短语翻译的得分,第三项叫做“失真模型”表示这个翻译的惩罚值,那个现在为0的地方是被翻译部分移动到现在位置的位移(直白点说就是原句被打乱的程度),如果原句的结构太乱了,会给以一定惩罚值。另一个例子:

NLP 学习札记 04 (Machine Translation)

为了方便,我们在这里重新定义一下所有的东西,一个“基于短语的翻译模型”包括三个东西:

1.短语模型,也就是上面的t,我们重新 给出一个符号g来描述:

NLP 学习札记 04 (Machine Translation)

2.一个三元语言模型.这和上面是一样的

3.一个失真模型,有一个distortion parameter:η(是负数)

对于每个短语p,有NLP 学习札记 04 (Machine Translation)这样一些东西,分别表示p开始的标号,结束的标号和对应翻译出来的英语短句

除此之外我们还有g(p)表示这个短语的得分

如果一些列的短语联合起来就可以翻译成一个句子,我们称之为一个derivation,一个derivation y有一些列的短语

比如对于这个句子:

NLP 学习札记 04 (Machine Translation)

可能会有一个y:

NLP 学习札记 04 (Machine Translation)

一个合法的derivation要满足以下几个条件:

1.每个词只能翻译一次,也就是所有的短语的s(p)和t(p)定义的区间是不能重叠的

2.跨度不能太大,要保证:NLP 学习札记 04 (Machine Translation)

一大坨,什么东西呢,其实就是每个短语之间不能相差太远,d使我们设定的常数,比如为4

这样一步是为了在合理的范围内减小搜索的空间,比如上面那个y的例子,第一个和第二个短语之间的距离就是|3+1-7|=3,比选定的d=4小,所以是合法的

这样一个derivation我们同样给它一个得分:

NLP 学习札记 04 (Machine Translation)

h是以前提到的三元语言模型,由一坨q构成~~~~

2.Decoding Algorithm: Definitions一个状态的定义:(e1, e2, b, r,α ) e1和e2是两个英文单词,表示翻译的最后两个单词 b是一个长度为n的二进制序列,如果第i号位置为1,表示该单词已经被翻译了 r表示最后一个被翻译的单词的序号 α表示到目前为止该翻译的得分 eg: NLP 学习札记 04 (Machine Translation) 表示前三个单词已经被翻译且最后两个词为must 和also,,其得分为-2.5
相等函数的定义:NLP 学习札记 04 (Machine Translation) 如果q和q‘相等则返回true,相等的条件是: NLP 学习札记 04 (Machine Translation)
next 函数的定义:next(q,p),其中q是一个状态,p是一个翻译的短语,nect函数返回q状态加入p项短语后的状态,,假设为q’,则有: NLP 学习札记 04 (Machine Translation)
ph(q)函数的定义:返回一系列的翻译短语,并且对于状态q来说是合法的,也就是状态q加入这些短语后每个词只翻译了一次,以及它的失真在规定范围内:
NLP 学习札记 04 (Machine Translation)
Add(Q, q', q, p)函数的定义:将状态q加入短语p后的状态q‘加入到集合Q中,集合Q是一系列的状态
具体的伪代码如下: NLP 学习札记 04 (Machine Translation) 一句话描述:有该状态存在则更新最优得分,无该状态存在则加入,用bp来记录反向指针

beam(Q)函数的定义:选择Q的的一个子集,Q是一个集合,包含一系列的状态 首先得到集合中最优的得分: NLP 学习札记 04 (Machine Translation) (注:应该是max而不是argmax) 然后: NLP 学习札记 04 (Machine Translation)搞了半天,Q到底是什么呢?对于一个待翻译的句子,长度为n,我们设定Q0……Qn表示翻译了(0…n)个词的状态集合Decoding alogrithm的过程就是: NLP 学习札记 04 (Machine Translation)
最后返回Qn中最高得分的状态,然后用bp指针一步步得到翻译出来的句子即可。


读书人网 >其他相关

热点推荐