使用MOSES搭建网页翻译系统

在你完成整套moses的训练和微调(tuning)之后,你可以在本机上对文本里面的内容进行翻译,或者手动在终端输入进行翻译。这种方式作为研究是可以的,只适合单人使用,一个实际的服务器能同时处理多个人的翻译需求,且整个系统只启动一次,不用每次来一个请求载入一次相关数据(因为moses的数据较大时载入需要一定时间)。这样我们就应该以server的形式启动我们的翻译系统。

1简介

Moses是能够让我们以server的形式启动进程的,然后通过xmlrpc接收所需要翻译的句子。这也就意味着一个moses进程可以为使用Java,perl,python,php或者其他有xmlrpc库的编程语言编写的客户端(client)提供服务。

要得到mosesserver,你首先需要安装xmlrpc-c,建议安装稳定版本,例如stableversion1.16.19.接下来需要为了使得你最后的bin可执行文件夹下有mosesserver,需要重新编译源码,并在编译的时候指定xmlrpc的路径,在原编译命令上再加上参数--with-xmlrpc-c=且你需要设置moses成多线程工作的。

编译过后可以在bin文件夹下找到可执行文件mosesserver,启动它的方式和moses一样,在执行moses的命令中多加两个参数即可,我们需要这两个参数来制定监听端和日志文件存放处(--server-port--server-log),若不指定的话,则俩参数默认指向8080端口和/dev/null。

2mosesserver详细安装过程和网页翻译系统搭建过程

作为背景,还是先说一下本人机器的基本信息。

l服务器环境:


l系统配置:

使用MOSES搭建网页翻译系统_第1张图片


l编程语言:PHP和perl

l开始安装:

Ø安装GIZA++

wgethttp://giza-pp.googlecode.com/files/giza-pp-v1.0.7.tar.gz

tarxzvfgiza-pp-v1.0.7.tar.gz

cdgiza-pp

make

编译完成后,将生成三个可执行文件:

·giza-pp/GIZA++-v2/GIZA++

·giza-pp/GIZA++-v2/snt2cooc.out

·giza-pp/mkcls-v2/mkcls

记得将这些文件拷至要使用的文件夹下。

Ø安装srilm

下载srilm之后执行以下命令:

tarzxvfirstlm-5.80.01.tgz

cdirstlm-5.80.01/

./regenerate-makefiles.sh

./configure--prefix=/home/yaoqiang/moses/irstlm-5.80.01

make

sudomakeinstall

Ø安装xmlrpc

1.下载了再安装的方式

REPOS=http://svn.code.sf.net/p/xmlrpc-c/code/stable

svncheckout$REPOSxmlrpc-c

./configure--prefix=/home/yaoqiang/moses

make

makeinstall

2.apt-get安装

Apt-getinstalllibxmlrpc-c3-dev(这种情况下生成的xmlrpc-c-config在/usr/bin下)

Ø安装boost

我还是建议直接apt-get安装吧,别折腾着自己编译安装了,一条命令解决:

apt-getinstalllibboost1.53-all-dev

Ø编译moses,在https://github.com/moses-smt/mosesdecoder/tree/RELEASE-1.0上下载REALEASE-1.0版本的moses, 编译的时候建议不要多线程编译(最初编译的时候总是有一个错误,却又找不到原因,改成单线程编译就通过了),因为一些 非多线程安全的库,执行以下命令:

./bjam--with-srilm=/home/yaoqiang/moses/srilm

--with-irstlm=/home/yaoqiang/moses/irstlm

--external-bin-dir=/home/yaoqiang/moses/giza-pp/bin

--with-xmlrpc-c=/usr

做到这里你已经接近成功了,接下来是一段漫长的等待过程,等编译完成之后mosesdecoder以及其中的bin文件夹的文 件如下所示:

Mosesdecoder文件夹下:

使用MOSES搭建网页翻译系统_第2张图片

上面的bin文件夹下:

使用MOSES搭建网页翻译系统_第3张图片

使用MOSES搭建网页翻译系统_第4张图片

如果模型都训练好了,那么你可以用/contrib/iSenWeb下已经写好的perl,php和html搭起一个网页版的翻译系统了(感谢田亮同学提供的前端和php部分,详见http://www.tianliang123.com/post/12)。

当然,在这之前你需要安装一些东西。

ØApacheandPHP安装

sudoapt-getinstallapache2

sudoapt-getinstalllibapache2-mod-php5mysql-serverphpmyadmin

ØNetcatInstallation

sudoapt-getinstallnetcat

接着你可以把/contrib/iSenWeb下的东西都移至/var/www文件夹下,

修改moses.pl中moses.ini配置文件和可执行文件moses的地址,我是将这个文件重写了一遍,命名为yq_moses.pl,我的moses可执行文件和配置文件的地址是:


在这之后你就可以启动监听端口了,命令如下:

perlyq_moses.pl

例如我这里的命令就是:

perlyq_moses.pl192.168.0.849999

后台启动如下图所示:

使用MOSES搭建网页翻译系统_第5张图片

可以先测试一下是否启动正确:

echo"请给我一杯咖啡"|nc192.168.0.849999

可以看到返回结果

Pleasegivemeacupofcoffee.

在浏览器打开http://192.168.0.84/index.html,可看到以下页面(和tianliang提供的版本有出入,我这里重写了html和php,加入了baidu和jibbigo的翻译结果做对比)。

使用MOSES搭建网页翻译系统_第6张图片


你可能感兴趣的:(使用MOSES搭建网页翻译系统)