Penjelasan Sederhana “Statistical Machine Translation”

In: Bisnis|Ilmiah|Internet|Software

26 Mar 2009

(Ini adalah tulisan yang sudah diniatkan sejak sekitar 6 bulan lalu tapi baru sekarang kesampaian …)

Anda pengguna Google Translate? Tahukah Anda cara kerjanya?

Google Translate adalah salah satu perangkat lunak yang menggunakan metoda Statistical Machine Translation (selanjutnya kita singkat menjadi SMT). Hingga tahun-tahun terakhir, kebanyakan perangkat lunak penerjemahan otomatis masih menggunakan Rule-Based Machine Translation.

Sebenarnya apakah SMT itu? Penjelasan dari Wikipedia di antaranya adalah sebagai berikut:

The ideas behind statistical machine translation come out of information theory. Essentially, the document is translated on the probability p(e|f) that a string e in native language (for example, English) is the translation of a string f in foreign language (for example, French). G enerally, these probabilities are estimated using techniques of parameter estimation.

The Bayes Theorem is applied to p(e|f), the probability that the foreign string produces the native string to get p(e|f) \propto p(f|e) p(e), where the translation model p(f | e) is the probability that the foreign string is the translation of the native string, and the language model p(e) is the probability of seeing that native string. This basically turns the translation direction and splits the problem into two subproblems. Mathematically speaking, finding the best translation \tilde{e} is done by picking up the one that gives the highest probability:

 \tilde{e} = arg \max_{e \in e^*} p(e|f) = arg \max_{e\in e^*} p(f|e) p(e)

Bagaimana, pusing ‘kan? Saya juga …

Setelah membaca berbagai tulisan lain tulisan tentang SMT, akhirnya saya sedikit banyak paham juga maksudnya. Kira-kira begini.

Katakanlah kita ingin menerjemahkan “I love you” ke dalam Bahasa Indonesia. Oya, tentu saja, Anda sudah tahu jawabannya, tapi untuk saat ini – demi memahami bagaimana cara kerja komputer dengan metoda SMT – bayangkan bahwa diri Anda adalah komputer yang harus memroses tugas penerjemahan ini langkah demi langkah.

Yang Anda (“komputer”) lakukan adalah sbb.:

Cari padanan dari setiap kata atau kombinasi kata yang membentuk kalimat bahasa asal. Dalam hal ini:

“I = saya, aku, gue” (3 padanan), “love = sayang, cinta, kasih” (3 padanan), “you = kamu, Anda, elu” (3 padanan)

Kemudian buat daftar kalimat bahasa sasaran yang terdiri dari kombinasi keseluruhan padanan kata di atas, sehingga membentuk 3 x 3 x 3 = 27 kemungkinan penerjemahan, yang terdiri dari: “1. Saya sayang kamu; 2.  Saya sayang Anda; 3. Saya sayang elu;  4. Saya cinta kamu; 5.  Saya cinta Anda; 6.  Saya cinta elu; 7.  Saya kasih kamu;  8. Saya kasih Anda; 9. Saya kasih elu; 10. Aku sayang kamu; 11. Aku sayang Anda; 12. Aku sayang elu; 13. Aku cinta kamu; 14. Aku cinta Anda; 15. Aku cinta elu; 16. Aku kasih kamu; 17. Aku kasih Anda; 18. Aku kasih elu; 19. Gue sayang kamu; 20. Gue sayang Anda; 21. Gue sayang elu; 22. Gue cinta kamu; 23. Gue cinta Anda; 24. Gue cinta elu; 25. Gue kasih kamu; 26. Gue kasih Anda; 27. Gue kasih elu.”

Dari 27 daftar di atas, Anda bisa lihat bahwa sebagian dari kemungkinan penerjemahan itu bisa dikatakan lazim (“Saya sayang Anda”; “Aku cinta kamu”; dst.) dan sebagian yang lain kurang lazim (misal: “Gue kasih elu”; “Gue kasih Anda”; dst.).

Nah, bagaimana komputer tahu bahwa suatu kalimat bisa dikatakan lazim atau tidak lazim? Di sinilah konsep “statistikal” mulai berperan.

Kelaziman suatu kombinasi kata bisa ditentukan dari seberapa sering kombinasi kata tersebut muncul dalam  sekumpulan teks yang menjadi acuan (korpus bahasa). Seberapa banyak kata harus ada dalam sebuah korpus supaya korpus tersebut bisa dipercaya sebagai acuan? Dalam Google Translate, dinyatakan bahwa korpus bahasa sasaran yang digunakan memiliki milyaran kata.

Katakanlah, setelah mengacu pada korpus Bahasa Indonesia, komputer menemukan bahwa kombinasi kata “Saya cinta kamu” ada dalam korpus sebanyak 1000 kali, “Saya cinta Anda” ada di korpus sebanyak 500 kali, dst. sampai yang paling kecil adalah kombinasi “Gue kasih Anda” yang hanya muncul sebanyak 10 kali.

Dari fakta ini, komputer bisa menyimpulkan bahwa terjemahan terbaik dari “I love you” adalah “Saya cinta kamu”, hanya karena bahwa kombinasi “Saya cinta kamu” memiliki skor atau frekuensi kemunculan paling tinggi dalam korpus acuan bahasa sasaran.

Yang dijelaskan barusan tentu saja adalah versi sangat disederhanakan dari situasi yang riil. Sesungguhnya, sebuah kata bisa memiliki satu hingga puluhan padanan, dan sebuah kalimat bisa terdiri dari satu hingga puluhan kata.

Pada situasi yang lebih riil, katakanlah sebuah kalimat yang hendak diterjemahkan terdiri dari 10 kata, dan masing-masing kata memiliki 5 kemungkinan padanan, maka ada 5^10 (lima pangkat sepuluh) = 9.765.625 (9 juta lebih) kombinasi kata yang menjadi kemungkinan penerjemahan, yang harus dievaluasi dengan mengacu pada korpus yang terdiri dari milyaran kata.

Bagaimana kalau sebuah kalimat terdiri dari 20 kata? Kemungkinan penerjemahannya “meledak” menjadi 5^20 = 95.367.431.640.625 (95 trilyun lebih). Apabila komputer bisa memroses dengan kecepatan 1 juta kombinasi kata per detik, maka waktu yang diperlukan adalah 95 juta detik = 26 ribu jam = 1100 hari = 3 tahun!

Cobalah, Anda lakukan eksperimen sebagai berikut: menggunakan Google Translate, terjemahkanlah kalimat “Saya cinta kamu” ke dalam Bahasa Inggris, catat waktunya, kemudian bandingkan dengan waktu yang dibutuhkan untuk menerjemahkan kalimat panjang berikut: “Kelaziman suatu kombinasi kata bisa ditentukan dari seberapa sering kombinasi kata tersebut muncul dalam  sekumpulan teks yang menjadi acuan seberapa banyak kata harus ada dalam sebuah korpus supaya korpus tersebut bisa dipercaya sebagai acuan dalam Google Translate dinyatakan bahwa korpus bahasa sasaran yang digunakan memiliki milyaran kata.”

Bagaimana hasil eksperimen Anda? Btw, hasil eksperimen saya, waktu menerjemahkan kalimat panjang untuk pertama kali, Google Translate seperti “hang”. Tetapi ketika melakukannya untuk yang kedua kali, hasilnya muncul seketika. Sepertinya, Google Translate melakukan penyimpanan dan bisa mengingat hasil penerjemahannya sendiri. Jadi, eksperimen di atas mungkin tidak sahih lagi buat Anda, kecuali Anda menggunakan kombinasi kata yang baru sama sekali.

Tentu saja, supaya algoritma SMT bisa lebih diterima, ada langkah-langkah lain yang bisa dilakukan untuk imengoptimalkan algoritma sehingga waktu pemrosesannya bisa diterima; misalnya, dengan memotong-motong kalimat panjang menjadi beberapa frase dengan tiap frase dibatasi terdiri dari 5 kata (misal). Hal ini akan secara drastis mengurangi waktu yang dibutuhkan oleh mesin penerjemah untuk mencari jawabannya.

Supaya lebih lengkap, untuk membuat sistem SMT yang baik, Anda perlu hal-hal sebagai berikut:

  1. Teks paralel atau kamus atau padanan kata dari pasangan bahasa yang ingin diterjemahkan, sebaiknya dalam jumlah paling sedikit 1 juta padanan
  2. Korpus bahasa sasaran dengan jumlah kata sekitar 10 milyar
  3. Mekanisme indeks korpus untuk pencarian kombinasi kata

Saya sendiri pernah mencoba membuat yang seperti di atas sekitar 1 tahun lalu , tapi hasilnya masih tidak memuaskan dari segi kualitas dan waktu yang dibutuhkan. Saya pikir, kekurangannya adalah kuantitas teks paralel (<500 ribu padanan) dan korpus yang masih sedikit (<10 juta kata), serta tentu saja tenaga komputasi yang tidak memadai (PC).

By the way, menurut saya, kualitas penerjemahan Google Translate sendiri masih agak “memalukan” untuk bisa digunakan secara serius atau untuk keperluan profesional, meski tentu saja sangat mengesankan dibandingkan alatbantu lain, serta kecepatan penerjemahannya yang buat saya mencengangkan (apakah karena menggunakan grid komputer yang secara efektif membentuk sebuah superkomputer? Cloud computing?).

Untuk bacaan tambahan, silakan kunjungi juga alamat-alamat berikut, terutama cobalah baca ide dari sebuah perusahaan bernama Meaningful Machines tentang konsep Context-Based Machine Translation yang sepertinya lebih menjanjikan daripada Statistical Machine Translation.

Mudah-mudahan semakin banyak orang Indonesia yang semakin paham SMT dan akhirnya bisa membuat alatbantu yang lebih baik daripada Google Translate.

Oya, kalau ada koreksi, kritik, perbaikan, saran, dll, feel free to do so

Tulisan-tulisan terkait:

  1. Penjelasan (Tak Terlalu) Ilmiah tentang Law of AttractionApakah ada sesuatu yang bisa kita pelajari dari kontroversi ilmiah (atau tak imiah) tentang Law of Attraction? LoA menjadi topik...
  2. AcuanBahasaAcuanBahasa adalah perangkat lunak aplikasi gratis yang merupakan paduan dari berbagai sumber acuan bahasa, yaitu KBBI (Kamus Besar Bahasa Indonesia),...
  3. Aplikasi AcuanBahasa, GratisBuat Anda yang baru berkunjung ke sini, jangan sampai terlewatkan: unduh AcuanBahasa di sini, perangkat lunak gratis luar jaringan (luring/offline)...
  4. Bagaimana “Menghidupkan” Kembali Modem 3G Telkomsel Flash Huawei E220Beberapa bulan lamanya saya mengalami masalah dengan penggunaan modem 3G Telkomsel Flash yang bermerk Huawei model E220. Masalahnya, di komputer...
  5. Engkau Berasal dari CintaEngkau berasal dari Cinta, tapi engkau lupa. Ketahuilah: tak ada yang perlu engkau lakukan supaya layak Cinta. Engkau hanya perlu...
  6. DonasiTerima kasih atas kunjungan Anda ke ferli.net, dan terima kasih atas penggunaan berbagai perangkat lunak gratis yang tersedia di sini....
  7. Dalih-dalih LemahDalih adalah kebohongan yang kita buat untuk menghindari berhadapan dengan kebenaran yang tak nyaman. Tetapi selama kita masih mempercayai dalih-dalih...
  8. Mengubah Speed Dial Assignment di Opera Mini 5Saya menggunakan Opera Mini 5 di Nokia E71, pengalaman sejauh ini sangat menyenangkan. Sudah mencoba? Kalau belum coba download dari:...
  9. Istri Melarang Saya Memulai Bisnis SendiriSaya sering mendengar ini: Saya ingin memulai bisnis sendiri, tapi istri saya tidak mengijinkannya karena menurutnya itu terlalu berisiko. Ada...

Comment Form

About this blog

Exploring the curiousity within.

Dapatkan Tulisan dan Perangkat Lunak Terbaru

Isilah form di bawah untuk berlangganan blog ini dan saya akan mengabari Anda setiap kali ada tulisan atau perangkat lunak gratis baru, seperti Glosarium dan Kamus Besar Bahasa Indonesia.

Zero spam tolerance.

Teman-teman Facebook

Sudah Menjadi Anggota?
Login
Login Lewat Facebook:
Pengunjung Terakhir
Mari bergabung di ferli.net

Kategori Tulisan

Arsip-arsip