za++ 是一个统计机器翻译工具,不过现在常用做平行语料的词对齐,本文简要介绍了如何使用Giza++进行词对齐。
Giza++安装与编译
下载
官方网站年久失修,从上面找到的链接很多都打不开,并且google-code上面的程序亲测make会有问题,因此推荐从github上面克隆。
|
|
安装
文件有两个文件夹,分别是Giza++v2
和mkcls-v2
,后者是一个工具,暂且无需理会。
在根目录下执行下面的命令,等待编译成功就好了。1make
GIZA++的简单使用
预处理
首先进入Giza++v2的目录中。1cd GIZA++v2
这里我们假设有两个文件,分别是chiense.txt
和english.txt
。这两个文件中每一行都是一个句子,句子的中英文是对应的,即所谓的平行语料。接下来通过简单的操作我们就可以开始训练,然后得到词对齐的标注了。
|
|
这一步会生成4个文件,分别是
- chinese_english.snt
- chinese.vcb
- english_chinese.snt
- english.vcb
顾名思义,*.vcb
文件就是对应的词表,每一行是一个词,记录了这个词的编号和词频;*.snt
文件就是上述两个源文件的对应句子转成vocabulary的index。
然后我们还要生成共现文件。1./snt2cooc.out chinese.vcb english.vcb chinese_english.snt > cooc.cooc
对齐
最后就可以进行对齐了,程序采用HMM的算法,还是比较慢的。1./GIZA++ -s chinese.vcb -t english.vcb -c chinese_english.snt -cooc cooc.cooc -o test
稍微解释一下:-s表示source,-t表示target,-c source-target的句子对, -cooc 上面生成的共现表 -o 输出文件的文件夹。
结果
程序会产生很多过程文件,其中*.A3.final
就是对齐的结果,但是并不那么好看。
中间文件:
116-07-11.143334.xyw00.gizacfg
116-07-11.143417.xyw00.gizacfg
116-07-11.143429.xyw00.gizacfg
116-07-11.143817.xyw00.gizacfg
116-07-11.144017.xyw00.gizacfg
116-07-11.144156.xyw00.gizacfg
116-07-11.144708.xyw00.a3.final
116-07-11.144708.xyw00.A3.final
116-07-11.144708.xyw00.d3.final
116-07-11.144708.xyw00.d4.final
116-07-11.144708.xyw00.D4.final
116-07-11.144708.xyw00.Decoder.config
116-07-11.144708.xyw00.gizacfg
116-07-11.144708.xyw00.n3.final
116-07-11.144708.xyw00.p0_3.final
116-07-11.144708.xyw00.perp
116-07-11.144708.xyw00.t3.final
116-07-11.144708.xyw00.trn.src.vcb
116-07-11.144708.xyw00.trn.trg.vcb
116-07-11.144708.xyw00.tst.src.vcb
116-07-11.144708.xyw00.tst.trg.vcb
对齐结果
# Sentence pair (1) source length 36 target length 54 alignment score : 6.57597e-100
in 1998 , the yili autonomous prefecture cpc committee and the yili prefecture cpc committee made unified arrangements and sent on a trial basis several propaganda teams deep into the schools , villagers ' courtyards , and fields to carry out face - to - face propaganda among the people of all nationalities .
NULL ({ 4 10 11 19 21 22 37 49 51 }) 1998年 ({ 1 2 }) , ({ 3 }) 经过 ({ }) 统一 ({ 17 }) 部署 ({ 18 }) , ({ }) 伊犁州 ({ 5 6 7 8 9 12 13 14 16 }) , ({ }) 地 ({ }) 两 ({ }) 级 ({ }) 党委 ({ 15 }) 开始 ({ }) 尝试 ({ }) 以 ({ }) 宣讲 ({ 26 }) 团 ({ }) 的 ({ 30 }) 形式 ({ }) , ({ }) 深入 ({ }) 学校 ({ 31 }) , ({ 32 }) 村民 ({ 33 34 }) 院落 ({ 20 23 24 25 27 28 29 35 }) , ({ 36 }) 田间 ({ }) 地头 ({ 38 }) , ({ }) 向 ({ 39 44 }) 各族 ({ 52 53 }) 群众 ({ 48 50 }) 进行 ({ 40 41 }) 面对面 ({ 42 43 45 46 }) 宣讲 ({ 47 }) . ({ 54 })