Monday, July 25, 2016

NiuTrans: Baseline system

NiuTrans是除了Moses以外的一個統計翻譯系統,它目前只支持中英系統。
下載地址1 或 下載地址2 可以下載源代碼和樣本數據。

這篇文章的內容主要來自東北大學自然語言處理實驗室,部份內容會做一些調整。

在Linux系統中的install方法︰
   $ cd NiuTrans/src/
   $ chmod a+x install.sh
   $ ./install.sh -m32 (32位OS) 或 ./install.sh (64位OS)
   $ source ~/.bashrc
 在“NiuTrans/bin/”目錄下生成了所有的二進制文件。

這個系統的所有運行目錄都在script下面進行,我自己個人不是很喜歡這種方式,比較喜歡是在任何目錄都可以運行的API。但這個的好處就是運行的指令放在同一個目錄中比較易找。

下面的介紹自行看help解釋或者官方網頁吧,因為官方網頁都是中文,這裏就只做簡單介紹。
首先是去除亂碼(主要是去英文檔案中的非ASCII碼)︰
perl NiuTrans-clear.illegal.char.pl --help

第二步是分詞,兩種語言都要各跑一次︰
perl NiuTrans-running-segmenter.pl --help
其中method參數有兩個數字,第一個數字指是否泛化,第二個數字指是否翻譯。
00 : 不泛化也不翻譯,也就是只做分詞。
01 : 不泛化但進行翻譯,句子後面會有譯文,但句子的數字等會保留。
10 : 泛化但不翻譯,句子的數字等會換成符號,後面沒有譯文。
11 : 泛化且翻譯,句子數字等會換成符號,後面有對應翻譯。

第三步是對齊,會生成alignment.txt文件,如果使用fast_align可以跳過這步直接使用fast_alignment的對齊文件︰
perl NiuTrans-running-GIZA++.pl --help
其中tmpdir會成生成很多(約15個)中間文件,在最後處理會刪除,建議建立空目錄進行。最後的output也會放在這裏。

第四步進行短語抽取,生成短語表、reordering table等︰
perl NiuTrans-phrase-train-model.pl --help

No comments: