Run GIZA faster with .sh parameter

-Please scroll down for English-

Main Contributor: Nguyễn Ngọc Gia Hy

Tác giả cảm thấy cách chạy GIZA++ lần trứớc của tôi vẫn còn chậm và chưa tận dụng hết khả năng của file .sh, do đó anh đã viết lại 1 file riêng, gửi cho tôi cùng hướng dẫn chi tiết về cách chạy ĐÚNG như sau: 

  1. Down file RunGIZA++.sh tại đây và để trong thư mục giza-pp (thư mục có được sau khi down mã nguồn GIZA++)
  2. Bật Terminal, chuyển hướng đến thư mục giza-pp.
  3. Gõ dòng sau:
sh RunGIZA++.sh <arg1> <arg2> <arg3> <arg4>
với:

 

– <arg1>: đường dẫn đến thư mục data
– <arg2>: tên file source
– <arg3>: tên file target

– <arg4>: đường dẫn đến thư mục output

Ví dụ:
sh RunGIZA++.sh '/home/vinh/Desktop/Corpus' Source Target '/home/vinh/Desktop/Corpus'

Quả thật bạn không cần phải quan tâm các đường dẫn và dòng lệnh dài ngoằng, chỉ cần nhâm nhi tách cà phê và chờ mà thôi :)).

Tuy nhiên tôi cũng gặp một số vấn đề ở lần đầu chạy thử, các bạn cần lưu ý những điều sau:

  • Cấp permission cho file RunGIZA++.sh là “Allow executing file as program
  • Đảm bảo các đường dẫn thư mục phải tồn tại.
  • Tên của 2 file Source và Target tốt nhất là không nên để extension, hoặc nếu có thì đừng để extension thân thuộc. Giả sử tôi đặt 2 file là “Source.txt” và “Target.txt” sẽ gặp lôĩ “cannot open vocabulary files”. Ngược lại nếu không có extension hoặc đặt tên “Source.en” và “Target.vn” thì ok.
  • Tên của file và các folder không nên có khoảng trắng, có thể dẫn đến lỗi.

Tôi đóan rằng GIZA sẽ tự động cắt những extension thân thuộc ra khỏi tên file và lấy đó đặt tên cho các file sau này. Dễ thấy sự khác nhau ở Terminal khi chạy.Trường hợp 1:

/home/vinh/Desktop/Try/Source.txt -> Source
/home/vinh/Desktop/Try/Target.txt -> Target

Trường hợp 2:

/home/vinh/Desktop/Try/Source.en -> Source.en
/home/vinh/Desktop/Try/Target.vn -> Target.vn

Enjoy NLP :))


Main Contributor: Nguyễn Ngọc Gia Hy

One of my reader sees that my running GIZA++ method last time is still slow and does not utilize all potential of .sh file. So he decided writes one himself, send the instruction to me, and shows me how to do the RIGHT thing:

  1. Download RunGIZA++.sh here and put it in giza-pp (folder you got when downloading GIZA++ source code)
  2. Open Terminal, move to giza-pp folder.
  3. Type this line:
sh RunGIZA++.sh <arg1> <arg2> <arg3> <arg4>
with:
– <arg1>: link to folder containing corpus
– <arg2>: source file’sname
– <arg3>: target file’s name

– <arg4>: link to folder containing result file

Example:
sh RunGIZA++.sh '/home/vinh/Desktop/Corpus' Source Target '/home/vinh/Desktop/Corpus'

I have to confess, you don’t need to concern about long and confusing command lines anymore, only take a slip of coffee and wait for it to be done :))

However. I also meet a few problems when try it the first time, hope you don’t make the same mistake:

  • Give permission for RunGIZA++.sh file as “Allow executing file as program
  • Guarantee link to folder does exist.
  • Name of 2 files Source and Target should not contain extension, or at least not the familiar one. If I name them as “Source.txt” and “Target.txt”, you will get an error like “cannot open vocabulary files”. On the other hand, if their names are “Source.en” và “Target.vn” or no extension, everything will be file.
  • Name of file or folder in link should not contain space, or it can also lead to unexpected error.

I guess that GIZA automatically cut off familiar extension from file name and then get the remaining string to name output files. We can see this when looking at the Terminal.

Case 1:

/home/vinh/Desktop/Try/Source.txt -> Source
/home/vinh/Desktop/Try/Target.txt -> Target

Case 2:

/home/vinh/Desktop/Try/Source.en -> Source.en
/home/vinh/Desktop/Try/Target.vn -> Target.vn

Enjoy NLP :))

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.