在上一步预处理完成之后,平行句对中的中文部分都被切分成了相应的短语,而英文的大小写、格式、相应的空格也都加上了,在这之后就可以完成词语对齐的过程了。词语对齐的目标是得到中英文词或短语的对齐信息,便于翻译系统做解码时寻找相应的phrase。
词语对齐这一步一般都采用开源工具完成,比如现在用的最多的GIZA++,但是在平行语料数据量大的情况下,可能其完成整个词语对齐的过程耗时较长。现在也有MGIZA++,它是GIZA++的一个多线程版本,并对GIZA++的内存使用等方面做了优化,可以同时在linux下和windows下编译。下载的编译工具已经改成了CMake,不过由于版本更新的问题,安装会比较麻烦一些,有可能会有一些编译问题。也可以使用伯克利大学的Berkeley Aligner进行词语对齐,据说准确率比GIZA++略有提高,但本人没有试过,大家有兴趣可以试试,我这里还是以GIZA++为例给大家介绍一下词语对齐的过程。
GIZA++是GIZA(SMT工具包EGYPT的一个组成部分)的扩展,扩展部分主要由Franz Josef Och开发。GIZA++主要算法是IBM model、HMM等。 之前在moses翻译系统的介绍中提到了一部分其安装的过程,这里再提一下吧。
1、GIZA++运行环境:Linux,并预装软件gcc、g++。
2、GIZA++下载地址:
http://code.google.com/p/giza-pp/downloads/detail?name=giza-pp-v1.0.7.tar.gz
3、编译:
a)首先进入到GIZA++根目录
b)解压包,指令:tar zxvf giza-pp-v1.0.7.tar.gz
c)进入到解压后的目录,指令:cd giza-pp
d)编译,指令:make
4、GIZA++运行和使用:
a)新建目录Alignment,并将编译后的GIZA++-v2目录下的“GIZA++”、“snt2cooc.out”、“plan2snt.out”文件和mkcls-v2目录下的“mkcls”文件,拷贝到Alignment目录下,同时将预处理后的文件chinese.txt和english.txt作为GIZA++工具的输入文件放到其中。
b)在终端依次运行以下命令,获得下一步需要的文件:c2e.A3.final 和 e2c.A3.final。
$> ./plain2snt.out