Sunday, July 1, 2018

Sentimen Netizen terhadap Presiden Jokowi berdasar Twitter Mei 2018: Implementasi Sederhana Teknologi Big Data dan Machine Learning


Pada artikel sebelumnya (Analisa Sentimen Masyarakat terhadap Presiden Jokowi Berdasar Data Twitter: Sebuah Contoh Sederhana Pemberdayaan Big Data) telah dibahas bagaimana memberdayakan data tak berstruktur (teks twitter) untuk mengukur sentimen terhadap suatu subyek (dalam hal ini Presiden Jokowi) dengan mengimplementasikan pola pemrosesan Big Data dan salah satu algorithma machine learning. Dengan menerapkan metode yang cukup sederhana, dapat dicapai hasil akhir berupa persentase sentimen Positif, Negatif, maupun Netral terhadap Presiden Jokowi selama kurun waktu satu bulan (April 2018). Selain itu, juga didapat data tentang hashtag/tagar maupun tweet/cuitan mana yang berkontribusi signifikan terhadap tiap sentimen.

Pada artikel ini, serupa dengan artikel sebelumnya, topik yang dibahas masih seputar mengukur sentimen netizen terhadap Presiden Jokowi dengan menganalisa cuitan Twitter. Namun, data yang dianalisa adalah cuitan Twitter selama bulan Mei 2018 dengan klasifikasi sentimen meliputi Positif, Negatif, Netral, Bangga, Kecewa, dan NA (Not Applicable = diluar klasifikasi). Berkenaan dengan langkah-langkah pemrosesan data-nya, mulai proses collecting, storing, analysing, dan visualisation masih menggunakan metode yang sama.

Namun demikian, pada artikel terdahulu, belum ada pembahasan tentang seperti apa teknik Machine Learning yang diterapkan untuk melalukan text classification berbahasa Indonesia?

Secara garis besar, pertama-tama yang disiapkan adalah training data untuk membuat model yang akan dijadikan acuan untuk mengelompokkan cuitan Twitter ke dalam kategori sentimen tertentu (Positif, Negatif, Netral …?). Isi dari training data ini adalah teks cuitan Twitter berbahasa Indonesia yang di-posting pada bulan sebelumnya (April 2018). Kemudian model dibuat berdasarkan feature words yang dipilih dari training data yang sudah diberi label. Proses pemilihan feature words dilakukan dengan menerapkan salah satu algorithma feature selection yang dikenal dengan nama Chi-square.

Sebelum proses feature selection dilakukan, teks cuitan Twitter dalam training data mesti dibersihkan dulu dari unsur-unsur yang tidak penting dalam pemilihan feature words, diantarnya: stopword (dan, atau, kepada, daripada …), tagar (#), at-mark (@), url (http, https), awalan maupun akhiran. Langkah-langkah pembersihan ini (text cleaning) meliputi text tokenization, pembersihan non-word characters (tanda baca, tagar, at-mark, url, …), stopword removal, word stemming (mengubah tiap kata menjadi kata dasar), dan basic word dictionary referencing (tiap kata dasar yang didapatkan dari proses ini akan diverifikasi dengan kamus kata dasar, dipilih hanya yang merupakan kata dasar Bahasa Indonesia).

Setelah mendapatkan feature words, barulah kemudian diterapkan algorithma Naïve Bayes untuk mengklasifikasikan setiap cuitan Twitter yang dikehendaki ke dalam kategori sentimen yang telah ditentukan. Pada proses klasifikasi ini pun, setiap teks cuitan yang diproses (diklasifikasikan) harus melalui proses text cleaning seperti pada proses pemilihan feature words. Perlu dicatat: Algorithma Naïve Bayes mungkin bukan yang terbaik untuk text classification, tapi algorithma ini dikenal cukup sederhana dan cepat. Algorithma lain yang dapat diterapkan bisa menggunakan SVM (Support Vector Machine) maupun KNN dengan cosine similarity. Sekali lagi, data cuitan Twitter yang diproses adalah cuitan selama bulan Mei 2018. Berikut adalah hasilnya setelah divisualisasikan menggunakan Tableau.

Gambar 1. Persentasi Cuitan Positif (> 50%), Negatif (< 25 %), Netral (< 2,5%)


Gambar 2. Kontribusi Tagar pada Tiap Sentimen (sebagian besar berkontribusi pada sentimen Positif)

Berdasarkan Gambar 1, dapat disimak dengan jelas bahwa persentase sentimen Positif (> 50 persen) mencapai lebih dari dua kali lipat persentase sentimen Negatif (< 25 persen). Sedangkan pada Gambar 2, dapat diperoleh informasi bahwa sebagian besar Tagar memberikan kontribusi dengan porsi yang lebih besar kepada sentimen Positif kecuali Tagar #2019GantiPresiden dan Tagar #2019PresidenBaru. Tagar-tagar yang menyumbang sentimen Positif secara signifikan diantaranya: #2019TetapJokowi, #RakyatB3rsamaJkw, #2019JokowiLanjut, #PesonaBandaraKertajai, dan #Jokowi.


DISCLAIMER:

  1. Artikel ini semata-mata dimaksudkan untuk memberikan contoh implementasi analisa Big Data dengan metode yang relatif sederhana dan masih jauh dari sempurna.
  2. Tingkat akurasi dari hasil analisa pada artikel ini tidak dihitung dan belum dapat ditentukan.
  3. Isi artikel ini tidak dapat dijadikan sebagai referensi apapun selain hanya sebagai contoh sederhana pemberdayaan Big Data.

2 comments:

fatur Rahman said...

ni sentiment words nya bisa minta?

Vijjam Wjaya said...

Ini masih prototype sederhana, mungkin kita bisa kolaborasi untuk pengembangan lebih lanjut.