Friday 4 May 2012

Korpus Paralel Indonesia-Inggris


Korpus paralel adalah pasangan korpus yang berisi kalimat-kalimat dalam suatu bahasa dan terjemahannya. Korpus paralel merupakan bahan penting untuk melakukan eksperimen-eksperimen dalam bidang pemrosesan bahasa alami.
Korpus paralel banyak tersimpan dalam "hard disk" para peneliti, tapi sangat sedikit yang di-share. Korpus paralel Indonesia-Inggris yang dipublikasikan  diantaranya :
  • Korpus paralel yang yang terpublikasi,
    • PAN Localization Project www.panl10n.net
      • Korpus paralel Indonesia – Inggris (surface)
      • domain ekonomi = 6.544 kalimat
      • domain internasional = 6.642 kalimat
      • domain sains = 6.355 kalimat
      • domain olahraga = 4.483 kalimat
      • Korpus paralel Indonesia – Inggris (surface+PoS+Lemma+morph) = 27.326 kalimat
        (Korpus Identic sudah menggabungkan isi dari korpus LPP)

        Jika dirasakan kurang, silahkan menambahnya dengan mengumpulkan sendiri dari berbagai sumber di internet.


  • Dokumen-dokumen yang tersedia di internet dalam dua bahasa (Indonesia dan Inggris),
  • Teks film (movie subtitles) yang tersedia dalam dua bahasa (Indonesia dan Inggris).

Wednesday 2 May 2012

Part of Speech Bahasa Indonesia


Berbagai set PoS bahasa Indonesia telah digunakan dalam penelitian-penelitian bidang pemrosesan bahasa alami (PBA), diantaranya lewat PAN Localization Project, khusus untuk bahasa Indonesia telah dikembangkan PoS khusus untuk terjemahan ke bahasa Inggris pada tahun 2009 (Adriani, 2009). PoS tersebut dibangun berdasarkan Penn Treebank PoS tag sets  terdiri dari 29 PoS tags. PoS utama Bahasa Indonesia adalah kata kerja (verb), kata sifat (adjective), kata keterangan (adverb), kata benda (noun), and kata tugas (function words), berdasarkan 5 (lima) PoS utama tersebut dan observasi data, Pisceldo dkk. (2009) mendefinisikan 37 tag untuk Bahasa Indonesia. Wicaksono dkk. (2010) dalam penelitiannya menggunakan 35 tag hasil dari modifikasi tagset yang dihasilkan oleh Adriani, (2009) dan Pisceldo dkk. (2009). Terakhir, Larasati dkk. (2011) menggunakan hanya 19 tag dalam penelitiannya.

Detail set PoS yang digunakan lebih detail dapat dilihat di :
Adriani, Mirna (2009), “Developing Postag for Bahasa Indonesia”, Diakses pada 1 April 2012 dari http://www.panl10n.net/Presentations/Laos/ RegionalConference/CorpusCollection/Tagset_Tagging_for_Bahasa_Idonesia.pdf
Larasati, Septina Dian, KuboĊˆ V, dan Zeman D. (2011). Indonesian Morphology Tool (MorphInd): Towards an Indonesian Corpus. SFCM 2011. Springer CCIS proceedings of the Workshop on Systems and Frameworks for Computational Morphology, Zurich.

Pisceldo, Femphy, Mirna Adriani, dan Ruli Manurung. (2009). Probabilistic Part of Speech Tagging for Bahasa Indonesia, Third International Wokshop on Malay and Indonesian Language Engineering, Singapore.
Wicaksono, Alfan Farizki dan Ayu Purwarianti. (2010). HMM Based Part-of-Speech Tagger for Bahasa Indonesia, The 4th International Malindo Wokshop, Jakarta.

Yang mana yang paling baik ? Saya sendiri sedang dalam proses mencari jawabannya. Semoga membantu.

Saturday 31 March 2012

Akurasi Terjemahan Google


Seorang teman bertanya kepada saya, “Seberapa akurat hasil terjemahan google untuk Bahasa Inggris ke Indonesia dan sebaliknya?”. Saya coba searching tapi tak menemukan jawaban (mungkin kurang serius mencarinya). Daripada tidak ada jawaban sama sekali, saya mencoba menemukan jawabannya sendiri. Mencoba mencari sejumlah kalimat bahasa Indonesia dan terjemahannya dalam bahasa Inggris, mencoba menerjemahkannya dengan google, kemudian memberikan scoring dengan algoritma standar untuk evaluasi mesin penerjemah.

Bahan yang diperlukan adalah korpus paralel, yaitu sepasang korpus yang berisi kalimat-kalimat dalam suatu bahasa dan terjemahannya. Pada percobaan ini akan menggunakan korpus paralel bahasa Indonesia dan bahasa Inggris. Apa itu korpus? Silahkan tanya ke tante wiki http://en.wikipedia.org/wiki/Text_corpus

Bagaimana cara mendapatkan bahan tersebut? Banyak caranya, dan gratis, diantaranya kita dapat :
  1. Mengunduh korpus paralel yang yang terpublikasi
  2. Mengunduh dokumen-dokumen yang tersedia dalam dua bahasa (Indonesia dan Inggris)
  3. Mengunduh teks film (movie subtitles) yang tersedia dalam dua bahasa (Indonesia dan Inggris)
  4. dll.
Untuk percobaan ini saya menggunakan korpus dari bppt lewat PAN Localization Project. Terdapat 4 (empat) domain korpus yang tersedia, yaitu domain ekonomi, sport, science, dan internasional. Silahkan unduh di http://panl10n.net/english/OutputsIndonesia2.htm

Saya mengambil salah satu korpus paralel tersebut, yaitu korpus domain ekonomi, korpus tersbut terdiri dari dua file, file pertama berisi kalimat-kalimat dalam bahasa Indonesia yang terdiri dari 157619 kata, 6544 kalimat, file kedua berisi kalimat-kalimat terjamahan dari file pertama dalam bahasa Inggris yang terdiri dari 173641 kata, 6544 kalimat.
Setelah siap, terjemahkan 2 file tersebut dengan google translator. File pertama untuk terjemahan Indonesia-Inggris, yang kedua untuk terjemahan Inggris-Indonesia.

Untuk alatnya, saya menggunakan algoritma BLEU (Bilingual Evaluation Understudy). Penjelasannya ada di http://en.wikipedia.org/wiki/BLEU
Jika ingin tahu lebih jauh silahkan baca paper Papineni, K., Roukos, S., Ward, T., and Zhu, W.-J. (2002). BLEU: a method for automatic evaluation of machine translation, In Proceedings of the 40th Annual Meeting of the Association of Computational Linguistics (ACL).
Scriptnya tersedia di http://www.itl.nist.gov/iad/mig//tests/mt/2008/scoring.html

Hasil percobaannya seperti gambar berikut ini (saya gunakan OS Ubuntu):


Hasil terjemahan Indonesia-Inggris :

BLEU = 92.99, 94.4/93.9/93.7/93.5 (BP=0.990, ratio=0.990, hyp_len=163820, ref_len=165398)

Hasil terjemahan Inggris-Indonesia :

BLEU = 92.73, 94.1/93.6/93.3/93.0 (BP=0.992, ratio=0.992, hyp_len=150560, ref_len=151771)


Apa arti nilai-nilai tersebut ?

Contoh hasil yang terakhir :

92.73 = score akhir

94.1 = presisi 1-gram

93.6 = presisi 2-gram

93.3 = presisi 3-gram

93.0 = presisi 4-gram

BP (brevity penalti) = min(1,jumlah kata output/jumlah kata ref)

ratio = jumlah kata output/jumlah kata ref

hyp_len = jumlah kata hasil terjemahan

ref_len = jumlah kata refrensi

Jangan pusing2 dengan nilai2 tersebut, lihat saja score akhirnya.


Salah satu contoh kalimat hasil terjemahan :

Terjemahan Inggris-Indonesia

Minister of Finance Sri Mulyani Indrawati said that a sharp correction of the composite inde x by up to 4 pct in Wedenesday?s trading was a mere temporary effect of regional factors like decline in plantation commodity prices and the financial crisis in Thailand.

Terjemahannya

Menteri Keuangan Sri Mulyani mengatakan koreksi tajam pada Indeks Harga Saham Gabungan IHSG hingga sekitar 4 persen dalam perdagangan Rabu 10/1 hanya efek sesaat dari faktor-faktor regional seperti penurunan harga komoditi perkebunan dan krisis finansial di Thailand.

Terjemahan Google

Menteri Keuangan Sri Mulyani Indrawati mengatakan bahwa koreksi tajam dari x merdeka komposit hingga 4 persen di Wedenesday trading adalah? Efek sementara hanya faktor regional seperti penurunan harga komoditas perkebunan dan krisis keuangan di Thailand.

Sebaliknya untuk terjamahan Indonesia-Inggris, google menghasilkan terjemahan :

Finance Minister Sri Mulyani said the sharp correction in stock index Composite Stock Price Index by about 4 percent in trading Wednesday 10/1 only a momentary effect of regional factors such as the decline in farm commodity prices and financial crisis in Thailand.

Boleh percaya, boleh tidak, setidaknya saya sudah bisa menjawab pertanyaan teman saya:

Akurasi terjemahan Indonesia-Inggris untuk 6544 kalimat dalam satu domain adalah sebesar 92.99% dan untuk Inggris-Indonesia sebesar 92.73%.