Panduan Instalasi SMT Moses (Bahasa Indonesia)
Bagi Anda yang belum tahu itu apa, Moses adalah sistem mesin penerjemah berbasis statistik (statistical machine translation system) yang dapat memudahkan kita untuk melatih model penerjemahan secara otomatis untuk pasangan bahasa apa pun.
Sebelum menginstal Moses ini, yang penting Anda sudah menyediakan sekumpulan teks yang sudah diterjemahkan (yang nantinya akan disebut sebagai parallel corpus). Setelah Anda mempunyai model latih, maka algoritma pencarian yang sangkil akan menemukan probablitas penerjemahan tertinggi di antara jumlah pilihan, secara eksponensial, yang ada.
Saya bingung dengan panduan instalasi sistem SMT Moses yang tersedia di Internet ini, lah. Mana saya makin bingung karena semua panduannya hanya ada dalam bahasa Inggris. Tapi tetap saja saya tidak menyerah dengan mencoba lagi dan lagi. Sudah kesekian kali saya coba menginstal Moses (tentunya menggunakan IRSTLM), tetap saja gagal. Namun kali ini, dengan menggunakan model bahasa bawaan Moses, yaitu KenLM, maka saya sudah berhasil menginstalnya. Sekalian aja saya bagikan pengalaman instalnya dalam bentuk panduan di tulisan ini.
Panduan ini tentu juga menyediakan instalasi dengan IRSTLM, namun saat ini masih gagal. Bagi Anda yang sudah berhasil menginstal Moses dengan IRSTLM, Anda bisa bagi pengalaman menginstal di komentar ya. Nanti akan saya perbaharui.
Harap ikuti panduan ini secara berurut, dimulai dari awal hingga akhir. Untuk panduan kali ini, saya menggunakan Ubuntu versi 18.04.2 LTS (Bionic Beaver). Selamat mencoba.
- Login biasa. Pastikan akun yang Anda pakai punya akses rw (read/write). Saya tidak menyarankan hal ini karena akan mengganggu jalannya instalasi, namun jika tidak ada akses rw, Anda bisa pakai command
sudo su
(untuk Ubuntu). - Bikin folder utama
smt
:
mkdir smt
cd smt
- Instal dependency yang dibutuhkan:
Untuk Debian:
su
apt-get install git subversion make libtool gcc g++ libboost-dev tcl-dev tk-dev zlib1g-dev libbz2-dev python-dev libicu-dev libunistring-dev
Untuk Ubuntu:
sudo apt-get install g++ git subversion automake libtool zlib1g-dev libboost-all-dev libbz2-dev liblzma-dev python-dev graphviz imagemagick make cmake libgoogle-perftools-dev autoconf doxygen
Untuk Fedora/Redhat/CenOS/Scientific Linux:
su
yum install git subversion make automake cmake libtool gcc-c++ zlib-devel python-devel bzip2 devel boost-devel ImageMagick cpan expat-devel
yum install git cpan XML::Twig
yum install cpan Sort::Naturally
Untuk OSX, instalasi sama seperti Linux. OSX dapat langsung menggunakan compiler C/C++
clang
yang terinstansiasi dalam OSX.Sedangkan untuk pengguna Windows (terutama Win10), dapat menginstal Ubuntu 16.04 di sini, lalu cara menginstal sama seperti cara Ubuntu.
- Clone Moses dan GIZA++ pakai
git
:
git clone https://github.com/moses-smt/mosesdecoder.git
git clone https://github.com/moses-smt/giza-pp.git
- Instal GIZA++:
cd giza-pp
make
- Copy file binary GIZA++ ke folder
mosesdecoder
:
cd ../mosesdecoder
mkdir tools
cp ../giza-pp/GIZA++-v2/GIZA++ ../giza-pp/GIZA++-v2/snt2cooc.out ../giza-pp/mkcls-v2/mkcls tools
cd ..
cd ..
- (Opsional) Instal IRSTLM 5.80.08:
— Download dari SourceForge, lalu ekstrak dalam direktorismt
.
— Pindahkan folder yang telah diekstrak dengan membuat folder baru bernamairstlm
:
mkdir irstlm
cd irstlm
(pindahkan folder 'irstlm-5.80.08' ke 'irstlm')
cd irstlm-5.80.08
cd trunk
./regenerate-makefiles.sh
./configure --prefix=nama_user/smt/irstlm (ganti nama_user dengan nama akun OS Anda di unix)
make install
cd ..
cd ..
cd ..
Tidak perlu menginstal IRSTLM jika tidak membutuhkan n-gram di atas 7. Tapi kalau butuh, silakan coba IRSTLM. Kalau misalkan error saat menginstal IRSTLM, silakan perbaiki dengan mengikuti acuan ini.
- Instal Boost 1.64 (proses ini memakan waktu cukup lama):
wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz
tar zxvf boost_1_64_0.tar.gz
cd boost_1_64_0/
./bootstrap.sh
./b2 --layout=system link=static install || echo FAILURE
cd ..
- Instal
cmph-2.0
:
wget http://www.achrafothman.net/aslsmt/tools/cmph_2.0.orig.tar.gz
tar zxvf cmph_2.0.orig.tar.gz
cd cmph-2.0/
./configure
make
make install
cd ..
- Instal
xmlrpc-c
:
wget http://www.achrafothman.net/aslsmt/tools/xmlrpc-c_1.33.17.orig.tar.gz
tar zxvf xmlrpc-c_1.33.17.orig.tar.gz
cd xmlrpc-c-1.33.17/
./configure
make
make install
cd ..
- Instal Moses (proses ini memakan waktu cukup lama):
cd mosesdecoder
make -f contrib/Makefiles/install-dependencies.gmake
Kalau ingin pakai IRSTLM, Anda bisa pakai command berikut:
./bjam --with-boost=../boost_1_64_0 --with-cmph=../cmph-2.0 --with-irstlm=../irstlm
Jika tidak, Anda bisa pakai command ini saja:
./bjam --with-boost=../boost_1_64_0 --with-cmph=../cmph-2.0
Kalau Anda mau coba bikin server Moses pakai xmlrpc-c
, bisa coba command ini:
./bjam --with-boost=../boost_1_64_0 --with-cmph=../cmph-2.0 --with-xmlrpc-c=../xmlrpc-c-1.33.17
- Sukses? Coba tes:
cd mosesdecoder
wget http://www.statmt.org/moses/download/sample-models.tgz
tar xzf sample-models.tgz
cd sample-models
/home/nama_user/smt/mosesdecoder/bin/moses -f phrase-model/moses.ini < phrase-model/in > out
Ganti nama_user
dengan nama username akun OS Anda.
Jika semuanya berjalan dengan lancar, maka kalimat “das ist ein kleines haus” (dalam file in
) akan keluar dengan terjemahan "this is a small house" (dalam file out
).
Perlu dicatat bahwa file konfigurasi moses.ini
dalam setiap direktori diset menggunakan model bahasa KenLM secara default. Kalau Anda ingin menggunaka model bahasa IRSTLM, maka suntinglah entri model bahasa di moses.ini
, ganti KENLM
dengan IRSTLM
. Anda juga dapat mencompile menggunakan ./bjam --with-irstlm
, ditambah dengan lokasi direktori IRSTLM.
Moses juga mendukung model bahasa SRILM dan RandLM. Cek di sini untuk informasi lebih lanjut.
- Tes Chart Decoder:
/home/nama_user/smt/mosesdecoder/bin/moses -f string-to-tree/moses.ini < string-to-tree/in > out.stt
/home/nama_user/smt/mosesdecoder/bin/moses -f tree-to-tree/moses.ini < tree-to-tree/in.xml > out.ttt
Ganti nama_user
dengan nama username akun OS Anda.
Hasil yang seharusnya keluar adalah sbb:
this is a small house
Selamat! Anda telah berhasil menginstal Moses. Silakan lanjut dengan membangun baseline sistem translasi.