现在的位置: 首页 > 综合 > 正文

机器翻译系统的搭建(Ubuntu10.04+Moses)

2013年09月18日 ⁄ 综合 ⁄ 共 3071字 ⁄ 字号 评论关闭

机器翻译系统的搭建(Ubuntu10.04+Moses)

 

       因为学习的需要,前一段时间要搭建一个机器翻译系统,最终选择了Moses作为系统的框架,操作系统使用Ubuntu10.04。现对系统的安装流程总结如下:

 

1、 系统需要的工具(点击超链接可进入相应的下载页面)

<1> 
GIZA++
翻译模型训练工具

<2>  SRILM  语言模型训练工具

<3>  Moses    生成模型的训练及解码工具包

2、 系统安装步骤

安装Moses相关的支持工具—>安装Moses—>安装训练脚本—>安装附加脚本

3、 支持工具的安装

1>    安装SRILM

在安装之前,先在终端输入:sudo apt-get install g++ make gawk gzip tcl8.4 tcl8.4-dev csh,确保SRILM编译所需要的make、g++、gawk、gzip、tcl8.4、tcl8.4-dev、csh等依赖工具已安装。完成以上工具包的安装后,需要对SRILM的有关脚本进行修改。#SRILM为SRILM所在路径。

a、 在命令行输入:cp #SRILM/Makefile #SRILM/Makefile.bak对文件进行备份,输入:gedit #SRILM/Makefile修改文件:去掉SRILM = “XXXX”前面的”#”,引号中的内容是SRILM的绝对路径,即“#SRILM”,MACHINE_TYPE = i686。

b、 修改common文件夹下的Makefile.machine.i686文件:

输入:cp #SRILM/common/Makefile.machine.i686
#SRILM/common/Makefile.machine.i686.bak #
备份文件

输入:gedit #SRILM/common/Makefile.machine.i686#编辑修改文件

修改其中的两项,CC = /usr/bin/gcc $(GCC_FLAGS)
CXX = /usr/bin/g++ $(GCC_FLAGS) -DINSTANTIATE_TEMPLATES

修改gcc的安装路径:

TCL_INCLUDE =-I/usr/include/tcl8.4/
TCL_LIBRARY = /usr/lib/libtcl8.4.so

                    

完成了以上工作,就可以的对SRILM进行编译。

cd #SRILM          #进入安装目录

sudo make           #编译

下面进行环境变量的设置

cd /etc
vi profile

export PATH=#SRILM/bin:#SRILM/bin/i686:$PATH 

2>    GIZA++的安装

a、 mkcls-v2

cd mkcls-v2         #进入目录

make            #编译

b、 GIZA++-v2

cd GIZA++-v2     #进入目录

#修改Makefile文件,删除“-DBINARY_SEARCH_FOR_TTABLE”

make            #编译

4、 安装Moses

1> 下载安装moses解码器

a、安装所需要的依赖包

 sudo apt-get install autoconf automaketexinfo zlib1g zlib1g-dev zlib-bin zlibc

b、因为需要从网上直接下载moses,故先安装subversion

 sudo apt-get install subversion

c、下载源码包

svn cohttps://mosesdecoder.svn.sourceforge.net/svnroot/mosesdecoder/trunkmosesdecoder

d、moses的编译相关操作

cd mosesdecoder
    ./regenerate-makefiles.sh
   ./configure –with-srilm=/#SRILM  #SRILM
   make -j 4

2> 安装训练脚本

a、建立训练脚本目录:
   mkdir-p bin/moses-scripts
b、修改makefile:
  TARGETDIR=/full-path-to-workspace/bin/moses-scripts
  BINDIR=/full-path-to-workspace/bin 
# full-path-to-workspace工作目录
c、编译:
  cd moses/scripts/
  make release

d、将GIZA++,mkcls, snt2cooc.out复制到BINDIR下
e、使用时需要声明环境:
   export  SCRIPTS_ROOTDIR=/full-path-to-workspace/bin/moses-scripts/scripts-YYYYMMDD-HHMM

        3> 安装moses附加脚本

                 下载scripts.tgz并解压:
            tar xzf scripts.tgz
            ls scripts

              Tokenizer scripts/tokenizer.perl
              Lowercaser scripts/lowercase.perl
              SGML-Wrapper scripts/wrap-xml.perl

5、 系统运行

a、 准备测试数据

         cd ~/mosesdecoder
         wget http://www.statmt.org/moses/download/sample-models.tgz
         tar xzf sample-models.tgz
         cd sample-models
         cd phrase-model

b、 修改配置文件

Moses.ini中默认的语言模型为KenLM,因为我们要使用SRILM作为机器翻译系统的语言模型,所以必须对此文件进行修改:

         [lmodel-file]
           0 0 3 lm/europarl.srilm.gz  #此处指明所在位置
c、运行
           cd ~/mosesdecoder/sample-models
           ~/mosesdecoder/moses-cmd/src/moses -f phrase-model/moses.ini < phrase-model/in > out    #根据具体情况
其中in中存放的是要进行翻译的德文句子,out中存放的是翻译后的英文结果
           in:das ist ein kleines haus
           out:it is a small house
6、  总结
    以上是机器翻译系统搭建的全部过程。具体操作的过程中,遇到了很多问题,如:不同gcc版本的兼容问题,环境变量的配置等,这些问题有些已经得到有效的解决,但是因为对系统还不是很熟悉,对一些问题的解决不是很圆满。希望在后面的学习中,能够对moses及其支持工具有更为深入的理解,能够对现在遇到的问题有更深入的理解。
7、  参考资源
http://www.statmt.org/moses/?n=Development.GetStarted
http://dan-4899.blog.163.com/blog/static/5825023720090512226886
 
 
 
 
 
 
 
 
 

                           

 

 

 

 

 

 

抱歉!评论已关闭.