使用mose对giza++生成的单向对齐文件进行词对齐对称化(双向对齐)

giza++是一个词对齐的工具,但是其只能生成两个单向对齐的文件~.A3.final,为了实现双向对齐,可使用mose来实现
mose通过脚本train-model.perl来进行翻译系统的训练,成功运行后会产生4个文件夹:corpus model giza.zh-en giza.en-zh。这个脚本实际上会经过下列9个步骤,而我们只需要第三步词对齐,可通过指定fisrt-step 和 last-step 这两个参数实现

使用mose对giza++生成的单向对齐文件进行词对齐对称化(双向对齐)_第1张图片
mose训练

具体步骤如下
实验环境:ubuntu 16.04

  1. 安装mose,具体可参考我的上篇博客
  2. 先建一个你想要输出文件存放的文件夹如
mkdir train_model

创建单向对齐的文件夹

mkdir giza.en-zh
mkdir giza.zh-en

将giza++得到的两个单向对齐文件(注意保持命名一致 英文en 中文zh)放入这两个相应的文件夹中并压缩为gz格式

cd giza.en-zh
gzip en-zh.A3.final
cd giza.zh-en
gzip zh-en.A3.final

目录结构像这样

3.调用train-model.perl得到双向对齐文件
train-model.perl在mose文件夹下的scripts/training 文件夹里


使用mose对giza++生成的单向对齐文件进行词对齐对称化(双向对齐)_第2张图片
train-model.perl路径

运行命令

/home/zhen/smt/mosesdecoder/scripts/training/train-model.perl --root-dir . --f zh --e en --first-step 3 --last-step 3

参数解释:
root-dir:输出文件夹的位置 这里是. 当前文件夹
f:外语文件名(英语之外的其他语言就是外语)
e:英语文件名
first-step:从第几步训练步骤开始
last-step:到第几步训练步骤结束,这里我们只用用到第三步词语对齐,所以都设置为3
运行过程中可能会出现下面的不匹配信息,这是因为语料中可能存在噪声(英文翻译和中文对不上号),通过这些行号可以将不匹配的中英句子去掉除掉噪声

使用mose对giza++生成的单向对齐文件进行词对齐对称化(双向对齐)_第3张图片
sentence mismatch

运行结束后会产生model文件夹,里面的文件aligned.grow-diag-final就是双向对齐了的文件(mose里默认双向对齐的方法就是grow-diag-final)

使用mose对giza++生成的单向对齐文件进行词对齐对称化(双向对齐)_第4张图片
aligned.grow-diag-final文件部分内容展示

参考资料:
http://www.statmt.org/moses/?n=FactoredTraining.AlignWords
mose官方的词语对齐文档
https://blog.csdn.net/han_xiaoyang/article/details/10112075
我就是从这篇博客看到可以用mose做双向对齐的
http://www.statmt.org/moses/?n=FactoredTraining.TrainingParameters train_model.perl全部参数介绍

你可能感兴趣的:(使用mose对giza++生成的单向对齐文件进行词对齐对称化(双向对齐))