一、Binary Phrase Tables with On-demand Loading
顾名思义,就是moses具有这样一个功能:将词表(phrase table)二值化并按所需(所需要翻译的内容)载入需要的部分。这是因为一个实际的翻译系统,其phrase table通常会非常大,大到很难一次性将其载入内存。
首先需要将标准ascii编码的phrase tables转化成二值化的格式,以下是其一个例子(标准phrase-table,有5个得分的那种):
export LC_ALL=C
cat phrase-table | sort | bin/processPhraseTable \
-ttable 0 0 - -nscores 5 -out phrase-table
其中参数:
· -ttable int int string -- 最后的string表示的是要转换的phrase table名称, 如果从标准输入读取,该参数设为 '-' ,如上例所示
· -out string -- 自己设定的输出的二值化ttable前缀名
· -nscores int --ttable中打分的个数(例如这里是5)
注意,若你的数据是UTF-8格式编码的,你需要先设定一下你的系统环境变量,即export LC_ALL=C,之后再sort(排序),当然如果你输入的phrase table是已经排序好的,可略过这一步。得到的二值化phrase table如下所示:
phrase-table.binphr.idx
phrase-table.binphr.srctree
phrase-table.binphr.srcvoc
phrase-table.binphr.tgtdata
phrase-table.binphr.tgtvoc
二、词对词对齐输出(Word-to-word alignment)
在做解码的时候,有两个参数可以帮助输出最后的短语对齐信息。这两个参数分别是:
-alignment-output-file [file]
这个将在做完翻译(解码)之后将对其信息写入file中。
-print-alignment-info-in-n-best
这个将在生成的n-best文件中,每一个结果之后都另起一行标明其对齐信息。
在这里又要提一下上面二值化得到的5个文件了,如果在对phrase table二值化的时候,其中.scrtree和.tgtdata的两个文件将以.wa后缀结尾。
三、产生n-Best文件
Moses自然也支持产生n-Best结果(前n个解码时搜索算法搜索到的路径)。你只需要在解码的时候指定生产的n-Best结果存储文件即可。
例如以下是一个示例命令:
moses -f moses.ini -n-best-list listfile 100 < in