学习月记_sep

来源:互联网 发布:淘宝天音软件 编辑:程序博客网 时间:2024/05/11 23:53

9@6

开始准备学习最大熵:先学习模型,然后对maxent工具进行了解。


9@7

今天看了1篇博客和一个PPT,对最大熵模型有了初步的了解。

大概思路知道,具体细节还是不清楚。没有对模型进行具体的实验很多参数和实验的训练感觉很飘渺。

快速浏览了《A Maximum Entropy Approach to ChineseWord Segmentation》,paper里面没有涉及模型,就是讲如何找几个特征玩。


9@8

今天看到词语对齐部分的PPT,词语对齐主要使用一个词语相似度模型和一个位置扭曲度模型。

词语相似度的计算分为基于词典的方法和基于双语句子对齐语料库的方法。

thinking : 以前的工作在做基于词典的方法的时候觉得就直接使用词典进行匹配,不知道如何进行统计意义的计算。

假设一个很挫的词典对 think 仅收录 [ think  , 思考 ]这个词条。现在有词对{think   , 思索 }。如果计算P{think   , 思索 }的对齐概率。

一般是这么认为的,既然有词对 [ think  , 思考 ],并且think的译文中有个“思”与我们现在的词对“思索”有相同的部分。那么我们可以猜测思索和think是有一定的互译关系的(概率大小问题)。

其实就是通过已有的互译对 [ think  , 思考 ]对新的词对{think   , 思索 }进行概率计算。可考虑方法一个是计算 单语中“思考”和“思索”的DICE系数。还有一个是计算 “思考” 和 “思索” 在同义词词典的距离。


基于语料库的方法:现在有一个双语句子对齐的语料库,还是{think   , 思索 }的对齐概率。可以将出现 “ think ”的句对组合成为句对集合E , 出现 “思索” 的句对组合成句对集合C 。注意上面的E 与 C均是句对集合,是双语句对集合。然后计算句对集合C 和 E的DICE系数。


9@13

读Kevin Knight的paper,关于统计机器翻译的文章

以前所看所想实在是太水了,很有感触。


thinking:

(一)

以前在词对齐阶段。理解很肤浅。认为统计方法词对齐嘛,就是先学习参数,然后根据参数进行对齐词选择。

这是很错误的。why?在IBM模型学习中参数是从对齐的词组中进行学习的。那词对齐词组是怎么来的呢?词对齐词组是根据学习的参数进行生成的。hah,绕了吧。这就是Kevin说的Chicken and Egg问题。

用什么方法求解呢?EM算法。简单讲来就是首先对每个词分配统一的概率,然后A,根据拥有的概率参数计算词组中对齐的概率。B,根据拥有的词组对齐概率计算每个词的翻译概率。再然后呢?A - B - A - B - ………………直到收敛。


(二)

如何评价一个语言模型的好坏。

对这个问题。我以前没有怎么考虑过。以后必须有这样的路子:一个模型,应该考虑:A, 它符合我们抽象的事物不? B,如何对模型进行训练(也就是模型参数的学习)C, 如何评价模型的好坏。

对于语言模型,如何评价其好坏呢? easy。 给定训练的语料 train data,让模型进行训练。然后,对给定的测试语料test data,让模型进行评价。<可以给出一些好的语料,看哪个模型的打分高。也可以给一些差语料(病句),看哪个模型打分低>

由于有时候我们的模型需要进行调参,所以我们需要对语料进行分拆:一部分应该就是所谓的开发集,调参用的。另一部分应该就是测试语料。


9@16

看了看C++ Primer。马上要改用c++了。需要把以前的东西捡起来。看了看泛型算法和容器。


9@17 - 9@21

学习层次短语模型。David Chiang一篇paper。

看了数日,还是一头雾水。细节的地方太难弄了。痛苦不堪。

what to learn:

层次短语模型。这个模型的理解起来比基于词的模型和基于短语的模型更加麻烦。模型的训练过程还需要参考另外几篇论文。很是烦恼。

基于层次的模型。是吸收基于短语模型局部调序和基于句法模型长距离调序的优点得到的一个模型。模型中的层次短语是指包含变量(其实就是短语)的短语。有了这个层次短语,我们就能在一定程度上克服基于短语模型长距离调序的不足,得到比较理想的结果。有了这些层次短语,我们就可以抽取很多很多推导规则(同步上下文无关文法中的规则,需要一点编译原理的知识)。层次短语中对每个句对,可以模仿文法一样从起始符S使用我们已经得到的规则进行推导,得到指定的句对。

层次短语模型中没有使用信源信道模型,使用的是更一般的对数线性模型进行数学表示。

这个模型是如何进行训练的呢?首先,对train data进行层次短语抽取。然后对抽取的层次短语进行几个特征的参数估计。

解码的时候,对每个翻译的句子进行parser(就是从句子到起始符S的逆向推导,文法方面的知识。)可能得到几个不同的推导路径。解码的步骤就是

寻找一条其得分最高的路径。对应的英文句子就是我们需要得到的翻译译文。


coding:试着编程抽取规则。


9@22-9@28

有其他事情要忙,麻烦死的。

最近看的一个 Minimum Error Rate Training in Statistical MachineTranslation。所思所得记录在click here。

其他时间,酱油 酱油 酱油。。。。

十一的时候,实验室没多少人。我也准备玩个几天。学习几天。