跑moses摩西翻译系统

参考以下链接:

http://blog.csdn.net/han_xiaoyang/article/details/10101701

https://blog.csdn.net/han_xiaoyang/article/details/10283995(主要讲的是对齐部分)

根据以上链接  终于把三个工具都安装好了  安装这些东西就是费时还没有营养。。。但是又不能避免。。

这里使用ubuntu作为例子吧,本人比较懒,喜欢使用apt-get命令来安装软件和所需的库,当然,如果是centOS的话,yum也可以有同样的效果,可以配一下软件源

看服务器环境:lsb_release -a

--------------------------------------------------------正题-------------------------------------------------------------------

编译创建好GIZA++后,有两种方式来使用它,一是在编译Moses时将GIZA++的地址作为选项参数。如果在编译Moses时没有指定GIZA++的地址,可以采用另外一个方法,那就是在训练语言模型时指明GIZA++三个可执行文件的路径,例如:

train-model.perl -external-bin-dir $HOME/external-bin-dir

 

       我在实际操作中,采用的是第二种方法,即在使用Moses时,给一个参数指明GIZA++路径。

第二次跑摩西 执行到tokenisation:

一直卡在这里 不知道哪里出错了???

 

-------------------------------------------------------------------------------------------------------------------------------------

 

 

之后开始实验部分

在进行语料训练之前,要先对我们的平行语料做一些预处理,主要包括以下以下步骤:

       tokenisation:这一步主要是在单词和单词之间或者单词和标点之间插入空白,以便于后续识别和其他操作。

(由于使用的是CTB语料库,分词已经做完,该步可以省略)

       truecasing:初始每句话的字和词组都被转换为没有格式的形式(例如统一为小写)。这有助于减少数据稀疏性问题。

       cleaning:长句和空语句可引起训练过程中的问题,因此将其删除,同时删除显不对齐句子删除。

       对了,对于平行语料的中文部分的话,在训练之前一定要注意要先分好词,这样后面使用giza-pp进行对齐训练的时候

才能精准对齐词、

词组和短语。我使用的是中科院ictclas分词系统,但是又licence过期的可能,你也可以使用Ansj,

基本是将ictlas用Java重写了一遍,

词库基本不变,分词的程序我可以在之后的文章里给出。

-----------------------------------------------------------------------------------

跑摩西的目的是为了获得双向对齐的预料,是在摩西的训练过程中获得的中间文件。但是摩西系统到最后都没有跑通。

自己编写实现摩西系统中的双向对齐。http://blog.csdn.net/han_xiaoyang/article/details/10283995

一开始为了得到的双向对齐,我是直接将两个矩阵合并,这样分析出来的依存关系的召回率增加了,但是准确率会降低。

实验输入:利用giza++得到的两个对齐输出文档:形如

 

posted on 2017-07-20 20:50  毛无语666  阅读(673)  评论(0编辑  收藏  举报

导航