Install MGIZA for Ubuntu

-Please scroll down for English-

MGIZA viết tất cho Multi-threaded GIZA, cho thấy khả năng chạy nhanh hơn GIZA++ gốc bởi tận dụng khả năng của máy tính. Các bước cài đặt MGIZA có phần đơn giản hơn cả GIZA, 1 phần là nhờ file config của tác giả mình tham khảo.


Chuẩn bị:

sudo apt-get install cmake
sudo apt-get install libboost-all-dev

Cài đặt:

git clone https://github.com/moses-smt/mgiza.git
cd mgiza/mgizapp
cmake .
make
make install

Vào folder “manual-compile”, mở file compile.sh và edit: SRC_DIR (đường dẫn cụ thể đến file source code của MGIZA), BOOST_ROOT(Thư mục riêng cài boost – xem phần lưu ý bên dưới), BOOST_INCLUDE, BOOST_LIBRARYDIR. Ví dụ:

SRC_DIR = /home/phdlab/Desktop/HoXuanVinh/Tool/mgiza/mgizapp/src
BOOST_ROOT = /home/phdlab/boost_1_60_0
BOOST_INCLUDE = $BOOST_ROOT/include
BOOST_LIBRARYDIR = $BOOST_ROOT/lib64

Bắt đầu compile

manual-compile/compile.sh

Sử dụng:

Để chạy MGIZA, chúng ta cần:

  • Các tập tin trong folder mgizapp/bin
  • File merge_alignment.py( nằm trong “mgizapp/inst/scripts”)

Copy các file vào chung 1 folder(Thư mục của mình “/home/phdlab/Tool/Mgiza/bin”). Để thuận lợi cho việc demo chạy, mình copy cả 2 file ngữ liệu “data.en” và “data.vn” vào vị trí này luôn. Mở Terminal và di chuyển đến thư mục trên.

Các bước tiếp theo sẽ thực hiện với giả định là 2 file ngữ liệu tên “data.en” và “data.vn”, bạn cần linh động khi làm với ngữ liệu riêng của mình.

./mkcls -n10 -pdata.en -Vdata.en.vcb.classes
./mkcls -n10 -pdata.vn -Vdata.vn.vcb.classes
./plain2snt data.en data.vn
./snt2cooc data.en_data.vn.cooc data.en.vcb data.vn.vcb data.en_data.vn.snt

Tiếp theo bạn download file “configfile” tại đây và lưu trong thự mục.

Bạn có thể chọn số thread cho MGIZA bằng việc thay giá trị cho biến ncpus. Chẳng hạn bạn có 4 core thì có thể nhân đôi giá trị và nhập “ncpus 8”. Bạn cũng cần edit một chút, những dòng có “corp.tok.low.src” mình thay thành “data.en” và “corp.tok.low.trg” thành “data.vn”. Save lại.

Bây giờ thì nhập dòng sau và cầu nguyện:

./mgiza configfile

GIZA thì kết quả lưu vào file “A3.final”,  với Mgiza thì có bao nhiêu thread thì bấy nhiêu file. Bạn chỉ cần tổng hợp chúng lại thành 1 file.

Lưu ý:

  • Nếu file kích thước nhỏ quá có thể MGIZA không chạy được, khi đó chuyển sang GIZA++.

Ở dòng cuối của bước cài đặt, bạn cần boost để compile. Cài đặt như sau:Boost có phiên bản bị lỗi. Mình đề xuất bản bản 1.60. Quyết định là do bạn, nhưng có thể đúc kết được là nếu không compile được thì khả năng cao là do phiên bản Boost không tương thích. Mục đích của việc cài nhiều dòng lệnh boost là để cài đặt tại thư mục riêng, nhờ đó khi sử dụng đền không cần sử dụng quyền superuser.

wget http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.gz
tar zxvf boost_1_60_0.tar.gz
cd boost_1_60_0/
./bootstrap.sh
./b2 -j4 --prefix=$PWD --libdir=$PWD/lib64 --layout=system link=static install || echo FAILURE

Sau khi chạy mà thông báo SUCCESS là OK, không sẽ báo lỗi FAILURE. Đôi khi dù FAILURE bạn cứ tiếp tục cài thử xem sao, nếu có vấn đề thì mới cái lại Boost phiên bản khác :))

  • Nếu có vấn đề khi chạy dòng lệnh thì thử thêm quyền superuser: Thêm từ khóa sudo đứng trước.

Tham khảo:

  1. http://www.statmt.org/moses/?n=Moses.ExternalTools#ntoc3
  2. https://fabioticconi.wordpress.com/2011/01/17/how-to-do-a-word-alignment-with-giza-or-mgiza-from-parallel-corpus/
  3. http://www.statmt.org/moses/?n=Development.GetStarted

MGIZA stands for Multi-threaded GIZA, show up the faster ability in compare to  GIZA by using parallel computing advantage. Installing steps in MGIZA is simpler than GIZA, most of them due to helpful config file of referent author.

Preparation:

sudo apt-get install cmake
sudo apt-get install libboost-all-dev

Installing:

git clone https://github.com/moses-smt/mgiza.git
cd mgiza/mgizapp
cmake .
make
make install

Go to folder “manual-compile”, open file compile.sh and edit: SRC_DIR (link to  source code file of MGIZA), BOOST_ROOT(Private folder for installing boost – Check the Note section below), BOOST_INCLUDE, BOOST_LIBRARYDIR. For example:

SRC_DIR = /home/phdlab/Desktop/HoXuanVinh/Tool/mgiza/mgizapp/src
BOOST_ROOT = /home/phdlab/boost_1_60_0
BOOST_INCLUDE = $BOOST_ROOT/include
BOOST_LIBRARYDIR = $BOOST_ROOT/lib64

Start to compile

manual-compile/compile.sh

How to use:

In order to run MGIZA, we need:

  • All files in folder mgizapp/bin
  • File merge_alignment.py( in “mgizapp/inst/scripts”)

Copy all files into 1 same folder(My folder is “/home/phdlab/Tool/Mgiza/bin”). For this demo, I copy my 2 corpus “data.en” and “data.vn” also to this folder. Open Terminal and move to that folder with “cd” command.

The following steps wotk with assumption that 2 input data named “data.en” and “data.vn”, you need to change a little bit to fix your own data.

./mkcls -n10 -pdata.en -Vdata.en.vcb.classes
./mkcls -n10 -pdata.vn -Vdata.vn.vcb.classes
./plain2snt data.en data.vn
./snt2cooc data.en_data.vn.cooc data.en.vcb data.vn.vcb data.en_data.vn.snt

Download file “configfile” at here and save in same folder.

You can choose number of threads for MGIZA by change value of variable “ncpus”. For example, your computer has  4 cores then double it and type “ncpus 8”. You need to edit  “corp.tok.low.src” into “data.en” and “corp.tok.low.trg” into “data.vn”. Save it.

Now type this line and pray:

./mgiza configfile

GIZA save result into file named “A3.final”,  to Mgiza, the more threads you choose, the more files you have, yet the name stays the same. Your work is merging them into 1 file.

Note:

  • If file’s size is too small, maybe the program will crash, then solution is moving to GIZA++.
  • In the last line of installing section, you need Boost to compile.  Do the following steps:Boost has version could crash if compile. I suggest version 1.60. The decision is  yours, but if compile unsuccessfule, the high risk might be incompatible version of Boost. The purpose of using many lines  for boost is to install in private folder, not in system folder. So you don’t need superuser authority to run.
wget http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.gz
tar zxvf boost_1_60_0.tar.gz
cd boost_1_60_0/
./bootstrap.sh
./b2 -j4 --prefix=$PWD --libdir=$PWD/lib64 --layout=system link=static install || echo FAILURE

After running, if it says SUCCESS then OK, otherwise FAILURE. However, if it is FAILURE, you just keep doing the next step to see if something goes wrong. If so, come back to reinstall Boost with different version :))

  • If there is any error in running commands in Terminal, try superuser authority with keyword “sudo”.

Reference:

  1. http://www.statmt.org/moses/?n=Moses.ExternalTools#ntoc3
  2. https://fabioticconi.wordpress.com/2011/01/17/how-to-do-a-word-alignment-with-giza-or-mgiza-from-parallel-corpus/
  3. http://www.statmt.org/moses/?n=Development.GetStarted
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.