在Windows中使用Hunalign免费软件包做双语自动句对齐
一、介绍
在计算机辅助翻译领域里或者在所有涉及语料库的领域里,经常需要做的事,就是双语译文自动句对齐。SDL提供了一个Winalign对齐工具,在处理很短的对齐时,效果还说得过去,但在处理大量语料时,其经常被人指责为无用的东西。易尔译科技http://www.12fanyi.cn在这里为大家介绍一个效果很好的双语译文自动句对齐工具,以期在您需要时,为您提供一些帮助。
二、用到的软件
1、本软件运行平台为windows XP,windows 7版本,另外需要在系统中安装微软的office软件,如果一定要在linux平台下运行,请确保安装了Openoffice;在中国win系统很多,本文即以win系统为平台为实验平台;
2、记事本软件,或者其它类似的纯文本编辑软件;
3、自动断句软件,这里易尔译科技使用Europarl提供的预处理工具:http://www.statmt.org/europarl/ ;
4、句子自动对齐软件,使用开源的软件包Hunalign,这个软件包可以从http://mokk.bme.hu/resources/Hunalign下载到;
5、由于Europarl提供的预处理工具需要perl语言解释器,比如activeperl,可以从http://www.activestate.com/Products/activeperl/index.mhtml下载;
上述除了微软的操作系统外,基本都为免费软件。
三、双语译文自动对齐
1、自动断句
由于Hunalign在对齐过程中,把行分隔符作为句子的边界,因此,首先要做的工作就是使用自动断句工具,将句子断成一行一行的形式。在这里,我们采用一个perl脚本进行断句处理,使用Activeperl作为perl解释器 (注意:在linux环境下编译Hunalign时,也会生成一个自动断句工具,因此,你可能不需要使用这里提到的自动断句工具;但在windows下运行其自带的断句工具需要安装Cygwin或MinGW,另外,我在windows下也从来没有成功运行过,可能由于Hunalign本身就是为linux开发的原因)。
将源语言与目标语言文本的utf-8格式文本保存在split-sentences.perl目录中备用;这里需要指出的是,split-sentences.perl脚本使用句号,问号,大写等作为断句的参数,另外加了一个特殊判断列表。其默认提供了英文、德文的列表,如果你需要使用这个工具为其它语言断句,唯一需要做的就是拷一份,然后模仿着更改;
在执行断句脚本之前,我们最好使用文本编辑工具,如word将段落换行符、tab符等去掉(^p,^t),最后在命令行下,使用命令"perl split-sentences.perl -l en < [input.txt] > output.txt"进行断句。
2、使用Hunalign进行自动对齐
Hunalign使用两个文件以及一本词典作为对齐输入,然后输出一个文本文件。把需要对齐的两个文本文件以及词典文件拷到指定的目录中,在cmd下使用"hunalign -text data/hu-en.dic source.txt target.txt > aligned.txt"进行对齐。 其中,"data/hu-en.dic"是一个文本格式的词典,其文件格式如下:
目标语言词 @ 源语言词
如果没有词典文件,请输入"data/null.dic"空词典代替,并加入"-realign"参数,需要注意的词典条目的顺序是“目标语言 @ 源语言”,另外,命令行中的-text参数也必须有,不然输出的格式会不对。
到此,对齐完毕,处理完后,如果需要更多的参数,请参考Hunalign的帮助文件。如果需要进行词对齐,可以使用GIZA++或MGIZA++的升级版本进行词对齐,由于本站(易尔译科技 http://www.12fanyi.cn/)已经有MGIZA++介绍,这里不再重复。
四、题外话
易尔译科技 http://www.12fanyi.cn/ 在语料库处理方面有着非常成熟的经验,如果您有更重要的事去做,请把这些繁杂的任务交给我们。
原文地址:http://www.12fanyi.cn/post/99.html
一、介绍
在计算机辅助翻译领域里或者在所有涉及语料库的领域里,经常需要做的事,就是双语译文自动句对齐。SDL提供了一个Winalign对齐工具,在处理很短的对齐时,效果还说得过去,但在处理大量语料时,其经常被人指责为无用的东西。易尔译科技http://www.12fanyi.cn在这里为大家介绍一个效果很好的双语译文自动句对齐工具,以期在您需要时,为您提供一些帮助。
二、用到的软件
1、本软件运行平台为windows XP,windows 7版本,另外需要在系统中安装微软的office软件,如果一定要在linux平台下运行,请确保安装了Openoffice;在中国win系统很多,本文即以win系统为平台为实验平台;
2、记事本软件,或者其它类似的纯文本编辑软件;
3、自动断句软件,这里易尔译科技使用Europarl提供的预处理工具:http://www.statmt.org/europarl/ ;
4、句子自动对齐软件,使用开源的软件包Hunalign,这个软件包可以从http://mokk.bme.hu/resources/Hunalign下载到;
5、由于Europarl提供的预处理工具需要perl语言解释器,比如activeperl,可以从http://www.activestate.com/Products/activeperl/index.mhtml下载;
上述除了微软的操作系统外,基本都为免费软件。
三、双语译文自动对齐
1、自动断句
由于Hunalign在对齐过程中,把行分隔符作为句子的边界,因此,首先要做的工作就是使用自动断句工具,将句子断成一行一行的形式。在这里,我们采用一个perl脚本进行断句处理,使用Activeperl作为perl解释器 (注意:在linux环境下编译Hunalign时,也会生成一个自动断句工具,因此,你可能不需要使用这里提到的自动断句工具;但在windows下运行其自带的断句工具需要安装Cygwin或MinGW,另外,我在windows下也从来没有成功运行过,可能由于Hunalign本身就是为linux开发的原因)。
将源语言与目标语言文本的utf-8格式文本保存在split-sentences.perl目录中备用;这里需要指出的是,split-sentences.perl脚本使用句号,问号,大写等作为断句的参数,另外加了一个特殊判断列表。其默认提供了英文、德文的列表,如果你需要使用这个工具为其它语言断句,唯一需要做的就是拷一份,然后模仿着更改;
在执行断句脚本之前,我们最好使用文本编辑工具,如word将段落换行符、tab符等去掉(^p,^t),最后在命令行下,使用命令"perl split-sentences.perl -l en < [input.txt] > output.txt"进行断句。
2、使用Hunalign进行自动对齐
Hunalign使用两个文件以及一本词典作为对齐输入,然后输出一个文本文件。把需要对齐的两个文本文件以及词典文件拷到指定的目录中,在cmd下使用"hunalign -text data/hu-en.dic source.txt target.txt > aligned.txt"进行对齐。 其中,"data/hu-en.dic"是一个文本格式的词典,其文件格式如下:
目标语言词 @ 源语言词
如果没有词典文件,请输入"data/null.dic"空词典代替,并加入"-realign"参数,需要注意的词典条目的顺序是“目标语言 @ 源语言”,另外,命令行中的-text参数也必须有,不然输出的格式会不对。
到此,对齐完毕,处理完后,如果需要更多的参数,请参考Hunalign的帮助文件。如果需要进行词对齐,可以使用GIZA++或MGIZA++的升级版本进行词对齐,由于本站(易尔译科技 http://www.12fanyi.cn/)已经有MGIZA++介绍,这里不再重复。
四、题外话
易尔译科技 http://www.12fanyi.cn/ 在语料库处理方面有着非常成熟的经验,如果您有更重要的事去做,请把这些繁杂的任务交给我们。
原文地址:http://www.12fanyi.cn/post/99.html