MOSES安装以及使用说明.doc_第1页
MOSES安装以及使用说明.doc_第2页
MOSES安装以及使用说明.doc_第3页
MOSES安装以及使用说明.doc_第4页
MOSES安装以及使用说明.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MOSES安装以及初级说明作为初学者对MOSES现在也没有什么深入的了解就在这里嫌丑,浅显的介绍一下。首先是moses的官网:/moses/里面资料很详细,可以下载说明文档(manual.pdf)按照文档里面的提示一步步进行,一般来说整体只要依照这个步骤就没有问题我现在本机上安装的moses,然后又在服务器上进行的运行,所以安装经验是本机的,但是两面使用的搭配是一样的都是moses+boost+GIZA+IRSTLM。就是操作系统不一样,本机是ubuntu,而服务器是CentOS,但是基本上的过程是一样的。1、 前期安装准备1、 Boost【ubuntu下】apt-get install libboost1.53-all-dev2、GIZAA+【ubuntu下】wget /files/giza-pp-v1.0.7.tar.gztar 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 把这三个文件放进去可以在编译的时候直接指出GIZA+的位置,也可以在编译的时候不指出,在使用的时候再指明,我采用的是后者。3、 IRSTLM这个我在ubuntu和centOS下都编译了,方法都很简单1)【ubuntu下】在编译IRSTLM之前,需要安装两个工具。使用下面的命令来安装这两个工具:$ sudo apt-get install automake$ sudo apt-get install libtool 接下来就可以安装IRSTLM了。先下载软件包,下载地址为:/projects/irstlm/files/使用下面的命令进行安装:tar zxvf irstlm-5.80.03.tgzcd irstlm-5.80.03./regenerate-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下载,所以先安装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://moses-smt/mosesdecoder.git然后进入mosesdecoder目录,编译Moses:./bjam -j4 -with-irstlm=/irstlm的位置 -with-giza=/giza的位置-j4是利用CPU是4核的进行编译也可以./bjam -help获取帮助如果在编译过程中遇到什么问题也许是因为一些编译必须的包没有安装成功,安装一些影响编译的包再进行编译试一下。可以从目录下的BUILD-INSTRUCTIONS.txt获取安装的更多信息。3、 使用moses最开始除了最后翻译一步都是在本机上进行的,但是当进行到最后一步翻译就提醒内存不够了。所以为了不折腾最好还是一开始就在服务器上跑的好。在进行实验之前最好记住刚才安装的几个文件的目录,要不在进行接下来的步骤还要回去一个个找目录位置还是挺麻烦的。P.s.这里w4tcy是我个人的用户文件夹Moses:/home/w4tcy/moses/因为这里主要应用的就是/scripts和/bin两个文件夹,所以可以把这两个文件夹单独提出来/home/w4tcy/moses/scripts/home/w4tcy/moses/bin/Giza+:/home/w4tcy/tools/giaz/这个只要把上文所说的三个执行文件提出即可IRSTLM:/home/w4tcy/tools/irstlm这个我建议一开始就安装到这里。我还不太清楚利用的是里面的什么。在这里我先使用官方提供的预料进行学习测试,因为语料使用的是官方的所以很多步骤就简单多了:1、 预料的预处理在/home/w4tcy/建立一个corpus来存放学习集,官方网站下载学习资料cdmkdir corpuscd corpuswget /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) Truecaser:提取一些关于文本的统计信息/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:将语料中每句话的字和词组都转换为没有格式的形式,减少数据稀疏性问题。/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-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.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 .en 经过这一步之后我们会得到一个*.arpa.en格式的语言模型文件,接下来为了程序的更快载入,使用KenLM对其进行二值化。/home/w4tcy/moses/bin/build_binary .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 -corpus /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 &(朱老师的修改)【特别说明先退出当前目录然后进入根目录./或者退出直接到根目录去用./】./mosesdecoder/scripts/training/train-model.perl-roottrain-corpuscorpus/news-commentary-v8.fr-en.clean-ffr-een-alignmentgrow-diag-final-an-reorderingmsd-bidirectional-fr-lm0:3:/home/trainer1/lm/news-commentary-v8.fr-en.blm.en:8-external-bin-dirbin/ 4、 Tunning翻译模型回到corpus,下载开发集wget /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-test2008.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 /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-model/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复制到binarised-model的文件夹内,做一下改变1. 将PhraseDictionaryMemory改为PhraseDictionaryBinary2. 将PhraseDictionary特征的路径改为$HOME/corpus/working/binarisedmodel/phrase-table3. 将LexicalReordering特征的路径改为$HOME/corpus/binarisedmodel/reordering-table这样程序的运行就快了很多。如果要进行全文翻译,在进行翻译前同样要把语句进行预处理这一步可以到corpus下进行/home/w4tcy/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-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 newstest2011.out得到BLEU评分,整个翻译过程就结束了。最后BLEU评分-lc是无视大小写的BLEU评分,不使用参数-lc是大小写敏感的BLEU评分在tuning和最终test的时候参考译文的数量以及分词等预处理,语言模型是n-gram的都会影响到最终BLEU分数四、补充1、所有training参数1.1 基本选项-root-dir - 存放输出文件的根目录-corpus - 语料库文件名 (全路径名),不包含扩展-e - 英文语料库的拓展文件-f - 外文语料库的拓展文件-lm - 语言模型: : (选项可重复)1.2 翻译模型设置-alignment-factors -translation-factors -reordering-factors -generation-factors -decoding-steps -1.3 词汇化语法重排模型-reordering - 指定重排模型训练一个使用以逗号分隔的config-strings的列表, 参见FactoredTraining.BuildReorderingModel. (default distance)-reordering-smooth - 指定参数用在训练词汇化语法重新排序模型。如果字母u 跟随着常数, 平滑基于实际数量。(default 0.5)1.4 部分training因为MOSES是模块化的可以只使用部分功能,而使用更优异的其他方法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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论