MOSES安装以及使用说明
更新时间:2024-06-18 04:18:01 阅读量: 综合文库 文档下载
MOSES安装以及初级说明
作为初学者对MOSES现在也没有什么深入的了解就在这里嫌丑,浅显的介绍一下。
首先是moses的官网:http://www.statmt.org/moses/
里面资料很详细,可以下载说明文档(manual.pdf)按照文档里面的提示一步步进行,一般来说整体只要依照这个步骤就没有问题
我现在本机上安装的moses,然后又在服务器上进行的运行,所以安装经验是本机的,但是两面使用的搭配是一样的都是moses+boost+GIZA+++IRSTLM。就是操作系统不一样,本机是ubuntu,而服务器是CentOS,但是基本上的过程是一样的。
一、前期安装准备 1、Boost【ubuntu下】
apt-get install libboost1.53-all-dev 2、GIZAA++【ubuntu下】
wget http://giza-pp.googlecode.com/files/giza-pp-v1.0.7.tar.gz tar xzvf giza-pp-v1.0.7.tar.gz cd giza-pp Make
在编译后会生成三个可执行文件 · 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了。先下载软件包,下载地址为: http://sourceforge.net/projects/irstlm/files/ 使用下面的命令进行安装: tar zxvf irstlm-5.80.03.tgz cd irstlm-5.80.03
./regenerate-makefiles.sh
./configure --prefix=$HOME/irstlm make install
这样就编译安装好了IRSTLM,记住irstlm的位置,以后用得到。 2)【centOS下】
其实在这个下面和ubuntu里面没有什么区别 step 0: sh regenerate-makefiles.sh
step 1: ./configure [--prefix=/path/where/to/install] step 2: make
step 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://github.com/moses-smt/mosesdecoder.git 然后进入mosesdecoder目录,编译Moses:
./bjam -j4 \\ --with-irstlm=/irstlm的位置 --with-giza=/giza的位置 -j4是利用CPU是4核的进行编译 也可以./bjam --help获取帮助
如果在编译过程中遇到什么问题也许是因为一些编译必须的包没有安装成功,安装一些影响编译的包再进行编译试一下。
可以从目录下的BUILD-INSTRUCTIONS.txt获取安装的更多信息。 三、使用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来存放学习集,官方网站下载学习资料 cd
mkdir corpus cd corpus
wget http://www.statmt.org/wmt13/training-parallel-nc-v8.tgz tar zxvf training-parallel-nc-v8.tgz
1)tokenisation:在预料的单词和单词之间或者单词和标点之间插入空白,然后进行后续操作。
/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l en <
training/news-commentary-v8.fr-en.en > news-commentary-v8.fr-en.tok.en /home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l fr <
training/news-commentary-v8.fr-en.fr > news-commentary-v8.fr-en.tok.fr 2)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.fr
3)truecasing:将语料中每句话的字和词组都转换为没有格式的形式,减少数据稀疏性问题。
/home/w4tcy/moses/scripts/recaser/truecase.perl --model truecase-model.en < news-commentary-v8.fr-en.tok.en > news-commentary-v8.fr-en.true.en
/home/w4tcy/moses/scripts/recaser/truecase.perl --model truecase-model.fr < news-commentary-v8.fr-en.tok.fr > news-commentary-v8.fr-en.true.fr
4)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 80 2、语言模型训练
语言模型(LM)用于确保流利的输出,在这一步使用Irstlm进行处理。 /home/w4tcy/tools/irstlm/bin/add-start-end.sh <
news-commentary-v8.fr-en.true.en > news-commentary-v8.fr-en.sb.en export 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 news-commentary-v8.fr-en.arpa.en 经过这一步之后我们会得到一个*.arpa.en格式的语言模型文件,接下来为了程序的更快载入,使用KenLM对其进行二值化。
/home/w4tcy/moses/bin/build_binary news-commentary-v8.fr-en.arpa.en news-commentary-v8.fr-en.blm.en
我们可以在这一步之后测试一下训练的模型是否正确,运用如下的linux命令: $ echo \news-commentary-v8.fr-en.blm.en 3、翻译模型的训练 mkdir working cd working
nohup 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 - 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://www.statmt.org/wmt12/dev.tgz tar zxvf dev.tgz 在
Corpus内对开发集预料进行处理
/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l en < dev/news-test2008.en > news-test2008.tok.en
/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l fr < dev/news-test2008.fr > news-test2008.tok.fr
/home/w4tcy/moses/scripts/recaser/truecase.perl --model
truecase-model.en < news-test2008.tok.en > news-test2008.true.en /home/w4tcy/moses/scripts/recaser/truecase.perl --model
truecase-model.fr < news-test2008.tok.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=\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改为PhraseDictionaryBinary 2. 将PhraseDictionary特征的路径改为
$HOME/corpus/working/binarisedmodel/phrase-table 3. 将LexicalReordering特征的路径改为
$HOME/corpus/binarisedmodel/reordering-table 这样程序的运行就快了很多。
如果要进行全文翻译,在进行翻译前同样要把语句进行预处理 这一步可以到corpus下进行
/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l en < dev/newstest2011.en > newstest2011.tok.en
/home/w4tcy/moses/scripts/tokenizer/tokenizer.perl -l fr < dev/newstest2011.fr > newstest2011.tok.fr
/home/w4tcy/moses/scripts/recaser/truecase.perl --model
truecase-model.en < newstest2011.tok.en > newstest2011.true.en /home/w4tcy/moses/scripts/recaser/truecase.perl --model
truecase-model.fr < newstest2011.tok.fr > newstest2011.true.fr 进行翻译
nohup nice /home/w4tcy/moses/bin/moses -f
/home/w4tcy/corpus/working/binarised-model/moses.ini < newstest2011.true.fr > 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 -- 指定参数用在训练词汇化语法重新排序模型。如果字母\跟随着常数, 平滑基于实际数量。(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 -- 词汇翻译概率的目录 (default $ROOT/model) --model-dir -- 模型目录 (default $ROOT/model)
--extract-file -- 抽取的文件 (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, tgttosrc
intersect -- 两个GIZA++算法使用后的交集。这通常产生大量被提取的短语, 因为未对齐短语产生大量自由对齐的短语。 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 -- 对于短语表仅使用条件概率不使用词汇权重
正在阅读:
MOSES安装以及使用说明06-18
20XX农村垃圾清理合同模板04-17
苏教版2014-2015二年级数学第一学期期末教学质量检测试卷03-28
《电工电子技术》期末复习资料09-27
江西省道路运输业就业人员数量及薪酬情况数据分析报告2018版05-08
省担保集团 尽职调查报告08-10
1安全生产责任制度03-02
知识竞赛题04-09
信息系统项目管理师考试九大管理知识汇总06-06
三年级第一学期数学每天五道题106-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 使用说明
- 以及
- 安装
- MOSES
- 《伊索寓言》评课稿
- MSP430单片机课程设计
- 北方地区和南方地区
- 2018入党积极分子培训知识测试题库大全(含答案)
- 关于编制养生休闲食品项目可行性研究报告编制说明
- 新人教版三年级数学上册单元试卷
- 江苏省2018年下半年测绘职业技能鉴定《工程测量员》考试试题
- 星级收费所考核评定实施方案(完整版)
- 秧歌比赛解说词
- 吉大16秋学期《医学统计学》在线作业一
- 2018部编人教版小学二年级语文下册 全册教材 公开课教学设计
- 2011年黑龙江哈尔滨市中考化学试卷
- 广西南宁市第八中学2015-2016学年高二上学期期末考试试题
- 2.1.2指数函数及其性质教案(第一课时)
- 生理英文名词解释
- 警惕!勿陷入国家公务员备考五大误区 - 图文
- 人类生存与环境保护 论文
- 如何送替身和化解小儿关煞
- 试析大学生网络暴力行为的差异性
- 1947年中华民国宪法(全)