Abstract
Facebook and Twitter are 2 social networking that have so many registered
members. Every single person usually has account in one of those social networking
website. Facebook and Twitter users can post a statement or something to say in
their profile. Unfortunately, not all status that published is appropriate to be seen in
the public. MyStatement is a PHP application that can collect data using Facebook
and Twitter API (Application Programming Interface) which can show information
about users status whose logged in this application. Every status that collected is
classified into positive, negative, or neutral status using Nave Bayes Classifier
algorithm for sentiment analysis. User can get recommendation for posting positive
status by using MyStatement application.
Keywords: Facebook, Nave Bayes Classifier, sentiment analysis, Twitter
1. PENDAHULUAN
Facebook adalah sebuah layanan jejaring sosial dan situs web yang diluncurkan
pada bulan Februari 2004 yang dimiliki dan dioperasikan oleh Facebook,
Inc. Pada Mei 2012, Facebook memiliki lebih dari 900 juta pengguna aktif dan
terus bertambah hingga saat ini. Situs ini menyediakan fitur yang membuat
pengguna dapat mengatur profil pribadi, menambahkan pengguna lain sebagai
teman, dan bertukar pesan. Selain itu, pengguna dapat bergabung dengan grup
pengguna dengan ketertarikan yang sama, berdasarkan tempat kerja, sekolah
atau perguruan tinggi, maupun ciri khas lainnya.
173
Sebuah layanan web yang lain adalah Twitter. Twitter ini dimiliki dan
dioperasikan oleh Twitter Inc., yang menawarkan jejaring sosial berupa
mikroblog sehingga memungkinkan penggunanya untuk mengirim dan
membaca pesan yang disebut kicauan(tweets). Kicauan adalah teks tulisan
hingga 140 karakter yang ditampilkan pada halaman profil pengguna. Twitter
memiliki istilah follower dan following. Follower adalah orang yang dapat
membaca kicauan pengguna, sedangkan following adalah orang yang dikuti atau
dengan kata lain orang yang dapat dibaca kicauannya.
Facebook dan Twitter memberikan kesempatan bagi penggunanya untuk
melakukan update status. Tidak jarang status tersebut berbicara mengenai halhal yang berbau negatif. Tentu saja energi negatif yang dihasilkan dari
statustersebut mampu mempengaruhi pembaca yang lain, baik dalam hal mood
maupun emosi. Status negatif inilah yang mendorong penulis untuk melakukan
penelitian ini. Penulis berharap dengan adanya aplikasi ini, pengguna mampu
menyadari status mana yang mengandung hal positif dan negatif. Selain itu,
penulis juga berharap pengguna dapat menjadi lebih terdorong atau termotivasi
untuk membagikan suatu status yang lebih positif atau membangun.
2. LANDASAN TEORI
2.1 Sentiment Analysis
174
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
buruk untuk waktu start-up pada kamera digital jika dinyatakan lama, namun
jika lama dinyatakan pada usia batere maka akan menjadi hal positif. Oleh
karena itu pada beberapa penelitian, terutama pada review produk, pekerjaan
didahului dengan menentukan elemen dari sebuah produk yang sedang
dibicarakan sebelum memulai proses opinionmining [3].
Hal pertama dalam pemrosesan dokumen adalah memecah kumpulan karakter
ke dalam kata atau token, sering disebut sebagai tokenisasi. Tokenisasi adalah
hal yang kompleks untuk program komputer karena beberapa karakter dapat
dapat ditemukan sebagai token delimiters. Delimiter adalah karakter spasi, tab
dan baris baru (newline), sedangkan karakter ( ) <> ! ? kadang dijadikan
delimiter namun, kadang juga bukan, tergantung pada lingkungannya [11].
Jadi sentimentanalysis atau opinionmining ini mengacu pada bidang yang luas
dari pengolahan bahasa alami, komputasi linguistik dan textmining.Secara
umum, bertujuan untuk menentukan attitude seorang penulis berkenaan dengan
topik tertentu. Attitude mungkin penilaian atau evaluasi, pernyataan afektif
(pernyataan emosional saat menulis) atau komunikasi emosional dimaksud
(efek emosional penulis inginkan terhadap pembaca).
175
Tergantung pada situasi yang tepat dari model probabilitas, NBC dapat dilatih
sangat efisien dalam supervised learning. Dalam aplikasi praktis, parameter
estimasi untuk model NBC menggunakan metode likelihood maksimum,
dengan kata lain, seseorang dapat bekerja dengan model NaveBayes tanpa
mempercayai probabilitas Bayesian atau menggunakan metode Bayesian
lainnya [10].
Dibalik desain naifnya dan asumsi yang tampaknya terlalu disederhanakan,
NBC telah bekerja cukup baik dalam banyak situasi dunia nyata yang
kompleks. Pada tahun 2004, analisis masalah klasifikasi Bayesian telah
menunjukkan bahwa ada beberapa alasan teoritis untuk keberhasilan yang
tampaknya tidak masuk akal dari NBC. Selain itu, perbandingan yang
komprehensif dengan metode klasifikasi lainnya pada tahun 2006 menunjukkan
bahwa klasifikasi Bayes mengungguli pendekatan terbaru, seperti boostedtree
atau randomforest.
Sebuah keuntungan dari NBC adalah hanya memerlukan sejumlah kecil data
pelatihan untuk mengestimasi parameter (rata-rata dan varian dari variabel)
yang diperlukan untuk klasifikasi. Karena variabel diasumsikan independen,
hanya varian dari variabel untuk setiap kelas yang perlu ditentukan dan bukan
keseluruhan covariancematrix.
NBC didasari oleh teorema Bayes |
=
|
. X adalah datasample
yang label kelasnya belum diketahui. H adalah hipotesis data sample X. Untuk
classification, P(H|X) adalah probabilitas hipotesis H dipenuhi terhadap sample
data X.
Misalnya terdapat suatu buah yang digambarkan dengan warna dan bentuknya.
X: merah dan bulat. H: X adalah apel. Maka, P(H|X) adalah keyakinan bahwa X
adalah apel karena X adalah merah dan bulat. P(H) adalah prior probability dari
H, probabilitas bahwa data sample adalah apel, tanpa peduli bagaimana wujud
sample. P(X|H) adalah posteriorprobability untuk X, probabilitas observasi
sampleX, bila hipotesis dipenuhi. P(X) adalah prior probability dari X, yaitu
probabilitas bahwa sampel data adalah merah dan bulat. Cara kerja Nave Bayes
Classifier adalah:
1. Tiap data sampel dengan n atribut disajikan dalam bentuk n-dimensional
feature vector, X = (x1,x2,.,xn)
176
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
177
g. Melakukan filtering kata yang berawalan bukan huruf, seperti 15th atau
5:34am.
2. Stopwordremoval adalah proses penghapusan kata-kata yang dirasa kurang
memiliki sentiment dan dapat dihapus. Contoh dari stopword bahasa Inggris
adalah is, a, all. Untuk bahasa Indonesia, seperti nama bulan, kata ganti,
dan kata hubung.
3. N-Grams adalah suatu proses yang dilakukan untuk menangani kata negasi
seperti (not, isnt). Selain itu, N-Grams juga digunakan untuk menangani
kemunculan phrase dalam suatu teks status. Pada sentimentanalysis, NGrams yang biasa digunakan adalah bigram(two-word combination).
Contohnya jika terdapat suatu teks Serviceisbad, maka akan ditokenisasi
dengan unigram dan bigram menjadi Service, is, bad, Serviceis, isbad.
4. Laplaciancorrection adalah suatu penghalusan dengan menambahkan satu
(+1) dari aturan NaveBayes. Jika dokumen berisi T istilah yang tidak
terjadi dalam salah satu dokumen dalam kategori C, maka Prob (T | C) akan
diperkirakan sebagai 0. Kemudian Prob produk (Ci) * Prob (T1 | Ci) * Prob
(T2 | Ci) * ... * Prob (Tm | Ci) akan sama dengan 0, tidak peduli berapa
banyak bukti lain ada mendukung Ci. Solusinya adalah dengan melakukan
laplaciancorrection sehingga tidak akan ada yang membuat kemunculannya
0.
178
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
179
Tampilan pada Gambar 3 merupakan tampilan ketika user berhasil login. Pada
tampilan ini terdapat 3 bagian, pertama adalah bagian informasi user yang
sedang login di dalam sistem. Bagian kedua adalah bagian informasi yang berisi
jumlah dan persentase status yang positif, negatif, dan netral. Bagian terakhir
adalah bagian yang berisi semua status positif dan negatif user tersebut.
180
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
181
182
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
183
60
50
Standar
40
Preprocessing
30
Stopword Removal
20
N-Grams
10
Semua Optimasi
0
Netral
Positif
Negatif
Akurasi:
Perhitungan akurasi dengan rumus :
!"#$% =
184
100%
46 + 42 + 40
100% = 85,33 %
50 + 50 + 50
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
47 + 47 + 36
100% = 86,67 %
50 + 50 + 50
45 + 49 + 37
!"#$% H; IDJK$L =
100% = 87,33 %
50 + 50 + 50
42 + 49 + 35
!"#$% 9 O$J% =
100% = 84 %
50 + 50 + 50
43 + 50 + 38
!"#$% DJ#$ PJ$% =
100% = 87,33 %
50 + 50 + 50
2. Percobaan ke-2
Percobaan kedua ini dilakukan dengan menggunakan 300 data uji yang
terdiri dari 100 data positif(50 bahasa Indonesia dan 50 bahasa Inggris),
100 data netral(50 bahasa Indonesia dan 50 bahasa Inggris), dan 100
data negatif(50 bahasa Indonesia dan 50 bahasa Inggris).
!"#$% DED%%F =
120
100
Standar
80
Preprocessing
60
Stopword Removal
40
N-Grams
Semua Optimasi
20
0
Netral
Positif
Negatif
185
Akurasi:
94 + 80 + 81
100% = 85 %
100 + 100 + 100
92 + 78 + 78
!"#$% DED%%F =
100% = 82,67 %
100 + 100 + 100
98 + 73 + 74
!"#$% H; IDJK$L =
100%
100 + 100 + 100
= 81,67 %
91 + 85 + 73
!"#$% 9 O$J% =
100% = 83 %
100 + 100 + 100
95 + 92 + 75
!"#$% DJ#$ PJ$% =
100%
100 + 100 + 100
= 87,33 %
!"#$% 9: %$;$ =
3. Percobaan ke-3
Percobaan ketiga ini dilakukan dengan menggunakan 450 data uji yang
terdiri dari 150 data positif(75 bahasa Indonesia dan 75 bahasa Inggris),
150 data netral(75 bahasa Indonesia dan 75 bahasa Inggris), dan 150
data negatif(75 bahasa Indonesia dan 75 bahasa Inggris).
160
140
120
Standar
100
Preprocessing
80
Stopword Removal
60
N-Grams
40
Semua Optimasi
20
0
Netral
Positif
Negatif
186
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier
(Yosef Ganisaputra, Robby Tan)
Hasil:
Standar
Preprocessing
Stopword Removal
N-Grams
Semua Optimasi
Akurasi:
141 + 119 + 127
100% = 86%
150 + 150 + 150
140 + 109 + 126
!"#$% DED%%F =
100% = 83,33%
150 + 150 + 150
141 + 108 + 121
!"#$% H; IDJK$L =
100%
150 + 150 + 150
= 82,22%
135 + 132 + 114
!"#$% 9 O$J% =
100% = 84,67 %
150 + 150 + 150
139 + 132 + 122
100%
!"#$% DJ#$ PJ$% =
150 + 150 + 150
= 87,33 %
!"#$% 9: %$;$ =
Berdasarkan hasil penelitian yang telah didapat, maka dapat ditarik beberapa
simpulan antara lain:
1. Dengan menggunakan 6000 data training yang terdiri dari 2000 kalimat
netral, 2000 kalimat positif, dan 2000 kalimat negatif, untuk
187
= 85,44%
= 84,22%
= 83,74%
= 83,89%
= 87,33%
DAFTAR PUSTAKA
[1]
[2]
[3]
[4]
[5]
Davis, E. (2012). Naive Bayes for Classifying Text. New York City, New York,
USA.
[6]
[7]
[8]
Pak, A., & Paroubek, P. (2011). Twitter as a Corpus for Sentiment Analysis and
Opinion Mining. Orsay, France.
[9]
[10] Sumartini Saraswati, N. W. (2011). Text Mining dengan Metode Naive Bayes
Classifier dan Support Vector Machines untuk Sentiment Analysis. Denpasar,
Bali, Indonesia.
[11] Triawati, C. (2009). Text Mining. Bandung, Jawa Barat, Indonesia.
[12] Wang, S., & Manning, C. (2012). Baselines and Bigrams: Simple, Good Sentiment
and Topic Classication. Stanford, California, USA.
[13] Zambonini, D. (2010). Self-Improving Bayesian Sentiment Analysis for Twitter.
United Kingdom.
[14] Zhang, H. (2004). The Optimality of Naive Bayes. Fredericton, New Brunswick,
Canada.
[15] Zulkarnaen. (2010). UML Class Diagram. Bogor, Jawa Barat, Indonesia.
188