一、BinaryPhraseTableswithOn-demandLoading
顾名思义,就是moses具有这样一个功能:将词表(phrasetable)二值化并按所需(所需要翻译的内容)载入需要的部分。这是因为一个实际的翻译系统,其phrasetable通常会非常大,大到很难一次性将其载入内存。
首先需要将标准ascii编码的phrasetables转化成二值化的格式,以下是其一个例子(标准phrase-table,有5个得分的那种):
exportLC_ALL=C
catphrase-table|sort|bin/processPhraseTable\
-ttable00--nscores5-outphrase-table
其中参数:
·-ttableintintstring--最后的string表示的是要转换的phrasetable名称,如果从标准输入读取,该参数设为'-',如上例所示
·-outstring--自己设定的输出的二值化ttable前缀名
·-nscoresint--ttable中打分的个数(例如这里是5)
注意,若你的数据是UTF-8格式编码的,你需要先设定一下你的系统环境变量,即exportLC_ALL=C,之后再sort(排序),当然如果你输入的phrasetable是已经排序好的,可略过这一步。得到的二值化phrasetable如下所示:
phrase-table.binphr.idx
phrase-table.binphr.srctree
phrase-table.binphr.srcvoc
phrase-table.binphr.tgtdata
phrase-table.binphr.tgtvoc
二、词对词对齐输出(Word-to-wordalignment)
在做解码的时候,有两个参数可以帮助输出最后的短语对齐信息。这两个参数分别是:
-alignment-output-file[file]
这个将在做完翻译(解码)之后将对其信息写入file中。
-print-alignment-info-in-n-best
这个将在生成的n-best文件中,每一个结果之后都另起一行标明其对齐信息。
在这里又要提一下上面二值化得到的5个文件了,如果在对phrasetable二值化的时候,其中.scrtree和.tgtdata的两个文件将以.wa后缀结尾。
三、产生n-Best文件
Moses自然也支持产生n-Best结果(前n个解码时搜索算法搜索到的路径)。你只需要在解码的时候指定生产的n-Best结果存储文件即可。
例如以下是一个示例命令:
moses-fmoses.ini-n-best-listlistfile100<in
执行命令之后,解码后的前100最佳结果将存储在listfile中。
打开n-best文件,可以看到起内部结构如下所示:
0|||wemustdiscussongreatervision.|||d:0-5.5643800-7.0737600\
lm:-36.0974-13.3428tm:-39.6927-47.8438-15.4766-20.50034.99948w:-7|||-9.2298
0|||wemustalsodiscussonavision.|||d:-10-2.34550-1.92155-3.218880-1.51918\
lm:-31.5841-9.96547tm:-42.3438-48.4311-18.913-20.00865.99938w:-8|||-9.26197
0|||itisalsodiscussavision.|||d:-10-1.63574-1.60944-2.70802-1.60944-1.94589-1.08417\
lm:-31.9699-12.155tm:-40.4555-46.8605-14.3549-13.22474.99948w:-7|||-9.31777
N-best文件中的每一行都是由以下内容组成的(它们之间用|||分隔开):
Ø翻译原句编码,例如以上的0表示这些结果都是第一个句子的n-best结果。
Ø翻译结果。
Ø单独成分打分
Ø加权后总得分
这里需要注意的一点是,生成的n-best句子并非每一个都是不一样的,里面可能会完全一样的句子,但是得分不一样,这是因为他们有不同的短语组合方式。
当然,你完全可以只看不同的n-best翻译结果,这个只需要添加关键词distinct就可以完成。如下:
moses-fmoses.ini-n-best-listlistfile100<in
这样,在有相同的句子出现的时候,只出现概率最高的那句。
四、MinimumBayesRiskDecoding
最小贝叶斯风险解码由ShankarKumar和BillByrne在04年提出的HLT/NAACL上提出。大致说来,选择这种方法decoding(翻译)的时候,我们并不选择最大概率的翻译结果,此时我们输出最可能是正确结果的翻译(thetranslationthatismostsimilartothemostlikelytranslations),这需要一个相似度准则来估测相似性,Moses中使用到的是BLEU打分。
使用MBR做decoding非常简单,只需要在解码时添加参数-mbr即可。
moses-fmoses.ini-mbr<in
MBR解码默认对top200的翻译结果进行选择,选出其中满足最小贝叶斯风险的结果,当然这个数值是可以修改的,方法是通过参数-mbr-size指定,例如:
moses-fmoses.ini-decoder-type1-mbr-size100<in
MBR解码需要翻译分数转换成为概率。默认的是使用log概率,但是通过scalingscores你可能可以得到更好地结果。例如可使用以下指令:
moses-fmoses.ini-decoder-type1-mbr-scale0.5<in
五、LatticeMBRandConsensusDecoding
事实上,在EMR解码被提出后一些年内,研究人员对其进行扩展优化,使得翻译解码速度可以更快同时我们也可以得到更好的翻译结果。具体的论文可参见Trombleetal(2008),Kumaretal(2009),DeNeroetal(2009),而ngram后验(ngramposteriors,是LatticeMBR解码所需的)和ngram期望(ngramexpectations,是Consensus解码所需的)都是使用论文DeNeroetal(2010)中所描述的一个算法计算得到的。现在moses所作的latticeMBR和consensus解码都是基于n-best重排序来完成的。话句话说,我们假设最佳的翻译结果一定在我们的n-best结果中。
下面介绍一下影响latticembr和consensus解码结果的一些可设定参数:
·-lmbr--使用LatticeMBR解码
·-con--使用Consensus解码
·-mbr-size--后接数字,指明MBR解码时的n-bestlist取值大小
·-mbr-scale--后接数字,指明MBR解码时的幅度基准因子
·-lmbr-pruning-factor--meanwordspernodeinprunedlattice,如论文Trombleetal(2008)所述,默认值为30
而latticeMBR有更多的参数可以设定,也都是论文Trombleetal(2008)所提到的,可通过以下参数设定:
·-lmbr-p--后接数值表明unigram精度(缺省情况下默认值为0.8)
·-lmbr-r--后接数值表明ngram准确比率(precisionratio,默认值为0.6)
·-lmbr-
thetasTHETASInsteadofspecifyingpandr,latticeMBRcanbeconfiguredbyspecifyingallthengramweightsandthelengthpenalty(5numbers).Thisisdescribedfullyinthereferences.
·-lmbr-map-weightWEIGHTTheweightgiventothemaphypothesis(default0)
从上述介绍可以发现,latticeMBR有非常多的参数需要设置,moses提供了一个字格搜索(gridsearch)的可执行文件。编译成功过后,你可以找到一个lmbrgrid存放在bin下面。一条典型的指令如下所示:
./lmbrgrid-lmbr-p0.4,0.6,0.8-lmbr-r0.4,0.6,0.8-mbr-scale0.1,0.2,0.5,1-lmbr-pruning-factor\
30-mbr-size1000-fmoses.ini-iinput.txt
运行之后得到的结果每一行的格式如下所示:
<sentence-id>|||<p><r><pruning-factor><scale>|||<translation>
就目前的mosesLatticeMBR实验结果看来,当以上参数挑选合适的时候,latticeMBR能使得系统得到的翻译结果有一个小程度的提高(阿拉伯语数据集上提高了0.4)。以下是moses团队对一定数量的句子实验得到的一个优化参数设置:
-lmbr-p0.8-lmbr-r0.8-mbr-scale5-lmbr-pruning-factor50
六、处理不认识的短语
在moses解码的时候,有可能会遇到phrasetable中没有的短语,而在默认的情况下,moses会将这未翻译的短语也放置在其余翻译好的短语中进行排序,结果可能会影响最后翻译出来的句子的短语顺序。这时候你可以选择放弃未翻译的短语(不将其放入翻译结果中)。
可以通过解码时加入参数-drop-unknown来实现该功能。
当我们实际完成翻译任务时,放弃未知的短语可以让最后的BLEU得分提高一些,但是人们对该句话的理解程度变化未知,有可能人们反而因缺失成分而更加不理解。
七、EarlyDiscardingofHypotheses
在束搜索(BeamSearch)中,许多假说被创建,但其中一些太不合理以至于甚至无法进入堆中。对于它们中的许多,甚至在建立假设之前就可以明确它是没有用的。去掉它们会对速度的提升也有帮助,当然也有可能丢掉了一种合理的翻译可能性,我们一般将阈值设在0.5和1之间。用法如下指令所示:
-early-discarding-thresholdTHRESHOLD--使用提前丢弃一部分假设信息,设定的阈值为THRESHOLD(default:0=notused)。
八、多翻译表和备选模型
Moses允许使用多个翻译表,一共有两种方法可以使用它们。
1)两个翻译短语表(translationtables)用于评分的:这意味着,每一个翻译选项在每个表中都选一次,并各自打分。同时这样的做法,也要求对于翻译的内容,两张表中都要有对应的翻译结果:如果其中一个表中没有,则这种情况下没办法得到结果。
2)其中一个翻译短语表用于评分:翻译选项先从一个表中选,再从另一张表中收集其它选项。如果相同的翻译选项在多个表中发现,则每次遇见这种情况,一个新的不同的翻译结果都会被创建,但它们的分数是不同的。
在任何情况下,每一个翻译表有它自己的一组权重。
首先,你需要的指定moses.ini配置文件的[ttable-file]选项,例如:
[ttable-file]
005/my-dir/table1
005/my-dir/table2
第二步,你需要在配置文件中[weight-t]设置适当数量的权重,在我们的例子中,总共是10个参数(每个表5个)。
第三,你需要在配置文件[mapping]下指定这些表是如何使用的。像上文提到的,有两种使用方法:
使用两个表进行打分:
[mapping]
T0
T1
任一表的得分:
[mapping]
0T0
1T1
注:这里我们使用的其实是moses使用不同解码路径的能力。“T”前面的数字定义一条解码路径,因此,在第二个例子中是两个不同的指定的路径进行解码。解码路径也可能包含额外的映射的步骤,例如使用不同的因素(factors)的生成步骤和翻译的步骤。
另外请注意,有没有办法做到让系统“在翻译选项同时出现在两张表中时,使用两张表的结果。而当结果只出现在一张表时,只使用出现的这张表”。为了有效地使用这个选项,你可能会创建第三个表,其包含的上述两个翻译短语表的交集,并从每个表中删除共享短语对。
退避模型(BackoffModels):您可能想更倾向于使用第一个表,而只在没有翻译选项在第一个表时使用第二个翻译短语表。换句话说,第二个表仅仅是回退的表格可用于未知的第一个表中的单词和短语。
例如,如果你有两个翻译表,你想使用第二个未知词,你应该指定:
[decoding-graph-backoff]
0
1
0表示对第一个表,使用全部内容,1表示,第二个表用于对未知的大小为1的n-gram,进行使用。
分享到:
相关推荐
MOSES
MOSES算法MOSES算法.pdf
全面介绍moses机器翻译系统的文档,既是使用手册,也是机器翻译教程。
moses文档 指导更好的使用机器翻译系统moses
从Moses前期工作,Moses统计机器翻译系统的环境搭建到准备语料库,标注,训练语言模型,训练翻译模型,调优,测试等整个步骤特别详细。“只要看懂中文,剩下的本文帮你解决”!
This document serves as user manual and code guide for the Moses machine translation decoder. The decoder was mainly developed by Hieu Hoang and Philipp Koehn at the University of Edinburgh and ...
MOSES已用于多种商业应用中,包括对医疗患者和医师临床数据的分析,以及多种不同的金融系统。 OpenCog还使用它来学习自动行为,动作和动作,以响应人工生命虚拟代理(例如,宠物狗游戏的化身)的感知刺激。 未来的...
Spectral Analysis of Signals Petre Stoica, Uppsala University Randolph L. Moses, Ohio State University Prentice Hall, 2005 ISBN: 0-13-113956-8
Spectral Analysis of Signals Petre Stoica, Uppsala University Randolph L. Moses, Ohio State University Prentice Hall, 2005 ISBN: 0-13-113956-8
Moses This book presents an introduction to spectral analysis that is designed for either course use or self-study. Clear and concise in approach, it develops a firm understanding of tools and ...
Altium_Designer使用指南V2(Moses)
Moses存储库已移动:https://github.com/moses-smt/mosesdecoder用于统计机器翻译的基于短语的分解式,分层和语法解码器
摩西塔格 用于以MOSES格式准备语料库的标记器。
上传一份英文清晰版的,是djvu格式的,大家喜欢可以下载看下
该模型通过统计分析同类群,自动发现子树特征来指导优化。该模型不需要hBOA算法那样对变量集合进行建模,也不需要像MRTS算法那样遍历小规模的种群来发现潜在的有指导意义的子树。通过解决人工蚂蚁问题对算法进行了...
1000)时,MOSES在合成和真实数据集的数值实验中均显示了最先进的性能,但比竞争对手快了几个数量级。 要求 该代码通常是自包含的,并且包含或生成了所有数据集,因此,从理论上讲,仅安装Matlab就足够了。 但必须...
Moses:Lua中用于函数编程的实用程序库
此代码提供了在CVPR 2016上发表的Lior Talker,Yael Moses和Ilan Shimshoni发表的论文“使用空间顺序来促进消除不正确的特征匹配”的最小工作(MWE)示例。代码,请仅出于学术或其他非商业目的(根据GPL条款)与Lior...