收藏 分享(赏)

MOSES安装以及使用说明.doc

上传人:w89153 文档编号:7761059 上传时间:2019-05-25 格式:DOC 页数:12 大小:52.50KB
下载 相关 举报
MOSES安装以及使用说明.doc_第1页
第1页 / 共12页
MOSES安装以及使用说明.doc_第2页
第2页 / 共12页
MOSES安装以及使用说明.doc_第3页
第3页 / 共12页
MOSES安装以及使用说明.doc_第4页
第4页 / 共12页
MOSES安装以及使用说明.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、MOSES 安装以及初级说明作为初学者对 MOSES 现在也没有什么深入的了解就在这里嫌丑,浅显的介绍一下。首先是 moses 的官网:http:/www.statmt.org/moses/里面资料很详细,可以下载说明文档(manual.pdf)按照文档里面的提示一步步进行,一般来说整体只要依照这个步骤就没有问题我现在本机上安装的 moses,然后又在服务器上进行的运行,所以安装经验是本机的,但是两面使用的搭配是一样的都是 moses+boost+GIZA+IRSTLM。就是操作系统不一样,本机是 ubuntu,而服务器是 CentOS,但是基本上的过程是一样的。1、前期安装准备1、Boost

2、【ubuntu 下】apt-get install libboost1.53-all-dev2、GIZAA+【ubuntu 下】wget http:/giza- xzvf giza-pp-v1.0.7.tar.gzcd giza-ppMake在编译后会生成三个可执行文件 giza-pp/GIZA+-v2/GIZA+ giza-pp/GIZA+-v2/snt2cooc.out giza-pp/mkcls-v2/mkcls这三个文件是在之后主要要使用的文件,可以单独把这三个文件提取出来放到一个方便的位置,不觉得麻烦的话也可以每次键入路径,不过使用频率不算高还可以。比如说建立 tools 把这三个文

3、件放进去可以在编译的时候直接指出 GIZA+的位置,也可以在编译的时候不指出,在使用的时候再指明,我采用的是后者。3、IRSTLM这个我在 ubuntu 和 centOS 下都编译了,方法都很简单1) 【ubuntu 下】在编译 IRSTLM 之前,需要安装两个工具。使用下面的命令来安装这两个工具:$ sudo apt-get install automake$ sudo apt-get install libtool 接下来就可以安装 IRSTLM 了。先下载软件包,下载地址为:http:/ zxvf irstlm-5.80.03.tgzcd irstlm-5.80.03./regenera

4、te-makefiles.sh./configure -prefix=$HOME/irstlmmake install这样就编译安装好了 IRSTLM,记住 irstlm 的位置,以后用得到。2) 【centOS 下】其实在这个下面和 ubuntu 里面没有什么区别step 0: sh regenerate-makefiles.shstep 1: ./configure -prefix=/path/where/to/installstep 2: makestep 3: make install二、正式安装 Moses【ubuntu 下】由于 moses 的代码均可用 git 下载,所以先安装

5、git:$ sudo apt-get install git还需要 gcc, zlib and bzip2以构建 moses$ sudo apt-get install build-essential libz-dev libbz2-dev 然后就可以下载 moses 的代码了git clone git:/ mosesdecoder 目录,编译 Moses:./bjam -j4 -with-irstlm=/irstlm 的位置 -with-giza=/giza 的位置-j4是利用 CPU 是4核的进行编译也可以./bjam -help 获取帮助如果在编译过程中遇到什么问题也许是因为一些编译必须

6、的包没有安装成功,安装一些影响编译的包再进行编译试一下。可以从目录下的 BUILD-INSTRUCTIONS.txt 获取安装的更多信息。3、使用 moses最开始除了最后翻译一步都是在本机上进行的,但是当进行到最后一步翻译就提醒内存不够了。 。所以为了不折腾最好还是一开始就在服务器上跑的好。 。在进行实验之前最好记住刚才安装的几个文件的目录,要不在进行接下来的步骤还要回去一个个找目录位置还是挺麻烦的。P.s.这里 w4tcy 是我个人的用户文件夹Moses:/home/w4tcy/moses/因为这里主要应用的就是/scripts 和/bin 两个文件夹,所以可以把这两个文件夹单独提出来/h

7、ome/w4tcy/moses/scripts/home/w4tcy/moses/bin/Giza+:/home/w4tcy/tools/giaz/这个只要把上文所说的三个执行文件提出即可IRSTLM:/home/w4tcy/tools/irstlm这个我建议一开始就安装到这里。 。我还不太清楚利用的是里面的什么。 。在这里我先使用官方提供的预料进行学习测试,因为语料使用的是官方的所以很多步骤就简单多了:1、预料的预处理在/home/w4tcy/建立一个 corpus 来存放学习集,官方网站下载学习资料cdmkdir corpuscd corpuswget http:/www.statmt.o

8、rg/wmt13/training-parallel-nc-v8.tgztar zxvf training-parallel-nc-v8.tgz1)tokenisation:在预料的单词和单词之间或者单词和标点之间插入空白,然后进行后续操作。/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l en news-commentary-v8.fr-en.tok.en/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l fr news-commentary-v8.fr-en.tok.fr2)T

9、ruecaser:提取一些关于文本的统计信息/home/w4tcy/moses/scripts/recaser/train-truecaser.perl -model truecase-model.en -corpus news-commentary-v8.fr-en.tok.en/home/w4tcy/moses/scripts/recaser/train-truecaser.perl -model truecase-model.fr -corpus news-commentary-v8.fr-en.tok.fr3)truecasing:将语料中每句话的字和词组都转换为没有格式的形式,减少数

10、据稀疏性问题。/home/w4tcy/moses/scripts/recaser/truecase.perl -model truecase-model.en news-commentary-v8.fr-en.true.en/home/w4tcy/moses/scripts/recaser/truecase.perl -model truecase-model.fr news-commentary-v8.fr-en.true.fr4)cleaning: 将长语句和空语句删除,并且将不对齐语句进行处理。/home/w4tcy/moses/scripts/training/clean-corpus

11、-n.perl news-commentary-v8.fr-en.true fr en news-commentary-v8.fr-en.clean 1 802、语言模型训练语言模型(LM)用于确保流利的输出,在这一步使用 Irstlm 进行处理。/home/w4tcy/tools/irstlm/bin/add-start-end.sh news-commentary-v8.fr-en.sb.enexport IRSTLM=$HOME/irstlm; /home/w4tcy/tools/irstlm/bin/build-lm.sh -i news-commentary-v8.fr-en.sb.

12、en -t ./tmp -p -s improved-kneser-ney -o news-commentary-v8.fr-en.lm.en/home/w4tcy/tools/irstlm/bin/compile-lm -text news-commentary-v8.fr-en.lm.en.gz news-commentary-v8.fr-en.arpa.en 经过这一步之后我们会得到一个*.arpa.en 格式的语言模型文件,接下来为了程序的更快载入,使用 KenLM 对其进行二值化。/home/w4tcy/moses/bin/build_binary news-commentary-v

13、8.fr-en.arpa.en news-commentary-v8.fr-en.blm.en我们可以在这一步之后测试一下训练的模型是否正确,运用如下的 linux 命令:$ echo “is this an English sentence ?“ | /home/w4tcy/moses/bin/query news-commentary-v8.fr-en.blm.en3、翻译模型的训练mkdir workingcd workingnohup nice /home/w4tcy/moses/scripts/training/train-model.perl -root-dir train -co

14、rpus /home/w4tcy/corpus/news-commentary-v8.fr-en.clean -f fr -e en -alignment grow-diag-final-and -reordering msd-bidirectional-fe -lm 0:3:/home/w4tcy/corpus/news-commentary-v8.fr-en.blm.en:8 -external-bin-dir /home/w4tcy/tools/giza & training.out &(朱老师的修改)【特别说明先退出当前目录然后进入根目录/或者退出直接到根目录去用./ 】./moses

15、decoder/scripts/training/train-model.perl - root train -corpus corpus/news-commentary-v8.fr-en.clean -f fr -e en -alignment grow-diag-final-an -reordering msd-bidirectional-fr -lm 0:3:/home/trainer1/lm/news-commentary-v8.fr-en.blm.en:8 -external-bin-dir bin/ 4、Tunning 翻译模型回到 corpus,下载开发集wget http:/w

16、ww.statmt.org/wmt12/dev.tgztar zxvf dev.tgz在Corpus 内对开发集预料进行处理/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l en news-test2008.tok.en/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l fr news-test2008.tok.fr/home/w4tcy/moses/scripts/recaser/truecase.perl -model truecase-model.en news-test20

17、08.true.en/home/w4tcy/moses/scripts/recaser/truecase.perl -model truecase-model.fr news-test2008.true.fr在进行了和学习集相同的处理之后,对原本的 moses.ini 进行调优进入 working 文件夹然后运行nohup nice /home/w4tcy/moses/scripts/training/mert-moses.pl /home/w4tcy/corpus/news-test2008.true.fr /home/w4tcy/corpus/news-test2008.true.en /

18、home/w4tcy/moses/bin/moses train/model/moses.ini -mertdir /home/w4tcy/moses/bin/ & mert.out &可在最后加上-decoder-flags=“-threads 8“以使用多个线程,因为这个过程非常非常缓慢。5、测试可以直接运行进行单句翻译/home/w4tcy/moses/bin/moses -f /home/w4tcy/corpus/working/mert-work/moses.ini当然,这样很慢,所以我们可以在进行一定的处理加快在 working 文件夹下进行创建mkdir binarised-mo

19、del/home/w4tcy/moses/bin/processPhraseTable -ttable 0 0 train/model/phrase-table.gz -nscores 5 -out binarised-model/phrase-table/home/w4tcy/moses/bin/processLexicalTable -in train/model/reordering-table.wbe-msd-bidirectional-fe.gz -out binarised-model/reordering-table然后将 working/mert-work/moses.ini

20、复制到 binarised-model 的文件夹内,做一下改变1. 将 PhraseDictionaryMemory 改为 PhraseDictionaryBinary2. 将 PhraseDictionary 特征的路径改为$HOME/corpus/working/binarisedmodel/phrase-table3. 将 LexicalReordering 特征的路径改为$HOME/corpus/binarisedmodel/reordering-table这样程序的运行就快了很多。如果要进行全文翻译,在进行翻译前同样要把语句进行预处理这一步可以到 corpus 下进行/home/w4

21、tcy/moses/scripts/tokenizer/tokenizer.perl -l en newstest2011.tok.en/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l fr newstest2011.tok.fr/home/w4tcy/moses/scripts/recaser/truecase.perl -model truecase-model.en newstest2011.true.en/home/w4tcy/moses/scripts/recaser/truecase.perl -model truecase

22、-model.fr newstest2011.true.fr进行翻译nohup nice /home/w4tcy/moses/bin/moses -f /home/w4tcy/corpus/working/binarised-model/moses.ini newstest2011.out最后进行 BLEU 评分/home/w4tcy/moses/scripts/generic/multi-bleu.perl -lc newstest2011.true.en : (选项可重复)1.2 翻译模型设置-alignment-factors -translation-factors -reorderi

23、ng-factors -generation-factors -decoding-steps -1.3 词汇化语法重排模型-reordering - 指定重排模型训练一个使用以逗号分隔的 config-strings 的列表, 参见 FactoredTraining.BuildReorderingModel. (default distance)-reordering-smooth - 指定参数用在训练词汇化语法重新排序模型。如果字母“u“ 跟随着常数, 平滑基于实际数量。(default 0.5)1.4 部分 training因为 MOSES 是模块化的可以只使用部分功能,而使用更优异的其他

24、方法1. 准备数据2. 运行 GIZA+3. 字对齐4. 得到词汇转换表5. 提取短语6. 短语评分7. 构建重排序模型8. 构建生成模型9. 创建配置文件-first-step - 训练过程的第一步 (default 1)-last-step - 训练过程的最后一步 (default 7)1.5 文件路径-corpus-dir - 语料库的目录 (default $ROOT/corpus)-lexical-dir - 词汇翻译概率的目录 (default $ROOT/model)-model-dir - 模型目录 (default $ROOT/model)-extract-file - 抽取

25、的文件 (default $ROOT/model/extract)-giza-f2e - GIZA+ 目录 (default $ROOT/giza.$F-$E)-giza-e2f - 倒转的 GIZA+ 目录 (default $ROOT/giza.$E-$F)1.6 对齐的启发式-alignment - 用于词对齐的启发式: intersect, union, grow, grow-final, grow-diag, grow-diag-final (default), grow-diag-final-and, srctotgt, tgttosrcintersect - 两个 GIZA+算法

26、使用后的交集。这通常产生大量被提取的短语, 因为未对齐短语产生大量自由对齐的短语。union - 两个 GIZA+算法使用后的并集。grow-diag-final - 默认的启发式grow-diag - 同上,但是不运行 FINAL()功能grow - 同上,但是使用不同的临近定义。现在对角相邻对齐点被排除在外。 grow - 没有对角相邻对齐点,但是有 FINAL()1.7 最大短于长度-max-phrase-length - 加入短于表中的最大短于长度(default 7)1.8 GIZA+选项-giza-option - GIZA+ 训练的额外选项1.9 大型训练语料的处理-parts - 通过部分运行 snt2cooc 为 GIZA+准备数据-direction - 仅在1、2的指导下运行训练步骤 2 (并行化的)1.10 其他-verbose - 打印附加的词对齐信息-no-lexical-weighting - 对于短语表仅使用条件概率不使用词汇权重

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报