统计机器翻译工具

来源:互联网 发布:netty rpc 网络 编辑:程序博客网 时间:2024/05/18 02:54

导师让重新跑短语对齐,扔了两年了,都忘了怎么弄了。

机器上有一个编译好的MOSES,但是,不知道能不能用

先整理一下以前的实验报告,然后再继续看看怎么用

 

此实验中的工具为Moses的开发包http://www.statmt.org/wmt07/baseline.html

使用步骤就在上面的网页上

各个程序的具体使用方法在http://www.statmt.org/moses/ 页面上有介绍

SepPunct.perl                 整理语料,包括去除多余的空格、小写化等等
        GIZA++                                词对齐
        mert-moses.pl                       最小错误率训练
        mkcls                                  GIZA++需要用到的一个程序,为单词建立类别
        moses                                  Moses的解码器
        mteval-v11b.pl                       NIST提供的评测工具,可以计算BLEU和NIST值 (使                 用时需要注意该脚本的输入格式必须是XML格式的)

snt2cooc.out                         GIZA++需要用到的一个工具
        tokenizer.perl                        英文分词工具,由SMT Workshop 07提供,词干化

 train-factored-phrase-model.perl    Moses训练脚本
        srilm                                   存放SRILM工具的目录

 

在Moses网站上的使用指导中,区分woking-dir 当前目录 –working-dir 参数名 –root-dir后面参数要为绝对路径。


语料处理时要将GBK的文件转成UTF8 “iconv –f gbk –t utf8 inputfile>outputfile”

windows下有一些pl文件在Linux下不能运行需要转换,dos2unix *.pl 或 chmod a+x *.pl

环境变量写入.bash_profile文件

export PATH=$PATH:/home/……/srilm

export SCRIPTS_ROOTDIR=/home/……/moses/scripts

export LC_ALL=C

 


Moses原版本中的symal在合并的时候有出错。更改成新的版本,即可解决此问题。
Pharaoh system第三步的格式(从0开始排序的,前面是源语言,后面是目标语言,按后面目标语言排序,存在一对多,多对多,多对一)
调参时可以采用两个phrase table
decode 时-t可以输出采用的phrase table 和概率

以下是train-factored-phrase-model.perl我常用的参数

--first-step  默认1
--last-step 默认7
1 prepare data
2 run giza++
3 align words
4 get lexical translation table
5 Extract phrases
6 score phrases
7 create configuration file

moses第7步是输出短语调序概率表

第8步是建立生成模型第9步是生成配置文件

 

--alignment
A1、 A2分别为,源语言到目标语言的对齐,目标语言到源语言的对齐
Intersection:A1、 A2 取交集
Union:A1、 A2 取并集
Grow:首先选取intersection的集合,然后,针对这些对齐位置的上,下,左,右方向,如果在union中出现了,则加入到此集合中。
Grow-diag:在grow的基础上,在斜对角线方向,在Union中出现的对齐,也加入到此集合中。
Grow-diag-final:在grow-diag的基础上,不是这个词的邻居,至少现在不是对齐的词,也加入到集合中。
Grow-final在grow的基础上,不是这个词的邻居,至少现在不是对齐的词,也加入到集合中。