Data, Deep Learning, Indonesia

IndoCollex: Data Transformasi Colloquial Informal dan Formal Indonesia

Data dan Analisis tipe-tipe colloquial di Indonesia beserta penggunaan Deep Learning dalam masalah Colloquial.

Haryo Akbarianto Wibowo

--

Masyarakat Indonesia pada umumnya menggunakan bahasa Indonesia yang informal di kehidupan sehari-hari (atau bisa kita sebut colloquial). Contohnya saat menulis di media sosial ataupun berbicara dengan yang lain. Bahasa informal ini sering sekali membuat sistem atau model Artificial Intelligence (AI) dalam bidang bahasa, atau sering disebut Natural Language Processing (NLP), kewalahan. Yang mungkin awalnya kualitas sistemnya bagus, jadi tidak bagus lagi. Hal ini bisa disebabkan karena sistem AI umumnya dilatih dengan data formal, sehingga sistem tidak bisa menebak data informal.

Tambah aja data Informal supaya makin bagus?

Ya bisa, tapi mahal dalam pembuatannya (waktu dan 💵 💵 💵)

Selain itu, kata informal di Indonesia SEDIHNYA selalu berevolusi (makasih netizen 😄). Hal ini tentunya membuat model NLP kita semakin pusing lagi. Dari pengamatan kami dengan dipandu oleh linguist saat meneliti data netizen, banyak tipe kata informal yang muncul, salah satunya yaitu kata informal yang diambil dari bahasa tradisional atau asing. Di dalamnya bisa jadi ada beberapa perubahan bentuk kata informalnya (kata kerennya morphological transformation) dari bentuk formalnya. Contohnya: aku -> gua (bahasa betawi) -> gw (penambahan perubahan informal).

Biasanya untuk mengatasi masalah ini, orang-orang pakai suatu kamus pasangan informal-formal. Nah, sayangnya sesuai yang saya tulis diatas bahwa bahasa informal tuh cepat berevolusi. Muncul pikiran nih, bisa gak sih ngebuat sistem yang mampu mengubah secara langsung dari kata informal ke bentuk formalnya dan kebalikannya juga, tanpa mengandalkan kamus.

Kalau kamus informal-formalnya diupdate terus bukannya beres yah?

Iya benar beres.

Pertanyaannya kuat gak untuk orang yang update kamusnya ngumpulin semua kata informal yang muncul? Apalagi netizen Indo sangat kreatif 😆

Dari penjabaran diatas, berikut kontribusi yang kami berikan:

  • Kami membuat testbed atau data untuk melakukan test yang bernama IndoCollex. IndoCollex bisa kamu coba untuk mengukur sebarapa bagus sistem atau model AI yang dibuat untuk transformasi kata informal ke formal atau sebaliknya. Perlu digarisbawahi bahwa disini hanya dalam level karakter saja.
  • Selain itu, kami mencoba test beberapa model AI deep learning (AI jaman now) ke testbed. Kami juga membandingkan model-model yang kami coba dengan rule-based AI, dimana cara transformasinya kami tentukan sendiri aturannya (kalau yang pernah ngoding, pakai if-else aja).

Perbandingan Colloquial Bahasa Indonesia Vs Inggris

Statistik OOV data Indonesia vs Inggris

Kami mencoba membandingkan masalah kata informal di Indonesia dengan di Inggris. Untuk mengukurnya, kami melihat berapa kata yang tidak ada di kamus Bahasa Indonesia dan Inggris (istilahnya out-of-vocabulary atau OOV) dari hasil tweet Indonesia vs tweet Inggris dari sampel jumlah yang sama. Cukup menarik dari diatas bahwa OOV di Indonesia lebih tinggi dibandingkan dengan OOV di Inggris.

Selain itu, kami juga mengukur dengan melihat rata-rata perplexity untuk mengukur keformalan suatu kalimat itu (semakin besar perplexity, semakin tidak natural atau formal). Konsisten dengan hasil OOV Indonesia dengan Inggris. Hal ini bisa menunjukkan bahwa masalah bahasa Informal di Indonesia cukup menantang dan menarik untuk dipecahkan.

Perplexity itu apa?

Intuisinya perplexity itu diitung dengan suatu model NLP yang sudah dilatih untuk memodelkan bahasa. Disini, model NLP yang dipakai yaitu GPT-2. GPT-2 yang kami gunakan dilatih untuk mengenal kalimat Bahasa Indonesia yang formal. Perplexity mengukur seberapa yakin si modelnya itu bahwa kata itu sesuai. Contoh: saya makan nasi kcg. Karena model GPT-2 yang digunakan hanya dilatih dengan bahasa formal, nilai perplexity kcg akan tinggi karena modelnya merasa bahwa kcg itu tidak ‘pas’ dengan kalimatnya. Buat yang penasaran disini saya bermaksud mau nulis kcg -> kucing.

Daftar Tipe Colloquial di Indonesia

Dari hasil pengamatan dari data yang kami ambil dari hasil pengambilan Tweet orang Indonesia dari berbagai daerah, berikut tipe-tipe Colloquial yang sering muncul pada data kami:

  1. Disemvoweling. Penghilangan huruf vokal. Contoh: jangan ->jgn
  2. Shortening. Pemendekan suku kata. Contoh: internet -> inet
  3. Space/dash removal. Pemendekan dengan menghapus spasi atau dash dan bisa diganti dengan huruf lain. Contoh: teman-teman -> teman2
  4. Sound alteration. Pengubahan sedikit pengucapan atau lafal pada kata. Contoh: pakai -> pake
  5. Informal Affixation. Modifikasi imbuhan. Contoh: mengajari -> ngajarin
  6. Compunding atau Acronym. Penyingkatan kata dengan menjadi akronim. Contoh: anak baru gede -> abg
  7. Reverse. Pembalikan kata. Contoh: yuk -> kuy
  8. Loan Words. Pengambilan kata dari bahasa lain. Yang sering di Indonesia yaitu dari bahasa daerah atau Inggris. Contoh: bokap
  9. Jargon. Tagline atau kata yang dipopulerkan, bisa dari suatu event atau orang terkenal. Contoh: meneketehe

Bentuk datanya gimana sih?

Dari hasil pengamatan kami, kami melihat bahwa perubahan bentuk ke colloquial di Indonesia itu dilakukan secara bertumpuk. Sebagai contoh lihat gambar dibawah ini:

Contoh perubahan bentuk kata dari kata formal menjadi colloquial

Ada 2 perubahan bentuk pada kata tersebut, space/dash removal dan sound alteration.

Karena ada beberapa kata yang memerlukan transformasi bentuk lebih dari 1 kali, kami memecah tiap perubahannya menjadi 1 instance sendiri. Setiap instance memiliki atribut kata semula, bentuk transformasi, dan nama transformasi.

Contoh:

Kalian bisa melihat data kami di repository yang kami sediakan di akhir bagian dari artikel ini.

Perbandingan Beberapa Model NLP ke IndoCollex

Tentunya selain kami membuat data diatas, kami juga penasaran untuk mengetes IndoCollex ke beberapa model NLP yang populer. Pendekatan yang kami coba yaitu dengan pendekatan level karakter untuk mengubah kata dari formal ke informalnya atau kebalikannya. Selain itu kami juga membandingkan kualitas model antara pemberian tag transformasi dengan yang tidak diberikan tag transformasi pada input.

Untuk lebih jelasnya, lihat gambar dibawah ini untuk visualisasi skenario yang kami coba:

Cara eksperimen ke data kami. Contoh cara training ke model: Skenario 1: saya, disemvoweling -> sy. Skenario 2: saya -> sy. Skenario 3: sy + disemvoweling -> saya. Skenario 4: sy -> saya.

Pada artikel ini, saya tidak akan membahas tentang dalamnya algoritma AI yang kami coba. Saya akan bahas pada kulitnya saja. Untuk mengetahui lebih lanjut, kamu bisa cari-cari yah di search engine paporit kamu!

Metode Rule-Based

Sesuai namanya, kami membuat metode transformasi dengan aturan sederhana yang kami tentukan didapat dari hasil beberapa pengamatan dominan pada data. Pada metode rule-based ini, kami hanya membuat aturan dari informal ke formal saja. Berikut contoh salah satu rule based kami, untuk tipe sound-alteration.

Bisa dilihat bahwa kata formal tersebut akan berubah sesuai dengan aturan yang dibuat. Perlu diingat bahwa kita memerlukan tipe transformasi dalam mengetes metode rule-based ini.

Contoh hasil perubahan kata malas, sound-alteration dengan aturan diatas:

Hasil transformasi kata malas

Malas akan menghasilkan 3 kata kandidat informal, yaitu malaz, males, dan malez.

Kenapa gak formal ke informal dibuat juga?

Susah bos. bayangin kalau kita ingin membuat rule transformasi disemvoweling dari formal ke informal. (misalkan: cnth -> contoh). Disini kita memerlukan cara untuk menebak kata yang hilang, yang tentunya sulit dilakukan hanya dengan pendekatan rule-based saja.

Metode Deep Learning Seq2Seq

Kami mencoba menggunakan Deep Learning untuk IndoCollex, karena metode ini sangat populer di kalangan researcher NLP. Inti dari pendekatannya, dalam kasus mengubah bahasa informal ke formal, model Deep Learning ini akan menerima input informal dan menghasilkan kata formalnya. Model dinamakan seq2seq karena dia menerima input sequence of token dan juga mengeluarkan output sequence of token. Disini token adalah karakter, contoh ‘s’, ‘a’, ‘y’, dan ‘a’ (‘saya’), dan ‘s’, ‘y’ (‘sy’)

Model BiLSTM

Bentuk dalamnya LSTM. Source: researchgate.net

BiLSTM adalah salah satu metode Deep Learning (DL). Walaupun pada saat ini kepopuleran penggunaannya mulai meredup diranah periset text NLP, metode ini masih sering digunakan untuk sebagai alat pembanding (benchmarking). Bahkan ada beberapa riset yang menggunakan metode ini ke masalah yang mirip dengan apa yang kami uji, yakni morphological inflection di bahasa Inggris oleh (Deustch et.al., 2018). Kami menggunakan impelementasi dari apa yang dilakukan oleh penelitian mereka.

Ada beberapa tambahan dari apa yang dilakukan oleh Deustch et.al.. Kami membuat hasil dari output modelnya terkonstrain dengan kamus, sehingga output yang dihasilkan tidak kemana-mana. Disini kami namain metode tersebut dengan notasi (+Dict)

Model Transformer

Bentuk dalamnya Transformer. Sumber: Paper Attention is all you need

Model Transformer, pada saat saya menulis ini, sangat populer digunakan untuk pendekatan Deep Learning di NLP. Banyak task dimana Transformer kualitasnya lebih unggul dibanding BiLSTM (contoh pada task mesin penerjemah). Kami juga tergiur untuk menggunakan Model Transformer untuk mengecek efektivitasnya ke masalah ini.

Dalam implementasinya, kami menggunakan model transformer yang lebih kecil dari standar Transformer (beda hyperparameter dalam sisi ukuran model). Untuk lebih lanjut cara mencari ukuran modelnya, kamu bisa baca paper kami.

Augmentasi / Sintesis data

Sintesis atau augmentasi data training sering digunakan oleh periset NLP . Dengan menambah data tambahan yang dibuat secara otomatis. Dengan melakukan ini, kami berharap hasil kualitas modelnya bisa lebih baik lagi.

Untuk langkah bagaimana kami membuat data sintesis, bisa anda lihat dibawah ini.

Nama proses data sintesis ini adalah back-translation (BT)

Hasil Eksperimen

Berikut beberapa hasil eksperimen kami. Pada artikel ini, kita akan fokus dalam melihat metric Accuracy-10.

Hasil Experimen. BT: BackTranslation, WF: Word Formation.

Pada tabel diatas, ada beberapa poin menarik dari hasil eksperimen ini. Bisa dilihat bahwa rata-rata dari kualitas model Informal ke Formal lebih tinggi daripada Formal ke Informal. Hal ini bisa berhubungan dengan sulitnya model untuk menentukkan transformasi kata dari kata formal ke informal yang banyak sekali pilihannya.

Selain itu, pada task informal ke formal, model Transformer kualitasnya paling baik dibanding model yang lain. Dengan melakukan data sintesis lebih menaikkan kualitas modelnya. Dari sini bisa diketahui bahwa data sintesis cukup berpengaruh dalam menaikkan kualitas data.

Walaupun dengan cara-cara diatas, akurasi tertinggi yang dihasilkan masih cukup rendah. Hanya 70.2% top-10 accuracy yang tertinggi. Dari penemuan ini bisa terlihat bahwa masalah colloquialism di Indonesia ini masih cukup sulit dipecahkan dan menarik untuk diperhatikan.

Apaan itu Accuracy-10?

Perlu kamu ketahui kalau output dari model seq2seq bisa lebih dari 1 kandidat. Coba kasih contoh disini, model disuruh untuk output 10 kandidat kata formal ke informal: saya -> sy, sya, saza, sayaa, saye, eke, asdfdas,wrew, qqq, rrr (ini contoh aja yah, bukan beneran kyk gini). Tiap kandidat diurutkan berdasarkan confidence levelnya dengan algoritma beam search (cari sendiri yah di yutub2 cara kerjanya gimana). Dengan kata lain, urutan kata kandidat nomor 1 adalah kata yang paling diyakini model bahwa itu merupakan kata informalnya.

Nah di dalam IndoCollex, data yang benar, kata informalnya cuma punya 1 kandidat saja, misalkan ‘saya’ -> ‘sya’. Karena ‘sya’ itu termasuk di dalam output kandidat dari modelnya, maka dia dinyatakan benar. Kalau tidak ada di dalam kandidat hasil output dari model, maka dia dinyatakan salah (contoh: di IndoCollex ternyata ‘say’ adalah kata informalnya)

Jadi, anggap saja akurasi-10 adalah penghitungan kualitas yang lebih longgar untuk salah dibanding akurasi biasa. Untuk bagaimana pengukuran akumulatifnya sama seperti akurasi biasa (benar / total data).

Analisis dan Poin Menarik

Pada bagian ini, gue akan memberikan beberapa penemuan menarik tentang model terbaik dilihat dari attention model yang dihasilkan. attention model yang dipakai bagian dari model Transformer untuk melihat intensitas token atau karakter apa yang diperhatikan pada saat prediksi dari input ke target.

Dalam model Formal ke Informal, tanpa diberi nama transformasinya, model bisa belajar sendiri dalam memilih mana kata yang perlu dihapus. Pada contoh dibawah ini (sudah -> sdh), model dapat mengubah sudah menjadi sdh dengan memperhatikan dan menghapus kata bunyi (disemvoweling)

Ada contoh yang tanpa disebut nama transformasinya, dia tidak bisa menebak kata sesuai dengan yang kita inginkan. Tanpa diberi tag, kata ibu hamil akan berubah menjadi ibuhamil. Karena mungkin model terlalu belajar melihat kata spasi, di training data lebih banyak melakukan space-dash removal. Padahal yang kita mau yaitu perubahan acronym. Dengan dibantu nama transformasinya, model bisa berubah sesuai dengan yang kita inginkan.

Dengan dibantu dengan tag, bisa dilihat attention matrix dibawah ini bahwa bagian tag acronym juga diperhatikan oleh model. Hal ini membuat model memikirkan bagimana cara dia transformasi. Akhir dari transformasi itu yaitu bumil, dimana sesuai dengan singkatan kata ibu hamil yang sering muncul di colloquial.

Hal ini juga berlaku pada transformasi kata dari Informal ke Formal. Cukup menarik bahwa ada beberapa kasus dimana model bisa menentukkan kata yang hilang dari kata informal itu dengan bantuan tag. Contoh pada gambar dibawah ini, model bisa membentuk kata formal ksl menjadi kesal dengan memperhatikan tag disemvoweling. Selain itu, model juga bisa memisahkan kata yang tepat dengan spasi pada kasus space-dash removal dari kata gatau menjadi ga tau.

Kesimpulan

Photo by Ludemeula Fernandes on Unsplash

Disini kami mengeluarkan data IndoCollex yang bisa digunakan untuk benchmarking model untuk masalah colloqualism. Disini kami benar-benar ingin mengangkat masalah ini ke dunia periset dan memberitahu kalau masalah ini cukup menarik untuk dipecahkan. Bisa dilihat dari hasil eksperimen diatas bahwa tingkat kualitasnya masih cukup rendah. Hanya dengan mengandalkan teknik dan pendekatan populer seperti diatas masih belum bisa memecahkan masalah ini.

Ada beberapa hal yang menarik untuk di-explore untuk masalah ini. Mungkin saja dengan bantuan melihat konteks pada kalimat, model jadi lebih yakin dalam melakukan prediksi dari informal ke formal atau sebaliknya. Selain itu, pre-trained sudah sangat umum dimanfaatkan. Mungkin dengan mengutilisasi pre-trained model bisa dapat membuat kualitasnya lebih naik lagi. Masih banyak lagi yang bisa kamu coba-coba untuk masalah ini. Tertarik memecahkan masalah ini? Silahkan download data dari repository dibawah ini :).

Bagi teman-teman yang mau mendalami lebih lanjut tentang IndoCollex bisa baca paper kami dibawah ini 😄

Data dan Paper

DATA

PAPER

PS

Saya sengaja buat beberapa kata diatas ini gak formal semua. Ada yang iseng coba hitung berapa kata colloquial yg saya tulis?

--

--

Haryo Akbarianto Wibowo

Mad AI Enthusiast. I write mostly about Artificial Intelligence and Self Development. I also love to read Engineering, Psychology and Startup. Love to share!