Mengubah Bahasa Indonesia Informal Menjadi Baku Menggunakan Kecerdasan Buatan

Normalisasi teks informal menjadi baku agar mudah dipahami (oleh komputer)

Alham Fikri Aji
Kata.ai Tech Blog
7 min readNov 19, 2020

--

Masyarakat Indonesia menggunakan bahasa Indonesia informal di setiap kesempatan. Di konteks percakapan, bahasa informal ini meliputi penggunaan kosakata berbeda, biasanya serapan dari bahasa daerah maupun asing (akhi (Arab), ngeselin (Betawi), dll). Selain itu, tren ataupun jargon dapat mempengaruhi pilihan kosakata (ashiaapp, kuy). Bahasa informal ini jauh lebih kompleks lagi saat masuk ranah tertulis, seperti misalnya di media sosial, karena faktor variasi penulisan, seperti singkatan, alterasi huruf/suara, ataupun typo. (akhee, kzl, gmn, wkwkwk, aq).

Ivan Lanin menangis melihat ini.

Lho, apa urusannya teks alay dengan kecerdasan buatan? Nampaknya sistem-sistem berbasis kecerdasan buatan memiliki kesulitan untuk mengolah teks-teks informal. Kok bisa?

Jangan dibayangkan AI (Artificial Intelligence) itu merupakan teknologi omnipotent yang bisa melakukan segalanya. Agar suatu AI dapat menyelesaikan tugasnya dengan baik, AI perlu belajar dari data terlebih dahulu. Masalah muncul karena di lingkup NLP berbahasa Indonesia, datasetnya biasa ditulis dengan bahasa formal. Tetapi, realitanya pengguna akan menggunakan bahasa informal. Tentu karena AI ini tidak sepintar namanya, dia akan bingung ketika berhadapan dengan bahasa informal, yang tidak pernah dilihat sebelumnya.

Sistem kecerdaan buatan (dalam kasus ini mesin penerjemah) kesulitan menangani tulisan informal.

Kalau begitu, tambah saja dataset informal?

Betul, ini adalah solusi yang ideal, tetapi juga mahal.

Data yang digunakan AI harus sudah dilabeli, sesuai dengan tugasnya. Misalkan kita ingin membuat sistem deteksi sentimen, maka datanya merupakan pasangan kalimat dan sentimennya. Jika kita ingin membuat sistem terjemahan Indonesia ke Inggris, maka datanya merupakan pasangan kalimat Indonesia dan Inggris. Siapa yang mau melabeli ribuan bahkan jutaan data-data tersebut?

Transformasi Bahasa Informal Menjadi Formal

Bahasa informal dapat distandarisasi menjadi baku terlebih dahulu, agar dapat diproses secara lebih baik oleh sistem AI.

Artikel ini akan menjabarkan secara high-level publikasi ilmiah Kata.ai yang berjudul Semi-Supervised Low-Resource Style Transfer of Indonesian Informal to Formal Language with Iterative Forward-Translation. (IALP 2020)

Ada beberapa cara yang kami lakukan untuk menstandarisasi teks informal.

1. Metode Kamus

Metode ini cukup sederhana. Pertama-tama, siapkan kamus terjemahan kata informal ke formal, seperti misalnya kamus ini.

Lalu, kita substitusi setiap kata informal dalam suatu teks yang muncul di kamus. Mudah bukan?

Ilustrasi cara kerja metode kamus.

Sayangnya, ada beberapa kelemahan dari cara tersebut.

  • Terbatas pada kata-kata yang ada di kamus. Padahal ke-alay-an manusia tidak terbatas!
  • Tidak bisa menerjemahkan kata alay yang ambigu. Misalnya, apakah rmh itu rumah atau ramah? Apakah thn itu tahan atau tahun? Selain itu, ada kata yang punya makna berbeda di bahasa informal.
    Contohnya, “kaya” pada “gw kaya artis” cocok jika diterjemahkan menjadi “seperti”. Tetapi, “kaya” juga merupakan kata formal, dan tidak cocok diterjemahkan dalam konteks lain seperti “saya kaya raya”.
  • Terbatas pada transformasi level kata. Padahal, kalimat informal cukup fleksibel dalam urutan kata yang bisa jadi tidak sesuai dengan aturan baku. Misalnya, kalimat “ini eror kenapa?” semuanya menggunakan kata formal, sehingga tidak perlu diterjemahkan dengan kamus. Namun, struktur kalimatnya dapat ditata ulang menjadi “kenapa ini eror?” agar lebih formal. Hal tersebut tidak bisa ditangani oleh metode kamus ini.

2. Mesin Penerjemah Statistik

Sebetulnya, kita bisa melihat masalah ini seperti kita ingin menerjemahkan bahasa. Maka kita coba teknik klasik untuk melakukan terjemahan teks yaitu menggunakan Phrase-Based Statistical Machine Translation (PBSMT). Artikel ini tidak membahas bagaimana PBSMT bekerja (silakan Googling sendiri).

Anggap saja PBSMT merupakan sistem black-box yang jika diberikan kumpulan pasangan kalimat informal dan formal, maka dia akan belajar cara menerjemahkan dari informal ke formal. Artinya, kita harus mempersiapkan dataset pasangan kalimat informal ke formal. Isunya adalah, tentu saja dataset tersebut tidak ada!

Untungnya, kita bisa dengan mudah mengambil banyak teks informal dari Twitter (Terima kasih netizen! Pesan sponsor, berhati-hatilah dalam memposting sesuatu ke khalayak publik karena bisa dengan mudah di-scrape. Pastikan tidak memposting data pribadi seperti nomor HP, alamat, dan lain-lain). Sekarang, tinggal kita terjemahkan ke teks formal. Bagaimana caranya? Kami kerjakan manual, tentu saja. Kami membentuk tim kecil yang bertugas menerjemahkan teks twitter yang alay menjadi baku, masing-masing orang biasanya menerjemahkan 50–100 tweet dalam sepekan. Setelah beberapa pekan penuh derita, kami berhasil membuat dataset baru yang berisikan ribuan teks parallel dari bahasa Indonesia informal ke bahasa Indonesia formal.

Setelah datasetnya siap, kami coba latih sistem PBSMT. Hasilnya (berdasarkan satuan BLEU) jauh lebih baik ketimbang metode kamus.

3. Mesin Penerjemah berbasis Syaraf dengan Transformer

Transformer, arsitektur NMT yang saat ini paling canggih. Photo by Arseny Togulev on Unsplash

Teknik PBSMT ini sebetulnya sudah merupakan teknik boomer alias lawas. Sekarang ini, yang biasa dipakai adalah menggunakan Neural Machine Translation (NMT) karena performanya yang lebih bagus. Lebih spesifiknya, kami menggunakan arsitektur Transformer. Lagi-lagi, artikel ini tidak akan menjelaskan bagaimana NMT bekerja, silakan Googling sendiri.

Mempersiapkan NMT ini serupa dengan PBSMT, kita cukup siapkan training datanya, biarkan si AI belajar, dan wala, AI dapat menerjemahkan dari informal ke formal. Masalahnya, NMT ini memerlukan dataset yang jauh lebih banyak agar mencapai performa yang lebih baik dari SMT. Sayangnya, dataset kita yang hanya ribuan kalimat ini masih dianggap kecil untuk NMT. Oleh karena itu, hasil NMT kami tidak bagus.

4. Pre-Trained Language Model

Isu dari metode NLP, atau AI secara umum yang menggunakan teknologi deep learning adalah perlunya jumlah dataset yang banyak. Tentu ini tidak optimal. Jika dibandingkan dengan manusia, kita bisa belajar mengenali sesuatu (misal, bisa mengenali objek seperti kucing) hanya dengan beberapa contoh saja. Yang membedakan ialah manusia sudah dibekali pengetahuan atau informasi terkait sebelum mengenali objek baru tersebut. Berbeda dengan AI yang dilatih dari nol.

Namun belakangan ini, riset di area pre-trained model mulai berkembang, yang membuat kita dapat melatih AI meski tidak memiliki dataset yang banyak, dengan cara membekali AI dengan "pengetahuan dasar" terkait terlebih dahulu.

Saya analogikan sebagai berikut. Bayangkan ada 2 orang, sebut saja si A dan si B. Si A ini tidak bisa bahasa Indonesia, sementara si B ini bisa bahasa Indonesia. Kemudian keduanya kita berikan beberapa contoh pantun bahasa Indonesia, lalu keduanya kita suruh membuat pantun sendiri. Mana yang sekiranya lebih cepat belajar? Si B ini akan lebih cepat belajar pantun, karena sudah ada bekal bahasa Indonesia.

Ilustrasi pre-trained model. (Gambar Optimus Prime dari https://www.beano.com/posts/how-to-draw-a-transformer)

Jika ditarik kembali ke AI, biasanya AI belajar dari nol untuk menerjemahkan teks informal ke formal. Artinya, AI ini bahkan tidak tahu bahasa Indonesia sebelumnya, lalu dengan contoh data yang sedikit, ia harus belajar bahasa Indonesia (struktur kalimat, grammar, pilihan kata, dan lainnya) sekaligus belajar untuk menormalisasi teks informal. Tentunya sulit dilakukan.

Dengan pre-trained language model (LM), AI awalnya belajar bahasa secara general dari teks berbahasa Indonesia yang mudah ditemukan di Internet, misalnya Wikipedia, situs berita, dan lain-lain. Dengan demikian, AI ini sudah bisa memodelkan bahasa Indonesia. Kemudian, barulah AI ini diminta untuk belajar task yang diinginkan, dalam kasus ini, menormalisasi teks informal. (istilah kerennya adalah fine-tuning). Arsitektur yang kami gunakan adalah GPT-2, yang juga berbasis Transformer.

Evaluasi

Evaluasi diukur menggunakan BLEU pada data uji coba kami (evaluation set), semakin tinggi semakin baik. Sebagai benchmark, kami juga menambahkan suatu teknik paling sederhana, yaitu jika kalimat informalnya tidak diubah sama sekali (No Modification).

Hasil evaluasi transformasi teks informal menggunakan BLEU. Juaranya adalah PBSMT dan GPT-2.

Mesti tidak sempurna, transformasi menggunakan kamus bisa dilakukan untuk mengonversi teks informal menjadi formal. Untuk hasil transformasi yang lebih baik, pendekatan PBSMT dapat dilakukan. Teknik deep-learning dengan Transformer sangat buruk, kami rasa karena kurangnya data untuk berlatih. Secara hasil, bisa dilihat bahwa teknik Transformer cenderung mengeluarkan kalimat yang tidak masuk akal.

Contoh hasil #1: Metode kamus tidak bisa menerjemahkan 'pas' dan 'kaya' karena keduanya merupakan kata formal, sehingga butuh konteks lebih. Selain itu, metode kamus tidak bisa menghapus partikel 'ya'.
Contoh hasil #2: Metode Transformer kerap kali menghasilkan kalimat tidak masuk akal, terutama jika kalimatnya cukup kompleks.

Hasil dari normalisasi teks informal menggunakan pre-trained language model (GPT-2) bersaing dengan teknik tradisional SMT. Namun tentu saja, teknik pre-trained language model ini cukup mahal, perlu GPU, training time yang lumayan, sementara teknik SMT lebih murah untuk diterapkan.

Kesimpulan

Normalisasi teks informal ke baku bisa dilakukan dengan metode mesin penerjemah (Machine Translation). Karena jumlah data yang sedikit, teknik standar yang biasa dipakai untuk machine translation, yaitu Transformer tidak bekerja dengan baik. Hasil terbaik didapat dengan menggunakan pendekatan statistik (PBSMT) atau menggunakan pre-trained language model.

Teknik statistik berbanding dengan teknik modern. Namun, data yang kami pakai sangatlah sedikit, menurut saya jika data ini ditambah lagi, teknik statistik akan tertinggal dalam hal performa. Selain itu, PBSMT ini hanya belajar dari data yang diberikan, artinya model PBSMT ini tidak bisa menangani teks informal di luar yang pernah ia pelajari, misalnya tidak bisa menangani kata-kata baru yang belum pernah dilihat sebelumnya. Di sisi lain, Pre-trained LM pernah belajar bahasa Indonesia secara umum, sehingga ia sudah memiliki pengetahuan tentang kata-kata yang bahkan tidak ada di dataset parallel informal-formal! Terakhir, masih banyak pendekatan-pendekatan pre-trained LM yang belum dieksplorasi, misalnya dengan mencoba multilingual LM.

Penasaran mau eksplorasi? Coba langsung di

Untuk penjelasan lebih mendalam, silakan baca paper kami di

--

--