[moses笔记]编译含有nplm的moses解码器

ACL2014的best paper Fast and Robust Neural Network Joint Models for Statistical Machine Translation在SMT中使用深度学习知识,提出了一种neural network joint model(其实就是融合源端语言知识去做语言模型),论文实验给出的结果宣称大幅度提高了以往基于n-gram语言模型翻译系统的翻译性能。 


开源机器翻译系统moses也实现并集成了上述研究成果。参见[1]中

          An implementation of Devlin et al. (2014), a neural network language model that uses a target-side history as well as source-side context, is           implemented in Moses as BilingualLM. It uses NPLM as back-end (check its installation instructions). 

不过moses自己对他命名为Bilingual Neural LM(双语神经网络语言模型)。


和其他语言模型一样,moses将其视为一个翻译特征(feature)融合到自己的解码器中。特征的集成参见[1]。但是如果心急,仅仅改改moses配置文件mose.ini,在训练和解码阶段,使用以前普通的moses解码器(一般都是使用KenLM或者Srilm作为语言模型),moses解码器会报错无法识别那个特征。


参见[1], 正确做法是:

1. 安装神经网络语言模型工具(a neural network language model toolkit)nplm。

2. 在编译的时候带上参数

  • --with-nplm=<root dir of the NPLM toolkit>


但是我在安装过程中遇到问题:

Unable to load Boost.Build: could not find "boost-build.jam"
-----------------------------------------------------
Attempted search from /path/to/mosesdecoder up to the root at /path/to/mosesdecoder/share/boost-build. and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: /usr/share/boost-build


开始,遇到这个问题,我一直以为是boost库安装错误。参考[2],[3]等,对boost一阵着折腾。没有任何效果....

在加上我之前安装nlpm成功,并按照[1]上的方法成功训练出Bilingual Neural LM,我更加确定是boost库的问题。boost版本各种换,boost安装方法各种尝试等,一直折腾到凌晨3点半,晕。


**推荐使用[4]中方法

   ./bootstrap.sh
   ./b2 -j4 --prefix=$PWD --libdir=$PWD/lib64 --layout=system link=static install || echo FAILURE


次日,我重新编译moses,不带nlpm参数。竟然成功了。这也就是说编译boost库是没有问题的。到这个时候,我才开始回过头来考虑是否是nlpm在和moses一起编译的时候是否有问题。但具体是哪里出问题,仍然一无所知。


偶然地,我发现编译的时候有一个错误:

/home/xwang/11.Moses/nplm-master/src/neuralLM.h:10:23: fatal error: Eigen/Dense: No such file or directory

查看出错的地方


Eigen这个包其实是放在nlpm根目录下的3rdparty目录下。


在编译nlpm的时候,需要在makefile文件中指定一些依赖包的路径(boost、Eigen等)。


此处,我手动地给改掉出错的地方,将nplm的src中头文件和cpp文件手动修改Eigen头...

修改后为:


注意,所有出错的地方都要修改,查看出错的地方:



然后带上nlpm编译,编译通过,成功。


参考:

[1] http://www.statmt.org/moses/?n=FactoredTraining.BuildingLanguageModel#ntoc38

[2] http://comments.gmane.org/gmane.comp.nlp.moses.user/6322

[3] http://comments.gmane.org/gmane.comp.nlp.moses.user/11461

[4] http://www.statmt.org/moses/?n=Development.GetStarted

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值