ANALISIS SENTIMEN TWITTER BAHASA INDONESIA MENGGUNAKAN PENDEKATAN MACHINE LEARNING
Aloysius Kurniawan Santoso1)
1Universitas Nusa Mandiri
Jl. Kramat Raya No. 18, Senen, Jakarta Pusat Email : 14002407@nusamandiri.ac.id1
ABSTRACT
Twitter is a social media that is still widely used in Indonesia in expressing ideas, ideas, and opinions. Not a few researchers use public tweets to make a research on sentiment analysis. This research discusses sentiment analysis of Indonesian tweets on Twitter social media. There are 3 types of sentiment in this study, -1 symbolizing negative, 0 symbolizing neutral, and 1 symbolizing positive. This study aims to find the model that has the best accuracy results. This research uses Logistic Regression, Random Forest, Adaboost and Decision Tree methods. The Decision Tree method uses several preprunings such as Max Depth, Min Leaves and Min Split. Among the four models in this study, the Logistic Regression method obtained an accuracy value of 61%.
Keywords: Sentiment Analysis, Logistic Regression, Accuracy
ABSTRAK
Twitter merupakan media sosial yang masih banyak digunakan di Indonesia dalam menuangkan sebuah ide, gagasan, serta opini. Tidak sedikit seorang peneliti memanfaatkan tweet masyarakat untuk menjadikan sebuah penelitian mengenai analisis sentimen Penelitian ini membahas mengenai analisis sentimen tweet bahasa Indonesia pada media sosial twitter. Sentimen pada penelitian ini ada 3 jenis, -1 melambangkan negatif, 0 melambangkan netral, dan 1 melambangkan positif. Penelitian ini bertujuan untuk menemukan pemodelan yang memiliki hasil accuracy terbaik.
Penelitian ini menggunakan metode Logistic Regression, Random Forest, Adaboost dan Decision Tree. Pada metode Decision Tree menggunakan beberapa prepruning seperti Max Depth, Min Leaves dan Min Split. Diantara keempat model dalam penelitian ini, metode Logistic Regression mendapatkan nilai akurasi sebesar 61 %.
Kata Kunci: Analisis Sentimen, Logistic Regression, Akurasi
1. PENDAHULUAN
Dalam sebuah pemodelan machine learning khususnya yang berfokus pada teks, hal yang terpenting dan perlu diperhatikan adalah proses pelatihan pada model yang digunakan. Hal tersebut disebabkan pada proses pelatihan analisis sentimen yang berjalan menggunakan data subjektif seperti opini.[1]Kebutuhan akan alat penambangan teks yang efektif dan efisien dan teknik meningkat sekarang hari karena mengejutkan sejumlah data tekstual. Data ini meningkat dari hari ke hari karena ke situs jejaring sosial (Facebook dan Twitter dll) [2].Penelitian ini berkonsentrasi pada analisis sentimen bahasa indonesia menggunakan data pada Twitter. Data Twitter memungkinkan peneliti memperoleh banyak pengetahuan dari penggunanya. Penambangan teks adalah salah satu bidang unggulan dari penambangan data, yang memiliki potensi untuk mengekstrak informasi yang berguna dari data tekstual mentah.
Menerapkan analisis sentimen ke Twitter adalah tren yang muncul dalam penambangan teks, dengan para peneliti mengenali tantangan spesifik yang dibawanya dan aplikasi potensialnya.Pada penelitian sebelumnya yang dilakukan oleh Riki Refdiana , menggunakan metode Support Vector Machine mendapatkan akurasi 59,6 %, menggunakan metode K-Nearest Neighbor mendapatkan akurasi 48,7 % dan menggunakan Stochastic Gradient Descent mendapatkan akurasi 57,8
%.[1]Tujuan penelitian ini adalah mendapatkan classifier terbaik dalam mendapatkan akurasi dalam teks bahasa indonesia yang tertuang pada cuitan sosial media khususnya Twitter.
2. METODOLOGI PENELITIAN
Metode penelitian yang menggunakan metode Decision Tree, Random Forest, Adaboost dan Logistic Regression. Berikut alur pemrosesan penelitian seperti Gambar 1 di bawah ini :
Gambar 1. Alur Penelitian 2.1. Dataset
Dataset yang digunakan dalam penelitian ini berjudul Indonesian Sentiment Twitter Dataset pada Github. Dataset berisi 10806 record dan 2 feature antara lain, texts dan sentiment. Tweet melambangkan isi tweet
pada media social twitter dan sentiment terbagi menjadi 3 yaitu -1 melambangkan negative, 0 melambangkan netral, dan 1 melambangkan positif. Berikut beberapa isi dataset dalam penelitian ini :
Tabel 2.1 Dataset
2.2. Preprocessing
Setelah dataset dipersiapkan, proses selanjutnya adalah Preprocessing.
Preprocessing yang dilakukan adalah menghapus mention dan hashtag pada feature Texts. Dengan melakukan penghapusan stopwords hal ini dapat meningkatkan akurasi dalam menganalisa sentimen dalam suatu bahasa, meskipun tidak terlalu signifikan, karena setiap kata memiliki arti yang berbeda di tiap bahasa yang digunakan [14]. Kata-kata stopwords seperti kata ganti, preposisi, dan konjungsi, dimana kata tersebut tidak membantu dan sering terjadi [15]. Pada penelitian ini tahapan preprocessing yang digunakan antara lain Label encoder untuk merubah isi kolom sentimen menjadi 0,1,2.
Lalu Cleaning untuk membersihkan tanda
baca pada kolom tweet. Setelah itu stopword yang berfungsi untuk menghilangkan kata - kata yang sering muncul namun tidak memiliki arti. Lalu stemming untuk mengubah kata menjadi kata dasar. Setelah itu proses tokenizing untuk memisahkan kalimat menjadi potongan - potongan kata. Dan yang terakhir adalah proses num2word yang berfungsi untuk merubah angka menjadi teks.
2.3. Proses Vektorisasi
Pada penelitian ini, proses setelah preprocessing dan sebelum masuk ke dalam model adalah proses vektorisasi. Proses ini menggunakan CountVectorizer yang merupakan features extraction pada Sklearn.
Proses ini menggunakan ekstraksi fitur n- gram. N-gram range yang digunakan adalah 1,2 yang berarti menghitung dengan unigram dan bigram.
2.4. Implementasi Algoritma
Pada implementasi algoritma menggunakan Decision Tree, Logistic Regression, Adaboost dan Random Forest.
Pada setiap model menggunakan 80% data training dan 20% data testing. Pada model Decision Tree, dibagi atas 2 kriteria yaitu entropy dan gini. Dan pada setiap kriteria akan menggunakan prepruning max depth, min leaves dan min split. Pada max depth menggunakan 5, 10, 15, 20, dan 30. Sedangkan pada min leaves menggunakan 2, 5, 8, 11, 14 dan 17. Dan pada min split menggunakan 4, 6, 8, 10, 12 dan 14. Pada Random Forest
menggunakan max_features=3,
n_estimators=300. Pada Adaboost menggunakan n_estimators=30, random_state=7. Pada Logistic Regression menggunakan random state=42. Setiap model akan menghasilkan nilai akurasi dan nantinya akan dibandingkan antar model yang menghasilkan nilai akurasi tertinggi.
sentimen Tweet
-1 lagu bosan apa yang aku save ni huhuhuhuhuhuhu
-1 kita lanjutkan saja diam ini hingga kau dan aku
1 doa rezeki tak putus inna haa zaa larizquna.
1 makasih loh ntar kita bagi hasil aku 99 9 sisa
-1 aku tak faham betul jenis orang malaysia yang
3. HASIL DAN PEMBAHASAN 3.1. Dataset
Dataset yang digunakan adalah dataset publik yang berasal dari GitHub. Dataset ini berisi dari 10.806 baris dan terdiri dari 2 kolom. Pada tahap berikut akan menjelaskan terkait tipe data pada dataset yang digunakan.
Adapun tipe data yang tersedia sebagai berikut
Tabel 3.1. Tipe Data
Kolom Tipe Data
Sentiemen Integer
Tweet Object
Sentimen terbagi dari 3 kelas yaitu -1 melambangkan negative, 0 melambangkan neutral dan 1 melambangkan positive. Dan berikut hasil dari penyebaran terkait sentiment :
Gambar 2. Peta jumlah penyebaran sentiment
Pada jumlah penyebaran kolom sentimen dijabarkan melalui Tabel 3.2 dibawah ini :
Tabel 3.2. Jumlah data pada kolom sentimen Sentimen Jumlah
-1 (Negative) 2887
0 (Neutral) 5327
1 (Positive) 2592
:
3.2. Missing Value
Dalam pemeriksaan missing value pada dataset yang digunakan, mendapatkan hasil nihil. Karena jika ada data yang kosong itu akan berpengaruh pada hasil pada setiap model yang digunakan.
3.3. Preprocessing
Pada tahap preprocessing ada beberapa tahap yang digunakan antara lain : 3.3.1. Label Encoder
Pada tahap ini menjelaskan bahwa melakukan label encoder pada kolom sentimen. Kolom sentimen yang semula -1, 0 dan 1 diubah menjadi 0, 1 dan 2.
3.3.2. Cleaning
Pada tahap ini adalah proses pembersihan tanda baca yang ada pada kolom tweet. Setelah dibersihkan akan menjadi seperti yang dijabarkan pada Tabel 3.3 dibawah ini :
Tabel 3.3. Hasil Cleaning
Sebelum Sesudah
aku aja capek sama diriku sendiri apalagi
kamu maaf ya '
aku aja capek sama diriku sendiri apalagi
kamu maaf ya ini tiga aku satu aja
gapunya '
ini tiga aku satu aja gapunya
3.3.3. Stopword
Pada tahap ini adalah proses menghilangkan kata – kata umum yang sering
muncul dan tidak memiliki arti dan menggunakan Sastrawi Indonesia. Setelah dilakukan proses stopword akan menjadi seperti yang dijabarkan pada Tabel 3.4 dibawah ini :
Tabel 3.4 Hasil Stopword
Sebelum Sesudah
aku aja capek sama diriku sendiri apalagi
kamu maaf ya
aja capek maaf
ini tiga aku satu aja gapunya
aja gapunya
3.3.4. Stemming
Pada tahap ini adalah proses mengubah kata berbahasa Indonesia menjadi kata dasar.
Setelah dilakukan proses stemming akan menjadi seperti yang dijabarkan pada Tabel 3.5 dibawah ini
Tabel 3.5 Hasil Stemming
Sebelum Sesudah
aja capek maaf aja capek maaf aja gapunya aja gapunya
3.3.5. Tokenizing
Pada tahap ini ada proses untuk memecah kalimat menjadi potongan – potongan kata pada kolom tweet. Dan Hasil pemisahan kalimat menjadi token terlampir pada Tabel 3.6 sebagai berikut :
Tabel 3.6 Hasil Tokenizing
Sebelum Sesudah
aja capek maaf [aja, capek, maaf]
aja gapunya [aja, gapunya]
3 .3.6.
Toke nizin g
Pada tahap ini adalah proses num2word atau merubah angka menjadi teks. Setelah proses selesai, akan diakhiri dengan menyimpan file CSV baru yang sudah selesai di preprocessing hingga siap untuk masuk dalam tahap model.
3.4. D e c i s i o n T r e e
P a d a
model Decision Tree menggunakan beberapa percobaan yang dijabarkan pada Tabel 3.7. dibawah ini :
Tabel 3.7. Percobaan pada Decision Tree
Dari beberapa kriteria, prepuning dan range yang di lakukan pada metode Decision Tree, mendapatkan hasil akurasi terbaik pada kriteria Gini, prepruning Max Depth range 30 sebesar 57%.
3.5. Adaboost
Pada model Adaboost menghasilkan akurasi sebesar 56% dan dijabarkan pada tabel 3.8 dibawah ini :
Kriteria Prepruning Range Entropy Max Depth 5,10,15,20
,25,30 Min
Leaves
2,5,8,11,1 4,17 Min Split 4,6,8,10,1
2,14 Gini Max Depth 5,10,15,20
,25,30 Min
Leaves
2,5,8,11,1 4,17 Min Split 4,6,8,10,1
2,14
Tabel 3.8. Tabel hasil metode Adaboost
Akurasi 0.56 F1 Score 0.43 Precision 0.55 Recall 0.44 3.6. Random Forest
Pada model Random Forest menghasilkan akurasi sebesar 60% dan dijabarkan pada Tabel 3.9 dibawah ini : Tabel 3.9. Tabel hasil Random Forest
Akurasi 0.60 F1 Score 0.54 Precision 0.58 Recall 0.52
3.7. Logistic Regression
Pada model Logistic Regression menghasilkan akurasi sebesar 61% dan dijabarkan pada Tabel 3.10 dibawah ini : Tabel 3.10.Tabel hasil Logistic Regression
Akurasi 0.61 F1 Score 0.56 Precision 0.58 Recall 0.55
3.8. Evaluasi Model
Pada evaluasi model akan menjabarkan perbandingan hasil akurasi dari beberapa model yang digunakan pada penelitian ini, diantara lain Decision Tree, Random Forest, Adaboost dan Logistic Regression. Model Logistic Regression adalah model terbaik dalam penelitian ini,
terbukkti dengan hasil akurasi tertinggi dibandingkan dengan model – model lainnya. Perbandingan hasil akurasi dijabarkan pada Tabel 3.11 dibawah ini :
Tabel 3.11.Tabel evaluasi model Model Akurasi (%)
Decision Tree 57
Random Forest 60
Adaboost 56
Logistic Regression 61
4. KESIMPULAN
Dari hasil penelitian yang didapatkan maka dapat disimpulkan bahwa model Logistic Regression adalah model terbaik diantara 3 model lainnya yang ada pada penelitian ini. Hal ini terbukti karena hasil akurasi yang didapatkan pada model Logistic Regression lebih tinggi dari lainnya. Logistic Regression mendapatkan nilai akurasi sebesar 61%, Adaboost mendapatkan nilai akurasi sebesar 56%, Random Forest mendapatkan nilai akurasi sebesar 60% dan Decision Tree mendapatkan nilai akurasi 57% pada kriteria Gini dan menggunakan Max Depth 30.
5. SARAN
Dari hasil yang didapatkan peneliti sangat menyadari bahwa hasil yang didapatkan masih bisa untuk dioptimalkan kembali. Oleh karena itu, peneliti menyarankan untuk penelitian lanjutan dapat mengembangkan dengan cara :
1. Menambahkan model – model pembanding seperti LSTM atau BiLSTM agar mendapatkan nilai akurasi yang lebih tinggi.
2. Menambahkan variasi, parameter serta tuning pada setiap model.
DAFTAR PUSTAKA
[1] R. Ferdiana, F. Jatmiko, D. D.
Purwanti, A. S. T. Ayu, and W. F.
Dicka, “Dataset Indonesia untuk Analisis Sentimen,” J. Nas. Tek.
Elektro dan Teknol. Inf., vol. 8, no. 4, p. 334, 2019, doi:
10.22146/jnteti.v8i4.533.
[2] M. Ahmad and I. Ali, “Sentiment Analysis of Tweets using SVM Sentiment Analysis of Tweets using SVM,” no. November, 2017, doi:
10.5120/ijca2017915758.
[3] D. Iskandar and Y. K. Suprapto,
“Perbandingan akurasi klasifikasi tingkat kemiskinan antara algoritma C4 . 5 dan Naïve Bayes Clasifier,” vol. 11, no. 1, pp. 14–17, 2013.
[4] P. Kamath, P. Patil, S. Shrilatha, and S.
Sowmya, “Crop Yield Forecasting using Data Mining,” Glob. Transitions Proc., pp. 0–7, 2021, doi:
10.1016/j.gltp.2021.08.008.
[5] P. Bidang, K. Sains, Y. Mardi, J.
Gajah, M. No, and S. Barat, “Jurnal Edik Informatika Data Mining : Klasifikasi Menggunakan Algoritma C4 . 5 Data mining merupakan bagian dari tahapan proses Knowledge
Discovery in Database ( KDD ) . Jurnal Edik Informatika.”
[6] F. Sodik and I. Kharisudin, “Analisis Sentimen dengan SVM , NAIVE BAYES dan KNN untuk Studi Tanggapan Masyarakat Indonesia Terhadap Pandemi Covid-19 pada Media Sosial Twitter,” vol. 4, pp. 628–
634, 2021.
[7] U. Salamah and D. Ramayanti,
“Implementation of Logistic
Regression Algorithm for Complaint Text Classification in Indonesian Ministry of Marine and Fisheries Abstract :,” Int. J. Comput. Tech., vol.
5, no. 5, pp. 74–78, 2018.
[8] D. Alita and A. R. Isnain, “Pendeteksian Sarkasme pada Proses Analisis
Sentimen Menggunakan Random Forest Classifier,” J. Komputasi, vol. 8, no. 2, pp. 50–58, 2020, doi:
10.23960/komputasi.v8i2.2615.
[9] A. Andreyestha and A. Subekti,
“Analisa Sentiment Pada Ulasan Film Dengan Optimasi Ensemble Learning,”
J. Inform., vol. 7, no. 1, pp. 15–23, 2020, doi: 10.31311/ji.v7i1.6171.
[10] R. Puspita and A. Widodo,
“Perbandingan Metode KNN, Decision Tree, dan Naïve Bayes Terhadap Analisis Sentimen Pengguna Layanan BPJS,” J. Inform. Univ. Pamulang, vol.
5, no. 4, p. 646, 2021, doi:
10.32493/informatika.v5i4.7622.
[11] H. Hermanto and A. Noviriandini,
“Analisa Sentimen Terhadap Belajar Online Pada Masa Covid-19
Menggunakan Algoritma Support Vector Machine Berbasis Particle Sarm Optimization,” J. Inform. Kaputama, vol. 5, no. 1, pp. 129–136, 2021.
[12] M. Cindo, “Studi Komparatif Metode Ekstraksi Fitur pada Analisis Sentimen,”
vol. 1, no. 10, pp. 9–12, 2021.
[13] M. R. A. Nasution and M. Hayaty,
“Perbandingan Akurasi dan Waktu Proses Algoritma K-NN dan SVM dalam Analisis Sentimen Twitter,” J.
Inform., vol. 6, no. 2, pp. 226–235, 2019, doi: 10.31311/ji.v6i2.5129.
[14] A. W. Pradana and M. Hayaty, “The Effect of Stemming and Removal of Stopwords on the Accuracy of Sentiment Analysis on Indonesian- language Texts,” Kinet. Game Technol.
Inf. Syst. Comput. Network, Comput.
Electron. Control, vol. 4, no. 3, pp. 375–
380, 2019, doi:
10.22219/kinetik.v4i4.912.
[15] S. Elbagir and J. Yang, “Sentiment
analysis of twitter data using machine learning techniques and scikit-learn,”
ACM Int. Conf. Proceeding Ser., 2018, doi: 10.1145/3302425.3302492.