Sentimen Analisis pada Tweet Berbahasa Indonesia dengan Deep Belief Network

Sentimen analisis adalah riset komputasional dari opini sentiment dan emosi yang diekspresikan secara tekstual. Twitter menjadi perangkat komunikasi paling popular di kalangan pengguna internet. Deep Learning adalah area baru dalam penelitian machine learning, yang telah diperkenalkan dengan tujuan menggerakkan machine learning lebih dekat dengan salah satu tujuan aslinya yaitu artificial intelligence. Tujuan deep learning mengganti manual engineering dengan learning, pada perkembangannya deep learning memiliki himpunan algoritma yang fokus pada pembelajaran representasi data (nonlinear) bertingkat. Deep Belief Network (DBN) merupakan salah satu metode machine learning yang termasuk dalam metode Deep Learning yang merupakan tumpukan atau stack dari beberapa algoritma atau metode dengan feature extraction yang memanfaatkan seluruh resource seoptimal mungkin.

Penelitian ini bertujuan untuk melakukan pengklasifikasian terhadap sentimen positif, negatif, dan netral terhadap data uji dan untuk mengetahui akurasi model klasifikasi dengan menggunakan metode Deep Belief Network ketika diaplikasikan pada klasifikasi tweet untuk menandai kelas sentimen data training tweet berbahasa Indonesia. Dari percobaan yang dilakukan, hasil pengujian pada sistem yang dibangun memperlihatkan bahwa metode terbaik pada data tweet adalah metode DBN yaitu dengan akurasi sebesar 93,31%, ketika dibandingkan dengan metode Naive Bayes yang memiliki akurasi sebesar 79,10%, dan SVM (Support Vector Machine) yang memiliki akurasi sebesar 92,18%.

Opini mining atau sentimen analisis adalah riset komputasional dari opini, sentimen dan emosi yang diekpresikan secara tekstual [1]. Sekarang ketika suatu organisasi / perusahaan / perorangan ingin memperoleh opini publik mengenai produk, citra dan layanannya, maka mereka tidak perlu melakukan survei konvensional dan fokus group yang mahal biayanya [2].
Deep Learning adalah area baru dalam penelitian Machine Learning, yang telah diperkenalkan dengan tujuan menggerakkan Machine Learning lebih dekat dengan salah satu tujuan aslinya yaitu Artificial Intelligence. Deep Learning adalah tentang belajar beberapa tingkat representasi dan abstraksi yang membantu untuk memahami data seperti gambar, suara, dan teks [3].
Deep Belief Network (DBN) adalah suatu pengembangan dari Deep Learning yang merupakan tumpukan atau stack dari beberapa algoritma atau metode yang bertujuan feature extraction yang memanfaatkan seluruh resource seoptimal mungkin. Deep Learning mencakup algoritma unsupervised dan supervised learning sehingga dapat memanfaatkan data yang berlabel maupun tidak berlabel. Pendekatan yang sering digunakan untuk mengimplementasikan Deep Learning adalah graphical methods atau multi layer representation atau multi layer graphical model seperti Deep Belief Network [4].
Metode klasifikasi sentimen yang dipilih adalah DBN yaitu salah satu metode machine learning untuk pemodelan semantik kalimat yang termasuk dalam metode Deep learning. Dalam pemprosesan text data sentimen analisis untuk membedakan dengan penelitian sebelumnya. Hasil dari penelitian ini untuk membandingkan hasil akurasi yang dilakukan oleh Aliandu (2012) dengan metode Naive Bayesian dan metode Support Vektor Machine. Nantinya dapat dilihat hasil mana yang lebih akurat dari metode-metode yang digunakan.
Sumber data Twitter berbahasa Indonesia dipilih karena penelitian dalam bahasa Indonesia belum banyak dilakukan, sedangkan DBN dipilih karena metode ini belum pernah digunakan dalam kasus sentimen analisis sebelumnya dan diharapkan dapat mencapai kinerja yang lebih baik dari metode – metode sebelumnya.
Metode DBN diharapkan bisa digunakan dalam pengimplementasian Tweet untuk keperluan data training dikumpulkan dari beragam data yang dianotasikan kelas sentimennya secara atomatis dengan akun media nasional di Twitter. Akum media nasional merupakan teks yang hanya berisi pernyataan atas suatu fakta atau kejadian dan tidak mengekpresikan emosi tertentu. Apakah nantinya karakteristik DBN ini sesuai jika diaplikasikan pada data Twitter.
Bedasarkan hal tersebut akan dibuat analisa sentimen tweet berbahasa Indonesia dengan menggunakan metode Deep Belief Network dalam membangun model klasifikasi.

Metode
2.1 Inputan Data
2.1.1 Data tweet Berbahasa Indonesia
Data tweet diperoleh dengan melakukan scraping pada situs www.search.twitter.com dengan memanfaatkan API twitter. tweet yang diperoleh berisi daftar tweet berbahasa Indonesia.

2.1.2 Data Kata Baku Bahasa Indonesia
Data kata baku diperoleh berdasarkan kamus besar bahasa Indonesia. Total kata baku atau kata dasar bahasa Indonesia yang digunakan dalam penelitian ini berjumlah 828 kata. Data kata baku diperoleh dari inputan secara manual
2.1.3 Data Kata Tidak Baku
Data kata tidak baku diperoleh dari data kotor hasil scraping tweet.
2.1.4 Data Stopword
Stopword adalah kata-kata yang tidak memiliki pengaruh dalam proses klasifikasi, seperti: yang, dan, atau, ke, dari, dan lain-lain.Total Kata Umum yang digunakan dalam penelitian ini berjumlah 754 kata. Data Kata Umum diperoleh dari data kotor hasil scraping tweet yang diinput secara manual.
2.1.5 Data Simbol
Data Simbolsadalah symbol tidak memiliki pengaruh dalam proses klasifikasi, seperti: (.,:;!-?"'()0-9*).
2.1.6 Data Antonim
Antonim adalah kata-kata yang berlawanan makna dengan kata lain. Data antonim berfungsi sebagai konversi sesudah kata negasi kemudian kata negasi dihilangkan. Misalnya, terdapat kalimat yang mengandung dua kata ―tidak besar‖ maka susunan kata setelah dikonversi dengan data antonym menjadi ―kecil‖. Total antonim yang digunakan dalam penelitian ini berjumlah 289 kata yang diperoleh dari hasil inputan secara manual pada sistem.
2.1.7 Data POS Tagging
POS Tagging merupakan kata yang telah dilabelisasi kelas kata berdasarkan kamus besar bahasa Indonesia. Contoh : makanan enak" setelah di POS Tagging menjadi makanan NN// enak JJ//". Total POS Tagging yang digunakan dalam penelitian ini berjumlah 48,274kata.Data POS Tagging diperoleh dari link berikut: http://hikaruyuuki.lecture.ub.ac.id/kamus-kata-dasar-dan-stopword-list-bahasa-indonesia/ dan ditambahsecara manual berdasarkan pengamatan dalam proses pengembangan sistem ini.
2.2 Arsitektur Sistem
Secara umum arsitektur sistem ini terdiri dari lima bagian diantaranya adalah pengumpulan data, preprocessing, pelabelan, klasifikasi sentimen, hasil akurasi sentimen. Arsitektur sistem yang dirancang seperti terlihat pada Gambar 1.
Tahap pertama dari aristektur sistem yaitu melakukan pengumpulan data dari server Twitter memanfaatkan API Twitter dengan cara scraping, Selanjutnya data hasil scraping tersebut akan mengalami proses preprocessing agar data siap digunakan untuk proses klasifikasi. Hal ini dilakukan karena tidak semua data tweet tersebut dapat digunakan. Pada tahap preprocessing ini dilakukan pembersihan data tweet yang terdiri dari case folding, penghapusan simbol-simbol, tokenisasi, konversi slangword, penghapusan stopword. Kemudian data tweet hasil preprocessing disimpan dalam database dengan tempat yang berbeda dari data tweet kotor.
Kemudian data tweet bersih yang sudah diberi label secara manual akan dirubah menjadi vector dengan bagofword untuk dilakukan perhitungan dengan metode deep belief network, naïve bayes dan support vector machine agar menghasilkan model klasifikasi sentimen. Kemudian tahap terakhir adalah pengujian klasifikasi tweet yang meliputi pengujian akurasi, presisi, recall, dan f1-score yaitu menghitung keakuratan tweet pada sistem.

Gambar 1 Arsitektur Sistem

2.3 Pengumpulan Data
Pada tahap ini dilakukan pengumpulan data-data yang dibutuhkan dalam penelitian. Data-data yang dimaksud adalah kumpulan dari tweet terkait tentang tranding topik di www.search.twitter.com.
2.3.1 Scraping
Pengumpulan data pada penelitian ini dilakukan dengan cara scraping pada situs www.search.twitter.com. Proses scraping dilakukan dengan memanfaatkan library Python Tweepy http://tweepy.readthedocs.io/en/v3.5.0/api.html#tweepy-api-twitter-api-wrapper dan Twitter API. Scraping tweet dilakukan secara otomatis untuk mengambil data tweet dengan jangka waktu data yang bisa ditentukan. Sebelum dapat melakukan scrapping, sistem ini akan melakukan pengecekan key consumen dan access token agar sistem dapat mengembil data dari twitter apabila data token ada terdaftar dalam sistem twitter maka sistem dapat mengambil data twitter pada wilayah Indonesia. Data tweet bahasa Indonesia dengan query yang dicari. Sistem ini menyimpan data tweet kedalam database, jika data tweet yang diambil telah tersimpan didalam database maka sistem tidak menyimpan data tersebut sehingga tidak terdapat tweet yang sama pada data tweet. Data tweet terkumpul secara otomatis tersimpan dalam database mysql. Dari mysql data akan diekspor ke file .txt.. Langkah-langkah proses scraping tweet seperti terlihat pada Gambar 2.

2.4 Preprocessing
Preprocessing sangat menentukan dalam proses penentuan sentimen dengan deep belief network dan klasifikasi tweet menjadi lebih akurat. Preprocessing juga digunakan untuk mendapatkan data bersih. Tahap preprocessing terdiri dari beberapa proses yang akan dibahas satu per satu secara detail, antara lain:
2.4.1 Case Folding Tahap iniberfungsi untuk merubah karakter huruf di dalam komentar menjadi karakter huruf kecil semua.
2.4.2 Penghapusan Simbol-Simbol
Penghapusan simbol-simbolberfungsi untuk menghapus karakter khusus dalam komentar seperti tanda baca (seperti: koma (,), titik(.), tanda tanya (?), tanda seru (!) dan sebagainya), angka numerik (0 - 9), dan karakter lainnya(seperti: $, %, *, dan sebagainya).
2.4.3 Tokenisasi Tokenisasi berfungsi untuk memecah komentar menjadi satuan kata.Proses tokenisasi dilakukan dengan melihat setiap spasi yang ada dalam komentar maka berdasarkan spasi tersebut kata-kata dapat dipecah.
2.4.4 Konversi Slangword
Konversi slangword merupakan proses mengubah terhadap kata tidak baku ke kata baku. Tahap ini dilakukan dengan menggunakan bantuan kamus slangword dan padanannya dalam kata-kata baku. Tahapan ini akanmemeriksa kata yang terdapat dalam kamus slangword atau idak. Jika kata tidak baku terdapat dalam kamus slangword maka kata tidak baku akan dirubah ke kata baku yang terdapat didalam kamus slangword.
2.4.5 Penghapusan Stopword
Tahap ini berfungsi untuk menghilangkan kata-kata yang tidak penting dalam proses klasifikasi dan penentuan alasan, seperti kata: yang, tetapi, atau, ke, di, dengan, dan sebagainya.
2.5 Perancangan Training
Perancangan proses training dilakukan dengan menggunakan metode deep belief network dan support vector machine, Naïve bayes sebagai metode pembanding.


2.5.1 Perancangan deep belief network
Perancangan deep belief network dibagi menjadi 2 tahapan yaitu tahap pembelajaran dan tahap klasifikasi. Proses tahapan perhitungan deep belief network pada tahap pembelajaran adalah sebagai berikut :
a. Menghitung jumlah seluruh tweet (data) dalam data training.
b. Menghitung jumlah tweet pada masing-masing kelas.
c. Lakukan pelatihan pada RBM pertama pada model dengan data input x = atau dapat dikatakan ini merupakan lapisan terlihat v pada RBM pertama untuk mendapatkan parameter .
d. Tetapkan parameter dan gunakan lapisan pertama untuk memperoleh representasi fitur yang akan digunakan sebagai data untuk lapisan kedua dengan melakukan sampling h1 dari .
e. Tetapkan parameter yang didefinisikan oleh fitur lapisan kedua dan gunakan sampel dari . sebagai data latih pada lapisan ketiga.
Lakukan langkah diatas secara berulang untuk lapisan berikutnya. Berikut adalah tahapan rinci dari CD-1 untuk training RBM [3]:
a. Inisialisasi bobot dan bias, laju pembelajaran dan tetapkan maksil epoch.
b. Ketika kondisi berhenti tidak terpenuhi atau epoch maksimal tidak terpenuhi lakukan langkah ke-3 sampai ke-8 secara berulang-ulang.
c. Gunakan data training x sebagai neuron-neuron terlihat pada lapisan terlihat
( ) Σ
d. Perbaharui lapisan tersembunyi dengan p(h = 1, v ; w) melakukan persamaan (1) kemudian aktivasi neuron-neuron biner stokastik pada lapisan tersembunyi dengan mengambil probabilitas pada persamaan (1) lebih dari nilai random yang tersebar antara 0 dan 1.
(Σ )
e. Rekonstruksi neuron-neuron terlihat dengan menggunakan hasil dari neuron-neuron biner stokastik pada langkah ke-2 sebagai masukan pada persamaan (2).
f. Hitung probabilitas output dari rekonstruksi dengan melakukan perhitungan probabilitas pada persamaan (1), namun hasil rekonstruksi dijadikan sebagai masukan.
g. Hitung bobot delta dengan mengikuti persamaan (3) atau dapat melihat Gambar 3 dengan rumus sebagai berikut:


h. Perbaharui bobot dengan mengikuti persamaan (4)
2.5.2 Perancangan Support Vector Machine dan Naïve Bayes
Metode pembanding yang digunakan pada penelitian ini adalah metode Support Vector Machine (SVM) dan Naïve Bayes (NB). Proses perancangan diawali dengan pemanggilan library sklearn dari Python dengan menggunakan beberapa parameter, antara lain : kernel yang digunakan adalah kernel linear untuk SVM, nilai gamma yang digunakan adalah 1.0, dan nilai coef0 yang digunakan adalah 1.0.
2.6 Algoritma Pelatihan pada DBN
Menggunakan algoritma DBN yang secara supervised. Hal tersebut dilakukan karena pada data pelatihan sudah terdapat label yang nantinya juga akan digunakan pada lapisan output jaringan. Meskipun demikian pre-training tetap dilakukan dengan mengatur tumpukan RBM yang digunakan dalam DBN menyesuaikan data yaitu dengan Bernoulli (Biner) RBM [5].
2.6.1 Inisialisasi RBM dan Kontruksi DBN
Pada RBM pertama, lapisan terlihat mendapatkan inputan langsung dari sampel data x. Dari lapisan terlihat dan lapisan tersembunyi pada RBM dilakukan pelatihan untuk membentuk bobot .
Setelah RBM pertama selesai dilatih, dengan mengambil pola aktivitas pada
lapisan tersembunyi RBM pertama, kemudian dapat digunakan sebagai data pada lapisan terlihat untuk melatih RBM kedua. Dengan menyalin h1 sebagai pada RBM kedua, maka bobot akan dapat dilatih.Proses ini juga dapat dikatakan membentuk tumpukan (stack) RBM. Perhatikan bahwa pada proses ini label tidak terlibat [6].
2.6.2 Pelatihan Setiap Lapis RBM
Pada konstruksi DBN sudah dijelaskan pembelajaran lapis-demi-lapis pada DBN dengan melakukan pelatihan pada setiap lapisan RBM. Pelatihan lapis-demi-lapis ini bertujuan untuk membentuk bobot-bobot yang menghubungkan lapisan input dengan lapisan tersembunyi pertama dan lapisan tersembunyi kedua (Karena terdapat 2 lapisan tersembunyi pada DBN).
Tahapan latihan ini dapat dikatakan sebagai tahapan pre-training mengacu pada penelitian yang dilakukan oleh [7], dimana pelatihan setiap lapis. RBM dilakukan secara Unsupervised Learning tanpa melibatkan kelas label atau target [8].
2.6.3 Mini-Batch Gradien Descent
Pembaharuan bobot pada RBM mengacu pada aturan pembaharuan Gradient Descent. Pada gradient descent biasa atau batch gradient descent untuk seluruh data akan dikenakan penjumlahan gradien dalam suatu perulangan sebanyak epoch yang diingikan. Gradient merupakan turunan parsial untuk setiap bobot dan bias. Besarnya gradien dapat memberikan petunjuk tentang berapa banyak bobot atau bias yang harus berubah.

2.6.4 Fine-tunning Backpropagation
Karena DBN dapat digunakan secara supervised (setelah melalui proses pretraining) dengan melibatkan kelas label bobot akan disempurnakan atau proses ini disebut dengan fine-tuning. Fine-tuning dilakukan dengan melatih jaringan menggunakan algoritma Backpropagation [9][10].
Pada proses sebelumnya, hasil pembobotan yang dilakukan pada saat pelatihan setiap lapisan RBM digunakan dalam inisialisasi fine-tuning dengan Backpropagation ini. Namun, untuk bobot yang menghubungkan lapisan tersembunyi kedua dengan lapisan output tetap menggunakan inisialisasi random.
Dengan demikian, jaringan DBN dapat dianggap seperti MLP dengan dua lapisan tersembunyi dan satu lapisan output yang terhubung secara penuh. Gambar 4. menunjukkan tahapan fine-tuning pada keseluruhan jaringan DBN yang terhubung secara penuh.


Contoh Hasil dan Pembahasan
3.1 Pengujian Klasifikasi Tweet
Bagian ini membahas tentang pengujian dari klasifikasi tweet yang telah dibangun. Pengujian klasifikasi tweet dilakukan dengan mengukur akurasi, presisi, recall, dan f1-score dari hasil perhitungan deep belief network, naïve bayes classifier dan support vector machine.
Adapun total data tweet yang digunakan untuk pengujian klasifikasi (uji) adalah 2378 tweet. Total data tweet untuk proses pengujian tersebut dibagi ke dalam delapan tranding topik yang telah diinputkan sebelumnya oleh user. Rincian data tweet untuk proses pengujian klasifikasi tweet dan pengujian tweet diperlihatkan pada Tabel 2.


Sebelum dilakukan pengujian terhadap klasifikasi tweet, seluruh data tweet dilabeli secara manual sesuai berdasarkan jenis klasifikasinya (sentimennya). Sebagai contoh komentar ―penjara Ahok‖ maka akan dilabeli dengan ―-‖ karena memiliki nilai sentimen negatif yang berisi tentang penjarakan Ahok.
Pengujian klasifikasi alasan untuk mengukur akurasi, presisi, recall, dan f1-score diperoleh dengan membandingkan tiap tweet yang telah dilabeli secara manual dengan hasil perhitungan deeb belief network yang dilakukan oleh sistem. Jumlah tweet yang sesuai antara hasil perhitungan deeb belief network oleh sistem dengan pelabelan secara manual, akan mempengaruhi nilai akurasi, presisi, recall dan f1-score yang diperoleh. Semakin besar jumlah tweet yang sesuai, maka semakin tinggi pula nilai akurasi, presisi, recall dan f1-score yang didapatkan. Rekapitulasi hasil pengujian klasifikasi perhitungan klasifikasi tweet dengan menggunakan deeb belief network untuk tiap tranding topik diperlihatkan pada Tabel 2.


Berdasarkan Tabel 3 di atas dapat disimpulkan bahwa hasil akurasi perhitungan klasifikasialasan secara keseluruhan dengan menggunakan deeb belief network yaitu sebesar 50,35%, presisi 27%, recall 50%, sedangkan hasil perhitungan untuk f1-score yaitu 35%.
Sedangkan hasil pengujian sistem keseluruhan dari perhitungan klasifikasi dengan menggunakan metode support vector machine memperlihatkan bahwa metode support vector machine menghasilkan nilai akurasi yang sama besar dengan metode deeb belief network. Nilai akurasi keseluruhan yang didapatkan dari hasil perhitungan klasifikasi dengan metode support vector machine yaitu sebesar 50,35%, nilai presisinya sebesar 27%, nilai recall sebesar 50% dan nilai f1-score sebesar 35%. Rekapitulasi confusion matrix hasil perhitungan klasifikasi menggunakan support vector machine dari tiap tranding topik ditunjukkan oleh Tabel 3.


Sedangkan hasil pengujian sistem keseluruhan dari perhitungan klasifikasi dengan menggunakan metode Naïve Bayes memperlihatkan bahwa metode Naïve Bayes menghasilkan nilai akurasi yang lebih baik dari pada metode Deep Belief Network dan support vector machine. Nilai akurasi keseluruhan yang didapatkan dari hasil perhitungan klasifikasi dengan metode Naïve Bayes yaitu sebesar 80.16%, presisi 82%, recall 70%, f1-score 78% , support 2373% Rekapitulasi hasil perhitungan klasifikasi menggunakan Naïve Bayes dari tiap tranding topik ditunjukkan oleh Tabel 4.


3.2 Perbandingan Hasil Akurasi
Perbandingan hasil akurasi dari perhitungan klasifikasi dengan menggunakan metode Deep Belief Network, support vector machine, dan metode Naïve Bayes diperlihatkan oleh Tabel 5 Perhitungan klasifikasi dengan menggunakan metode Naïve Bayes menghasilkan nilai pengujian yang lebih baik secara keseluruhan dari pada menggunakan metode Deep Belief Network, dan support vector machine.


Hasil perbandingan pengujian sistem keseluruhan dari perhitungan klasifikasi total data dengan menggunakan metode support vector machine memperlihatkan bahwa metode support vector machine menghasilkan nilai akurasi yang sama besar dengan metode Deep Belief Network. Nilai akurasi keseluruhan yang didapatkan dari hasil perhitungan klasifikasi dengan metode support vector machine yaitu sebesar 50.91%, presisi 28%, dan recall 51%. Rekapitulasi hasil perhitungan klasifikasi menggunakan support vector machine dari tiap tranding topik ditunjukkan oleh Tabel 5.
Sedangkan hasil pengujian sistem total tweet keseluruhan dari perhitungan klasifikasi dengan menggunakan metode Deep Belief Network , support vector machine, dan Naïve Bayes memperlihatkan bahwa metode Deep Belief Network menghasilkan nilai akurasi yang lebih baik dari pada metode Naïve Bayes dan support vector machine seperti yang diperlihatkan oleh Tabel 6.


Nilai akurasi keseluruhan yang didapatkan dari hasil perhitungan klasifikasi dengan metode Deep Belief Network yaitu sebesar 93.31%, presisi 93%, recall 93%, f1-score 93% , support 2378, support vector machine yaitu sebesar 92.18%, presisi 92%, recall 92%, f1-score 92% , support 2378, dan Naïve Bayes yaitu sebesar 79.10%, presisi 79%, recall 79%, f1-score 79% , support 2378.

4. KESIMPULAN
Berdasarkan penelitian yang telah dilakukan, maka diperoleh kesimpulan sebagai berikut:
1. Hasil pengujian pada sistem yang dibangun memperlihatkan bahwa metode Deep Belief Network memberikan hasil pengujian klasifikasi lebih baik dengan akurasi sebesar 93.31%, presisi 93%, recall 93%, f1-score 93%, dan support 2378, sedangkan hasil pengujian pada sistem menggunakan metode Naive Bayes memberikan hasil pengujian klasifikasi dengan akurasi sebesar 79.10%, presisi 79%, recall 79%, f1-score 79%, support 2378 dan Support Vector Machine sebesar 92.18%, presisi 92%, recall 92%, f1-score 92% , support 2378.
2. Penggunaan metode DBN dengan menggunakan BagofWord sebagai fitur ekstraksinya terbukti tidak memberikan akurasi lebih baik, ketika dibandingkan dengan metode Naive Bayes dan SVM (Support Vector Machine) dengan menggunakan BagofWord sebagai fitur ektraksinya pada aplikasi yang dibangun.

Daftar Pustaka:
Pak Reza Chandra
https://journal.ugm.ac.id/ijccs/article/viewFile

Komentar

Postingan populer dari blog ini

All About Big Data

Bank Latihan soal UU Algoritma & Pemrograman 2 Gunadarma

Merubah Warna Pada Object Video Tertentu Menggunakan Aplikasi Adobe After Effect