ANALISIS SENTIMEN DENGAN KLASIFIKASI
NAÏVE BAYES
PADA PESAN TWITTER MENGGUNAKAN DATA SEIMBANG
EGA ADITYAWAN
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Analisis Sentimen dengan Klasifikasi Naïve Bayes pada Pesan Twitter Menggunakan Data Seimbang adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
ABSTRAK
EGA ADITYAWAN. Analisis Sentimen dengan Klasifikasi Naïve Bayes pada Pesan Twitter Menggunakan Data Seimbang. Dibimbing oleh AHMAD RIDHA.
Penelitian ini bertujuan untuk mengklasifikasi data tweet menjadi 3 sentimen yaitu positif, negatif, dan netral menggunakan data seimbang. Data yang digunakan terdiri atas 8 entitas berbeda dengan masing-masing entitas setiap sentimennya terdiri atas 80-90 data. Pengklasifikasian data tweet menggunakan metode naïve Bayes dengan Multinomial dan Bernoulli. Sebelum klasifikasi, dilakukan beberapa tahap praproses seperti normalisasi dan pembuangan stopwords. Pengujian dilakukan pada 60 data setiap entitas per sentimennya untuk mendapatkan model terbaik menggunakan 3-fold cross validation. Setelah itu, data yang tersisa pada setiap entitas per sentimennya dianggap menjadi data baru. Data baru tersebut akan dilakukan klasifikasi dengan menggunakan data latih dari model terbaik pada 3-fold cross validation. Hasil klasifikasi pada data baru menunjukkan, metode naïve Bayes memberikan nilai akurasi sebesar 71.09% untuk Multinomial dan 66.42% untuk Bernoulli. Adapun nilai akurasi tiap sentimennya untuk model Multinomial dan Bernoulli masing-masing yaitu 58.62% dan 64.53% untuk sentimen positif, 77.42% dan 65.53% untuk sentimen negatif, 64.40% dan 84.18% untuk sentimen netral.
Katakunci: Analisis Sentimen, Data Seimbang, Klasifikasi, Naïve Bayes, Twitter
ABSTRACT
EGA ADITYAWAN. Sentiment Analysis with Naïve Bayes Classification on Twitter Data Using Balanced Data. Supervised by AHMAD RIDHA.
The purpose of this research is to classify tweet data into 3 sentiments, i.e., positive, negative, and neutral using balanced data. The data consists of 8 different entities where each entity consists of 80-90 tweets for each sentiment. Data classification uses naïve Bayes with Multinomial and Bernoulli method. Before classification, preprocessing includes normalization and stopword removal. Evaluation is conducted on 60 data of each entity per sentiment to get the best model using 3-fold cross validation. After that, the remaining data from previous evaluation is considered to be new data. The new data will be classified using the training data of the best models in the 3-fold cross validation. Classification results on new data shows, that naïve Bayes method gives an accuracy rate of 71.09% and 66.42% for the Multinomial and Bernoulli. The accuracy rate of each sentiment for Multinomial and Bernoulli models respectively are 58.62% and 64.53% and for the positive sentiment, 77.42% and 65.53% for the negative sentiment, 64.40% and 84.18% for the neutral sentiment.
Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada
Departemen Ilmu Komputer
ANALISIS SENTIMEN DENGAN KLASIFIKASI
NAÏVE BAYES
PADA PESAN TWITTER MENGGUNAKAN DATA SEIMBANG
EGA ADITYAWAN
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
Penguji : 1 Aziz Kustiyo, SSi MKom
Judul Skripsi : Analisis Sentimen dengan Klasifikasi Naïve Bayes pada Pesan Twitter Menggunakan Data Seimbang
Nama : Ega Adityawan NIM : G64100099
Disetujui oleh
Ahmad Ridha, SKom MS Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
PRAKATA
Segala puji bagi Allah subhanahu wata’ala atas segala rahmat serta karunia-Nya yang telah diberikan sehingga penulis mampu menyelesaikan karya ilmiah ini dengan baik. Shalawat dan salam semoga senantiasa tercurah kepada Nabi Muhammad shallallahu ‘alaihi wasallam serta kepada keluarganya, sahabatnya, serta para pengikutnya yang selalu berpegang kepada Al-Quran dan As-Sunnah.
Terima kasih penulis ucapkan kepada Bapak Ahmad Ridha, SKom MS selaku pembimbing yang telah memberikan banyak ide, saran, bantuan, serta dukungan sampai selesainya karya ilmiah ini, serta yang telah berkenan menjadi penguji Bapak Aziz Kustiyo, SSi MKom dan Ibu Dr Imas S Sitanggang, SSi MKom yang telah banyak memberikan saran. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, adik, serta seluruh keluarga, atas doa dan kasih sayangnya. Terima kasih juga disampaikan kepada Ahmad Thoriq Abdul Aziz atas bantuan diberikannya semua sumberdaya pada penelitian sebelumnya serta rekan-rekan seperjuangan di Ilmu Komputer IPB angkatan 47 atas segala kebersamaan, bantuan, dukungan, serta kenangan bagi penulis selama menjalani masa studi.
Semoga karya ilmiah ini bermanfaat.
DAFTAR ISI
DAFTAR TABEL x
DAFTAR LAMPIRAN x
PENDAHULUAN 1
Latar Belakang 1
Tujuan Penelitian 1
Manfaat Penelitian 2
Ruang Lingkup Penelitian 2
METODE 2
Pengumpulan Data 3
Penentuan Sentimen Secara Manual 3
Normalisasi Teks 3
Evaluasi Normalisasi Teks 3
Pembuangan Stopword 4
K-fold Cross Validation 4
Klasifikasi Menggunakan Naïve Bayes 4
EvaluasiHasil Klasifikasi 6
Lingkungan Implementasi 6
HASIL DAN PEMBAHASAN 6
Pengumpulan Data 6
Penentuan Sentimen Secara Manual 6
Normalisasi Teks 7
Evaluasi Normalisasi Teks 7
Pembuangan Stopword 7
K-fold Cross Validation 8
Klasifikasi Menggunakan Naïve Bayes 9
KESIMPULAN DAN SARAN 11
Kesimpulan 11
Saran 12
DAFTAR PUSTAKA 12
DAFTAR TABEL
1 Hasil 3-Fold Cross Validation untuk entitas XL 8
2 Hasil 3-Fold Cross Validation 9
3 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes
model Multinomial 11
4 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes
model Bernoulli 11
DAFTAR LAMPIRAN
1 Contoh keyword pada pengumpulan data 13
2 Contoh tabel kamus kata dalam normalisasi teks 13
3 Daftar kata buang pada stoplist (Ridha et al. 2002) 14
4 Daftar kata tambahan normalisasi teks 15
1
PENDAHULUAN
Latar Belakang
Jejaring sosial adalah struktur sosial yang terdiri atas elemen-elemen individual atau organisasi. Jejaring sosial menunjukkan cara mereka berhubungan karena kesamaan sosial, mulai dari mereka yang dikenal sehari-hari sampai dengan keluarga (Barnes 1969). Terjadinya perubahan era teknologi membuat banyak dikenalnya sosial media yang merupakan sebuah media untuk bersosialisasi satu sama lain. Sosialisasi secara online yang memungkinkan manusia untuk saling berinteraksi tanpa dibatasi ruang dan waktu (Saumi 2012). Twitter merupakan salah satu social networking yang tersedia dan cukup populer. Twitter berada di urutan 8 untuk situs umum yang sering dikunjungi (Alexa (Semiocast 2012). Data ini menjadi dasar untuk dilakukannya penelitian pada Twitter.
Aziz (2013) telah melakukan analisis sentimen dengan proses klasifikasi pada entitas yang sedang dibicarakan pada Twitter. Hasil klasifikasinya pun menunjukkan akurasi 96%, namun akurasi setiap sentimennya sangat tidak berimbang. Sentimen netral memiliki akurasi yang jauh lebih besar yaitu 97% dibandingkan sentimen positif dan negatif yang masing-masing hanya 30% dan 0%. Hal ini disebabkan oleh jumlah data sentimen netral yang lebih banyak dibanding sentimen lainnya. Jumlah data sentimen netral terdiri atas 13161 data sedangkan sentimen positif dan negatif masing-masing terdiri atas 657 data dan 143 data.
Pada penelitian ini dilakukan pengambilan data ulang dengan data yang lebih seimbang pada setiap sentimennya. Sebelum proses klasifikasi, dilakukan tahap praproses yaitu normalisasi teks untuk mengubah kata yang tidak baku menjadi kata baku dan pembuangan stopwords untuk membuang kata yang kemunculannya tinggi tetapi tidak memiliki arti. Proses pengujiannya pun menggunakan 3-fold cross validation agar didapat model terbaik pada data tersebut.
Perumusan Masalah
Rumusan masalah dalam penelitian ini adalah adanya permasalahan imbalanced data yang belum diperhatikan pada penelitian sebelumnya yang dilakukan oleh Aziz (2013).
Tujuan Penelitian
2
Manfaat Penelitian
Penelitian ini diharapkan dapat membantu entitas yang ingin mengetahui perbincangan tentang entitas tersebut di Twitter. Selain itu, penelitian ini diharapkan dapat memberikan informasi mengenai perbincangan tersebut apakah mengandung sentimen positif, negatif, atau netral.
Ruang Lingkup Penelitian
Ruang lingkup penelitian ini menggunakan data statis dari Twitter yang telah dikumpulkan dan berbahasa Indonesia. Data tweet diklasifikasikan menggunakan teknik naïve Bayes dengan 3 kelas sentimen, yaitu positif, negatif, dan netral. Penelitian ini tidak menangani keberadaan entitas yang ambigu.
METODE
Metode yang digunakan dalam penelitian ini terdiri atas 8 tahap, seperti pada Gambar 1. Tahap pertama adalah pengumpulan data. Data yang digunakan berasal dari jejaring sosial Twitter. Setelah data didapatkan, langkah selanjutnya ialah melakukan penentuan sentimen secara manual terhadap data tersebut. Kemudian, data dianalisis untuk mendapatkan sentimennya. Namun, sebelum dilakukan analisis sentimen, data harus masuk ke dalam tahap praproses terlebih dahulu, yaitu normalisasi dan pembuangan stopwords. Normalisasi teks bertujuan mengubah tweet yang awalnya sulit dimengerti menjadi tweet yang mudah dimengerti. Untuk mengetahui tingkat efektivitas proses normalisasi teks ini, dilakukan evaluasi terhadap hasil normalisasi. Tahap praproses selanjutnya adalah pembuangan stopwords, pada proses ini kata-kata yang kemunculannya tinggi dan dianggap tidak memiliki makna akan dihilangkan. Setelah itu dilakukan k-fold cross validation dengan tujuan mendapatkan model data latih terbaik. Pada bagian klasifikasi sentimen digunakan klasifikasi naïve Bayes model Multinomial dan Bernoulli. Tahap terakhir adalah evaluasi hasil klasifikasi.
3 Pengumpulan Data
Tahap pertama adalah pengumpulan data. Data berupa kumpulan tweet yang belum terklasifikasi namun sudah diekstraksi berdasarkan keyword yang ditentukan. Penentuan keyword (contoh pada Lampiran 1), ditentukan sesuai entitas yang ingin di ambil datanya. Data diperoleh selama periode 1 Februari 2014 sampai dengan 20 April 2014. Pengambilan data ini memanfaatkan Twitter API dan dilakukan secara real time menggunakan aplikasi yang telah dibuat oleh Hawksey (2013). Untuk menghindari adanya tweet spam digunakan juga batas minimal follower suatu akun yaitu 200. Tiap tweet dilengkapi dengan atribut seperti identitas, sentimen, topik, isi pesan, keyword, nama pengguna Twitter, nama entitas, tanggal, dan identitas editor.
Penentuan Sentimen Secara Manual
Penentuan sentimen secara manual adalah pengelompokan data pada sentimen yang telah ditentukan sebelumnya secara manual agar dapat digunakan untuk kebutuhan klasifikasi. Data tweet dikelompokkan menurut pendapat dari peneliti sehingga pengelompokannya bersifat subjektif.
Normalisasi Teks
Tweet hasil pengumpulan data selanjutnya dinormalisasi. Hal ini bertujuan mempermudah proses analisis sentimen terhadap entitas-entitas tadi mengingat banyaknya kata yang tidak baku didalam tweet seperti singkatan, tanggal, jumlah mata uang, dan akronim. Kata yang tidak baku memiliki kecenderungan yang lebih tinggi dalam hal ambiguitas interpretasinya atau pelafalannya dibanding kata yang sudah baku. Misalnya, kata kamu bisa ditulis dengan kata lo, km ,kmu, anda, dan masih banyak lagi. Jika tidak dilakukan normalisasi, kata-kata tersebut akan berdiri sendiri. Padahal, seharusnya kata-kata tersebut terkelompokkan ke dalam konteks yang sama, yaitu saya. Kasus semacam ini dapat diselesaikan dengan normalisasi teks dengan cara mengganti kata yang tidak baku dengan kata yang sesuai konteksnya (Sproat et al. 2001). Proses normalisasi teks dilakukan menggunakan penggantian pada kata yang tidak baku menjadi kata baku dengan sistem yang telah dibuat oleh Aziz (2013). Sebelum dilakukan penggantian dengan kata baku, harus dibuat terlebih dahulu sebuah kamus yang berisi kata yang tidak baku berikut kata bakunya (contoh pada Lampiran 2).
Evaluasi Normalisasi Teks
4
Pembuangan Stopword
Tahap ini dilakukan dengan menghilangkan kata yang termasuk dalam daftar kata buang pada data tweet setelah selesai dilakukan proses normalisasi teks. Kata buang adalah kata yang tingkat kemunculannya tinggi namun tidak memiliki arti untuk proses klasifkasi. Daftar kata buang didapat dari penelitian Ridha et al. (2004). Daftar kata buang dapat dilihat pada Lampiran 3.
K-fold Cross Validation
Pada proses selanjutnya dilakukan proses k-fold cross validation yaitu dengan membagi dataset sebanyak k subset data yang jumlahnya sama besar dan melakukan uji coba dengan satu subset data menjadi data uji dan subset data lainnya menjadi data latih (Meira dan Zaki 2014). Proses fold dilakukan hingga setiap subset data tepat satu kali menjadi data uji. Pada penelitian ini, data dibagi menjadi 3 subset data dengan jumlah data masing-masing 60 data setiap entitas per sentimennya. Pengujian pada proses ini menggunakan metode naïve Bayes dengan model Multinomial dan Bernoulli. Nantinya pasangan subset terbaik dari hasil proses ini akan digunakan sebagai data latih untuk proses klasifikasi pada data yang tersisa pada setiap entitas per sentimennya.
Klasifikasi Menggunakan Naïve Bayes
Proses klasifikasi dilakukan terhadap data tweet hasil praproses untuk mengklasifikasikan entitas berdasarkan respon terhadap entitas tersebut atau analisis sentimen. Sentimen pada penelitian ini terdiri atas 3 kelas, yaitu positif, negatif, dan netral. Tweet yang termasuk di dalam sentimen positif contohnya: @BeresNews: Masyarakat Ingin Presiden Tegas Seperti Prabowo. Sentimen netral contohnya: @erikadrenata: Pagi pak prabowo. Sentimen negatif contohnya: Hubungan Baik Indonesia-AS Terancam Memburuk Jika Prabowo Jadi Presiden. Klasifikasi ini menggunakan sistem yang telah dibuat oleh Aziz (2013). Sebelum dilakukan klasifikasi, data dibagi 2 menjadi data latih dan data uji. Data latih digunakan untuk memberi pengetahuan kepada sistem tentang ciri-ciri suatu sentimen. Untuk mengambil ciri-ciri suatu sentimen, dilakukan proses ekstraksi fitur yang di dalamnya terdapat pembobotan kata berdasarkan kemunculan kata. Data uji diperoleh dari data yang tersisa pada proses sebelumnya.
Fungsi klasifikasi yang digunakan adalah fungsi klasifikasi dengan basis peluang yaitu naïve Bayes dengan model Multinomial dan model Bernoulli. Penggunaan klasifikasi naïve Bayes dikarenakan prosesnya yang sederhana dan mudah diaplikasikan pada berbagai keadaan serta tidak akan mengalami kegagalan secara keseluruhan pada hasilnya (Manning et al. 2008). Pada model Multinomial, setiap data uji dihitung frekuensi kata t pada tiap data latih sentimen c (Tct) dan jumlah kata unik pada data uji (N).
5 didapatkan, akan dihitung nilai peluang untuk kata t masuk pada sentimen c (P(t|c)). Perhitungan peluang ini dapat bernilai nol apabila frekuensi kata pada data uji di sentimen c (Tct) bernilai nol. Untuk mengatasi masalah ini, dimasukkan
koreksi seperti Laplace smoothing di semua probabilitas perkiraan sehingga peluang tidak bernilai nol (Manning et al. 2008). Perhitungan peluang model Multinomial dapat dilihat pada persamaan berikut:
P t c = Tct+1 ( t'∈VTct')+B
Setelah didapatkan nilai peluang tiap kata, selanjutnya adalah mengalikan nilai peluang tiap kata dengan memberikan pangkat (n) sesuai nilai frekuensi kemunculan kata tersebut pada data uji. Hasilnya dikalikan kembali dengan nilai peluang tiap sentimen (P(c)) (Manning et al. 2008). Nilai peluang tiap sentimen (P(c)) dihitung dengan cara membagi jumlah data latih tiap sentimen dengan jumlah data latih keseluruhan sentimen. Perhitungan akhir peluang kalimat pada sebuah sentimen dapat dilihat pada Persamaan 2. Laplace smoothing digunakan agar tidak ada kata uji yang berpeluang nol. Hasil yang diambil adalah hasil perkalian yang terbesar pada setiap sentimennya.
P c d = P t c n*P c
N
i=1
Sementara itu, pada model Bernoulli, setiap data uji dihitung nilai peluang tiap kata terhadap masing-masing sentimen. Perbedaannya dengan model yang pertama yaitu perhitungan peluang menggunakan jumlah data yang mengandung kata t (Tct), bukan frekuensi kemunculan kata t (Manning et al. 2008). Selain itu, jika model Multinomial menggunakan jumlah kata dan jumlah vocabulary, model Bernoulli menggunakan jumlah data latih tiap sentimen (Tc) dan jumlah sentimen (∑c). Peluang tiap kata dihitung menggunakan persamaan:
P t c = Tct+1 Tc+∑c
Setelah peluang tiap kata didapatkan, nilai dari hasil perkalian invers untuk tiap peluang kata pada data latih selain kata pada data uji dihitung. Misalnya ada sekumpulan kata pada data latih D dan sekumpulan kata pada data uji T. Selanjutnya dicari kata-kata pada data latih D yang independen dengan kata-kata pada data uji T. Dari kata-kata tersebut, diambil nilai peluang kata (dalam hal ini diberi simbol P(t’|c)) dan jumlah kata (M) (Manning et al. 2008). Nilai peluang kalimat terhadap suatu sentimen dihitung dengan persamaan:
6
Evaluasi Hasil Klasifikasi
Tahap terakhir adalah evaluasi untuk mengetahui tingkat akurasi dari hasil klasifikasi data pada data uji. Perhitungan tingkat akurasi dilakukan dengan membandingkan antara hasil klasifikasi menggunakan metode naïve Bayes dan klasifikasi secara manual. Evaluasi ini menggunakan sistem yang telah dibuat oleh Aziz (2013).
Lingkungan Implementasi
Lingkungan implementasi yang digunakan sebagai berikut: Perangkat lunak:
Microsoft Windows 7 Professional 64bit,
Notepad++ 6.4.5, PHP, dan
XAMPP 3.1.0 beserta MySQL 3.5.2.2 Perangkat keras:
prosesor Intel® Core™ i5-2350M CPU @ 2.30GHz, memori 8 GB, dan
hardisk 500 GB
HASIL DAN PEMBAHASAN
Pengumpulan Data
Pada tahap pengumpulan data diperoleh 1997 data tweet yang terdiri dari 8 entitas dengan 8 atribut setiap datanya dan menggunakan 41 keyword yang berbeda untuk pencarian. Setiap entitas per sentimennya terdiri atas sekitar 80-90 data. Dari atribut yang didapat hanya beberapa atribut saja yang digunakan, yaitu id sebagai pengenal tweet, isi tweet sebagai input system, dan keyword sebagai penciri dari entitas. Data dikumpulkan dengan melakukan penyaringan pada isi tweet-nya menggunakan keyword tertentu. Sebagai contoh untuk melakukan penyaringan data pada entitas 'Prabowo', peneliti menggunakan keyword 'Prabowo'. Nantinya tweet yang mengandung kata 'Prabowo' akan tersaring secara otomatis dan masuk kedalam database.
Penentuan Sentimen Secara Manual
7 Normalisasi Teks
Banyak tweet yang mengandung kata tidak baku. Kata yang tidak baku dapat berupa pengulangan karakter sehingga sulit dikenali maupun singkatan-singkatan kata, contohnya @indosatcare knapa sinyal hp ku sdh 3 hr ini tidak ada?. Kasus pengulangan karakter perlu dilakukan penghilangan karakter yang berulang. Penghilangan karakter hanya dilakukan pada perulangan karakter teks, bukan karakter angka, karena jika dilakukan pada angka justru membuat tweet semakin sulit dipahami atau memiliki arti yang berbeda. Contohnya pada kasus perulangan angka nomor telepon 0011 yang angka 1 dan 0 pada nomer telepon tersebut tidak akan dilakukan penghilangan. Pada kasus singkatan-singkatan kata yang tidak baku, dibuat sebuah kamus yang berisi kata yang tidak baku beserta kata bakunya. Proses normalisasi melalui 2 tahap, pertama adalah menghilangkan semua tanda baca seperti titik, tanda koma, dan tanda tanya. Setelah itu dilakukan proses penggantian kata tidak baku yang ada di tweet dengan kata baku berdasarkan kamus yang sebelumnya sudah di siapkan. Kata yang dianggap tidak baku akan digantikan oleh kata yang baku secara otomatis oleh sistem. Kamus yang digunakan diambil dari penelitian Aziz (2013) dengan melakukan penambahan beberapa kata (Lihat Lampiran 4) disebabkan oleh karena adanya perbedaan entitas yang digunakan pada penelitian ini. Dalam normalisasi teks juga terdapat beberapa kasus kata yang tidak tertangani karena kata yang tidak baku memiliki makna lebih dari satu, contohnya: bet, bkn, bwt, gws, dah, dan masih banyak lagi. Kata bet bisa berarti banget, namun bisa juga berarti nama panggilan seseorang.
Evaluasi Normalisasi Teks
Untuk mengetahui hasil normalisasi teks, dilakukan evaluasi secara manual. Sebanyak 1000 tweet diambil sebagai sampel secara acak dan dilakukan proses evaluasi dengan membandingkan tweet sebelumnya. Evaluasi dianggap berhasil jika tweet hasil normalisasi lebih mudah dimengerti secara subjektif. Setiap tweet yang berhasil akan diberikan keterangan 1 dan 0 untuk yang lainnya. Dari total 1000 tweet ada 826 yang memiliki nilai 1 dengan tingkat akurasi 82.6 %.
Pembuangan Stopword
8
K-fold Cross Validation
Setelah itu dilakukan pengujian k-fold croos validation untuk 60 data setiap entitas per sentimennya. Setiap kelompok data akan tepat satu kali menjadi data uji. Terakhir data kelompok A dan C menjadi data latih sedangkan data kelompok B menjadi data uji. Ketiga tahap proses tersebut dilakukan terpisah masing-masing untuk setiap entitas per sentimennya agar didapat model terbaik untuk setiap entitas per sentimennya. Setelah semua selesai, didapatkan pasangan subset data yang terbaik dari proses ini. Contoh proses ini sebagai berikut, pada entitas XL dikelompokkan data A, B, dan C. Setelah itu, dilakukan pengujian pada data tersebut. Hasil klasifikasi untuk kedua modelnya pada setiap kelompok data untuk entitas XL dapat dilihat pada Tabel 1.
Multinomial Bernoulli
Perlakuan Akurasi Perlakuan Akurasi
Latih (A dan B) akurasi lebih besar dibandingkan pasangan kelompok data lainnya sebagai data latih. Begitu juga untuk model Bernoulli, pasangan kelompok data A dan C juga memiliki nilai akurasi yang lebih besar dibandingkan pasangan kelompok data lainnya sehingga kelompok A dan C akan dijadikan sebagai data latih untuk entitas XL pada proses klasifikasi model Multinomial dan Bernoulli untuk data baru. Tidak tertutup kemungkinan bahwa suatu entitas memiliki kelompok data latih yang berbeda untuk digunakan pada kedua modelnya. Untuk hasil K-Fold seluruh entitas beserta nilai akurasi terbaiknya dan pasangan kelompok datanya adalah seperti pada Tabel 2 dan confusion matrix pasangan terbaiknya dapat dilihat pada Lampiran 5.
9 bernilai positif banyak yang hasil klasifikasinya menjadi negatif begitu juga sebaliknya. Hal ini disebabkan oleh belum diperhatikannya penggantian frase pada kata sehingga saat kata tersebut terkena proses stoplist teks akan berubah maknanya pada kata yang sebaliknya. Contohnya pada tweet @kurnia Pak Wiranto orang yang tidak layak menjadi presiden. Setelah mengalami pemotongan stopword tweet menjadi @kurnia Pak Wiranto orang layak menjadi presiden sehingga tweet yang diduga sentimen negatif, hasil klasifikasinya sentimen positif.
Klasifikasi Menggunakan Naïve Bayes
Data latih berjumlah 960 yang terdiri atas 320 sentimen positif, 320 sentimen negatif, dan 320 sentimen netral. Data uji berjumlah 557 yang terdiri dari 203 sentimen positif, 177 sentimen negatif, dan 177 sentimen netral. Data uji maupun data latih telah diwakili oleh setiap entitas per sentimennya yang digunakan pada penelitian ini. Data tweet yang tersisa dari proses k-fold cross validation terdiri atas sekitar 20-30 data dianggap sebagai data baru dan akan menjalani proses klasifikasi sebagai data uji. Proses klasifikasi mengunakan naïve Bayes model Multinomial dan model Bernouli, dengan data latih untuk setiap entitasnya didapatkan dari proses k-fold croos validation yang telah dilakukan.
Model pertama yaitu model Multinomial. Model Multinomial menghitung nilai peluang setiap data uji terhadap tiap sentimen dengan mengambil nilai peluang terbesar. Misalnya, sebuah data memliki peluang terhadap sentimen positif sebesar 0.7, sentimen negatif sebesar 0.2, dan sentimen netral sebesar 0.5. Hal ini menunjukkan bahwa data masuk ke dalam sentimen positif. Data uji dalam penelitian ini berupa kalimat sehingga harus dipotong menjadi kata dan dihitung jumlah kata yang unik atau tidak sama (N). Dari tiap kata tersebut, dihitung nilai frekuensi kemunculannya pada keseluruhan data latih di tiap sentimen (Tct) dan frekuensi kemunculannya pada kalimat (n). Untuk mempermudah proses perhitungan frekuensi kemunculan kata pada keseluruhan data latih, dilakukan proses training terhadap data latih. Training ini berupa pembuatan suatu tabel yang berisi kata beserta frekuensi kemunculannya di dalam data latih (contoh pada Lampiran 6). Selanjutnya, jumlah kata pada data latih masing-masing sentimen
10
dihitung (Tct'). Total kata pada data latih sentimen positif sebanyak 7065, sentimen negatif sebanyak 3625, dan sentimen netral sebanyak 10060. Pada keseluruhan data latih, dihitung juga jumlah kata yang unik atau vocabulary (B) yang dalam penelitian ini berjumlah 3066. Setelah nilai Tct, Tct', dan B didapatkan, maka nilai peluang suatu kata terhadap suatu sentimen (P(t|c)) dapat dihitung menggunakan Persamaan 1.
Setelah nilai peluang tiap kata didapatkan, selanjutnya dicari jumlah data latih keseluruhan suatu sentimen dan jumlah data latih masing-masing sentimen. Nilai peluang kalimat (d) terhadap suatu sentimen (c) dihitung menggunakan Persamaan 2. Penempatan suatu data ke dalam suatu sentimen dilakukan berdasarkan nilai peluang P(c|d). Nilai P(c|d) terbesar menunjukkan bahwa peluang data untuk masuk ke dalam sentimen tersebut paling besar atau paling memungkinkan. Rata-rata waktu eksekusi yang dibutuhkan dalam proses klasifikasi menggunakan naïve Bayes model Multinomial adalah sebesar 4.30 detik per tweet.
Model kedua yaitu model Bernoulli. Model Bernoulli memiliki konsep dasar yang sama dengan model Multinomial. Perbedaannya terletak pada proses perhitungan peluang pada model ini menggunakan jumlah dokumen yang mengandung suatu kata. Langkah pertama, setiap data uji dipotong menjadi kata-kata. Tiap kata dihitung banyaknya dokumen yang mengandung kata tersebut untuk setiap sentimen (Tct). Kemudian, total dokumen data latih tiap sentimen (Tc) dan jumlah sentimen (∑c) dihitung juga. Selanjutnya, nilai peluang tiap kata dihitung dengan Persamaan 3.
Untuk mempermudah perhitungan nilai peluang tiap kata, dilakukan proses training seperti pada model Multinomial. Perbedaannya dengan model Multinomial, pada training kali ini dilakukan pembuatan tabel yang berisi kata, nilai peluang, dan sentimen (contoh pada Lampiran 7). Perhitungan nilai peluang kata didapatkan dari tabel jika ada atau menggunakan Persamaan 3 jika tidak dengan nilai Tct = 0. Setelah nilai peluang tiap kata didapatkan, dihitung nilai dari hasil perkalian invers untuk tiap peluang kata pada data latih selain kata pada data uji. Misalnya, ada sekumpulan kata pada data latih D dan sekumpulan kata pada data uji T. Selanjutnya dicari kata-kata pada data latih D yang independen dengan kata-kata pada data uji T. Dari kata-kata tersebut diambil nilai peluang kata (dalam hal ini diberi simbol P(t’|c)) dan jumlah kata (M).
Nilai peluang kalimat terhadap suatu sentimen dihitung menggunakan Persamaan 4. Rata-rata waktu eksekusi yang dibutuhkan dalam proses klasifikasi menggunakan naïve Bayes model Bernoulli adalah sebesar 3.03 detik per tweet.
Evaluasi Hasil Klasifikasi
11
Dugaan Hasil
Dugaan Hasil
sehingga tingkat akurasi sebesar 71.09%. Hasil evaluasi model ini dapat dilihat pada Tabel 4 dengan tingkat akurasi sentimen positif sebesar 64.53%, sentimen negatif sebesar 65.53%, dan sentimen netral sebesar 84.18%.
Tabel 3 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes model Multinomial
Positif Negatif Netral
Positif 119 18 13
Negatif 29 137 50
Netral 55 22 114
Tabel 4 Confusion matrix untuk hasil klasifikasi menggunakan naïve Bayes model Bernoulli
Positif Negatif Netral
Positif 131 13 11
Negatif 20 116 17
Netral 52 48 149
Kebanyakan data yang diduga pada sentimen positif dan negatif justru menghasilkan sentimen netral pada hasil klasifikasinya. Contohnya pada tweet @AndiJ pilih mantan menteri ekonomi pak hatta rajasa presiden. Tweet ini termasuk dalam sentimen positif tetapi hasil klasifikasinya sentimen netral. Kesalahan tersebut dikarenakan kata menteri banyak terdapat pada sentimen netral seperti pada contoh tweet @Gerindra Pak prabowo bertemu menteri pertanian pagi atau @siddikak Hari ini Pak Jokowi mendatangi menteri pekerjaan umum. Hal ini terjadi karena suatu kata pada entitas bisa berbeda makna dientitas lainnya.
KESIMPULAN DAN SARAN
Kesimpulan
12
Selisih akurasi setiap sentimennya tidak terlalu besar dan juga tidak ada satu sentimen yang lebih dominan secara mutlak dibanding sentimen lainnya.
Saran
Saran untuk penelitian selanjutnya adalah menggunakan metode klasifikasi lainnya dan memperhatikan proses pemecahan frase kata pada data tweet.
DAFTAR PUSTAKA
[Alexa]. 2013. Top 500 sites on the web [internet]. [diunduh 2014 januari 1]. Tersedia dari: http://www.alexa.com/topsites.
Aziz ATA. 2013. Sistem pengklasifikasian entitas pada pesan Twitter menggunakan ekspresi regular dan Naïve Bayes [skripsi]. Bogor (ID): Institut Pertanian Bogor.
Barnes JA. 1969. Graph theory and social networks: a technical comment on connectedness and connectivity. Sociology. 3(2): 215-232.
Hawksey M. 2013. Twitter Archiving Google Spreadsheet TAGS v5 [internet].
[diunduh 2014 Januari 21]. Tersedia dari:
http://mashe.hawksey.info/2013/02/twitter-archive-tagsv5/.
Manning CD, Raghavan P, Schütze H. 2008. An Introduction to Information Retrieval. Cambridge (UK): Cambridge University Press.
Meira JR, Zaki MJ. 2014. Data Mining and Analysis Fundamental Concepts and Algorithms. Cambridge (UK): Cambridge University Press.
Ridha A, Adisantoso J, Bukhari F. 2004. Pengindeksan otomatis dengan istilah tunggal untuk dokumen berbahasa Indonesia. Prosiding Seminar Nasional Ilmu Komputer dan Teknologi Informasi V, SNIKTI 2014; [Waktu dan tempat pertemuan tidak diketahui]. hlm 328-335.
Saumi RR. 2012. Apa itu sosial media [internet]. [diunduh 2014 April 24]. Normalization of non-standard words. Computer Speech and Language. 15:287-333.doi:10.1006/csla.2001.0169.
13 Lampiran 1 Contoh keyword pada pengumpulan data
No Keyword Entitas
11 hatta rajasa hatta rajasa
12 arb arb
13 aburizal bakrie arb
14 hr hatta rajasa
Lampiran 2 Contoh tabel kamus kata dalam normalisasi teks No Kata tidak baku Kata baku
15 kemenkes Kementerian Kesehatan
16 ngebo tidur
17 smua semua
18 mrah2-marah marah
19 day hari
14
Lampiran 3 Daftar kata buang pada stoplist (Ridha et al. 2002)
ada biasanya kalau menunjukkan sedang seusai
adalah bila kalian menurut sedangkan sewaktu
adanya bilamana kami mereka sedikit si
adapun buat kamu merupakan segera siapa
aduh bukan karena meski sehabis siapakah
agar dalam kata meskipun sehingga siapapun
ah dan katanya misalnya sehubungan suatu
akan dapat kau mungkin sejak sudah
aku dari ke namun sejumlah supaya
alih-alih daripada kebanyakan nanti sekarang tak
anda dekat kecuali nyaris sekeliling tanpa
andai demi kemanakah oleh seketika tapi
antar demikian kemudian pada sekitar tatkala
antara dengan kenapa padahal sekonyong-konyong telah
apa depan kenapakah para selagi tengah
apakah di kepada pasti selain tentang
apalagi dia ketika pelbagai selalu tentu
asalkan dikatakan ketimbang per selama tentunya
atas dilakukan kini peri selanjutnya tergolong
atau dkk kita perihal selesai terhadap
ataupun dll lagi pinggir seluruh terjadi
bagai dsb lain pula seluruhnya terkadang
bagaikan engkau lain-lain pun semakin terlalu
bagaimana hal lainnya saat semenjak terlebih
bagaimanakah hamper lalu saja sementara termasuk
bagaimanapun hanya lebih sambil semua ternyata
bagi harus lepas sampai semuanya tersebut
bahkan hingga lewat samping seorang tertentu
bahwa ia maka sang sepanjang tetap
balik ialah makin sangat seperti tetapi
banyak ini manakala sangatlah sepertinya tiap
barangkali itu masih saya seputar tiba-tiba
bawah iya masing-masing seakan seraya tidak
beberapa jadi masing-masingnya seakan-akan sering ujar
begini jangan maupun seantero seringkali ujarnya
begitu jarang melainkan sebab serta umumnya
belakang jauh melakukan sebabnya sesuai untuk
belum jika melalui sebagai sesuatu walau
berapa jikalau memang sebagaimana sesudah walaupun
berbagai juga mengatakan sebagainya sesudahnya ya
bersama jumlah mengenai sebelum sesungguhnya yaitu
beserta justru menjadi sebelumnya setelah yakni
betapa kadang menjelang sebuah seterusnya yang
15 Lampiran 4 Daftar kata tambahan normalisasi teks
No Kata tidak baku Kata baku
1 ARB Aburizal Bakrie
2 Aburiezal Aburizal Bakrie
16
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Lampiran 5 Confusion matrix 3-fold cross validation terbaik Entitas XL
Model Multinomial
Positif Negatif Netral
Positif 10 3 6
Negatif 6 11 2
Netral 4 6 12
Model Bernoulli
Positif Negatif Netral
Positif 15 4 5
Negatif 3 13 7
Netral 2 3 8
Entitas TSEL
Model Multinomial
Positif Negatif Netral
Positif 16 0 4
Negatif 1 18 13
Netral 3 2 3
Model Bernoulli
Positif Negatif Netral
Positif 18 0 1
Negatif 0 18 7
17
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Lanjutan Entitas Indosat
Model Multinomial
Positif Negatif Netral
Positif 10 0 3
Negatif 4 17 2
Netral 6 3 15
Model Bernoulli
Positif Negatif Netral
Positif 9 1 1
Negatif 0 14 1
Netral 11 5 18
Entitas ARB
Model Multinomial
Positif Negatif Netral
Positif 13 2 1
Negatif 4 17 3
Netral 3 1 16
Model Bernoulli
Positif Negatif Netral
Positif 12 6 1
Negatif 6 13 3
18
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Lanjutan Entitas HR
Model Multinomial
Positif Negatif Netral
Positif 16 0 0
Negatif 3 18 3
Netral 1 2 17
Model Bernoulli
Positif Negatif Netral
Positif 19 0 0
Negatif 0 20 0
Netral 1 0 20
Entitas Jokowi
Model Multinomial
Positif Negatif Netral
Positif 10 3 2
Negatif 6 15 4
Netral 4 2 14
Model Bernoulli
Positif Negatif Netral
Positif 15 1 1
Negatif 0 8 5
19
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Dugaan Hasil
Lanjutan
Entitas Prabowo
Model Multinomial
Positif Negatif Netral
Positif 14 1 0
Negatif 6 18 1
Netral 0 1 19
Model Bernoulli
Positif Negatif Netral
Positif 15 2 3
Negatif 3 17 0
Netral 2 1 17
Entitas Wiranto
Model Multinomial
Positif Negatif Netral
Positif 18 3 3
Negatif 2 16 0
Netral 0 1 17
Model Bernoulli
Positif Negatif Netral
Positif 15 7 3
Negatif 1 10 3
20
Lampiran 6 Contoh tabel kata dan frekuensi pada tiap sentimen
No Kata Frekuensi Sentimen
1 edge 1 positif
1 negatif 2 netral
2 survei 1 positif
1 negatif 1 netral
3 masalah 10 positif
8 negatif 12 netral
4 sinyal 17 positif
16 negatif 24 netral
5 jam 6 positif
4 negatif 6 netral
6 jalan 33 positif
26 negatif 35 netral
7 politik 8 positif
3 negatif 8 netral
8 hadiah 2 positif
1 negatif 2 netral
9 menang 5 positif
2 negatif 6 netral
10 kudeta 1 positif
21 Lampiran 7 Contoh tabel kata dan peluang pada tiap sentimen
No Kata Nilai Peluang Sentimen
1 edge 0.0030 positif
0.0061 negatif 0.0061 netral
2 survei 0.0030 positif
0.0061 negatif 0.0030 netral
3 masalah 0.0092 positif
0.0278 negatif 0.0092 netral
4 sinyal 0.0061 positif
0.0526 negatif 0.0247 netral
5 jam 0.0092 positif
0.0154 negatif 0.0030 netral
6 jalan 0.0185 positif
0.0743 negatif 0.0009 netral
7 politik 0.0185 positif
0.0123 negatif 0.0030 netral
8 hadiah 0.0061 positif
0.0061 negatif 0.0003 netral
9 menang 0.0123 positif
0.0092 negatif 0.0061 netral
10 kudeta 0.0030 positif
22
RIWAYAT HIDUP
Penulis dilahirkan di Trenggalek, Jawa Timur pada tanggal 30 Juni 1992 dan merupakan anak pertama dari pasangan Agus Suharyanto dan Narwati. Pada tahun 2010, penulis menamatkan pendidikan di SMAI Nurul Fikri Boarding School, Banten. Penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) pada tahun yang sama melalui jalur Undangan Seleksi Masuk IPB dan diterima sebagai mahasiswa di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.