使用GIZA++进行平行语料的词对齐
在使用moses搭建机器翻译系统时,词对齐的过程是和模型训练结合在一起的,GIZA++运行的很多细节都被跳过。本文是将GIZA++单独拿出来,关注其从编译、运行到最终获取对齐文件各阶段的细节问题,以求更加深刻地理解GIZA++的工作原理。
1、 编译安装GIZA++
最新版本的GIZA++可以从下列链接中找到http://code.google.com/p/giza-pp/downloads/list下载其中的giza-pp-v1.0.7.tar.gz。这一版本相比之前的版本有了很多改进。解压缩文件,进入giza-pp文件夹,运行命令make,编译成功。之后会在 GIZA++-v2 和 mkcls-v2 目录下各生成一些可执行文件(如GIZA++、mkcls等)。
2、 实验
假设我们有汉英平行语料en2ch.en和en2ch.ch
2.1创建GIZA++所需文件
a、运行命令 ./plain2snt.out en2ch.en en2ch.ch,将平行语料转化为 GIZA++ 格式
b、获取共现文件
./snt2cooc.out en2ch.en.vcben2ch.ch.vcb en2ch.en-en2ch.ch.snt(a中生成) > en2ch.cooc
./snt2cooc.out en2ch.ch.vcben2ch.en.vcb en2ch.ch-en2ch.en.snt(a中生成)> ch2en.cooc
c、创建mkcls文件
./mkcls –pen2ch.en –Ven2ch.en.vcb.classes opt
./mkcls –pen2ch.ch –Ven2ch.ch.vcb.classesopt
2.2 运行GIZA++
./GIZA++-S en2ch.en.vcb –T en2ch.ch.vcb –Cen2ch.en-en2ch.ch.snt -CoocurrenceFile en2ch.cooc -O e2c
./GIZA++ -S en2ch.ch.vcb –T en2ch.en.vcb –C en2ch.ch-en2ch.en.snt -CoocurrenceFile ch2en.cooc -O c2e
3、 总结
本文列出了单独使用GIZA++进行词对齐时的简单步骤,以备后续工作中参考。