Pembuatan Aplikasi Datamining Facebook dan Twitter dengan
Naïve Bayes Classifier
Yosef Ganisaputra, Robby Tan Program Studi S1Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Maranatha, Bandung email:
[email protected],
[email protected]
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 user’s status whose logged in this application. Every status that collected is classified into positive, negative, or neutral status using Naïve Bayes Classifier algorithm for sentiment analysis. User can get recommendation for posting positive status by using MyStatement application. Keywords: Facebook, Naïve 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
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
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
Tugas dasar dalam analisis sentimen adalah mengelompokkan polaritas dari teks yang ada dalam dokumen, kalimat, atau fitur/tingkat aspek dan menentukan apakah pendapat yang dikemukakan dalam dokumen, kalimat atau fitur entitas/aspek bersifat positif, negatif atau netral.Lebih lanjut sentimentanalysis dapat menyatakan emosional sedih, gembira, atau marah[7]. Ekspresi atau sentiment mengacu pada fokus topik tertentu, pernyataan pada satu topik mungkin akan berbeda makna dengan pernyataan yang sama pada subject yang berbeda. Sebagai contoh, adalah hal yang baik untuk mengatakan alur film tidak terprediksi, tapi adalah hal yang tidak baik jika ‘tidak terprediksi’ dinyatakan pada kemudi dari kendaraan. Bahkan pada produk tertentu, kata-kata yang sama dapat menggambarkan makna kebalikan, contoh adalah hal yang
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).
2.2 Naïve Bayes Classifier (NBC)
NaïveBayesclassifier adalah classifier probabilistik sederhana berdasarkan penerapan teorema Bayes (dari statistik Bayesian) dengan asumsi independen (naif) yang kuat. Sebuah istilah yang lebih deskriptif untuk model probabilitas yang digarisbawahi adalah "model fitur independen". Dalam terminologi sederhana, sebuah NBC mengasumsikan bahwa kehadiran (atau ketiadaan) fitur tertentu dari suatu kelas tidak berhubungan dengan kehadiran (atau ketiadaan) fitur lainnya. Sebagai contoh, buah mungkin dianggap apel jika merah, bulat, dan berdiameter sekitar 4 inchi. Bahkan jika fitur ini bergantung satu sama lain atau atas keberadaan fitur lain. Sebuah NBC menganggap bahwa seluruh sifat-sifat berkontribusi mandiri untuk probabilitas bahwa buah ini adalah apel.
175
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
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 NaïveBayes 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 Naïve 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)
2. Misalkan terdapatm kelas, C1 ,C2 , … Cm.Dengan data sample X, NBC akan memprediksi bahwa X adalah anggota kelas yang memiliki posterior probability tertinggi dengan kondisi X. Sesuai teorema Bayes, maka NBC | memiliki persamaan| = . Namun, karena P(X) selalu
konstan untuk seluruh kelas (positif,negatif,dan netral), maka pada persamaan tersebut P(X) dapat dihilangkan. Ringkasan algoritma untuk Naïve Bayes Classifier adalah sebagai berikut: 1. Proses pelatihan. Input adalah dokumen-dokumen contoh yang telah diketahui kategorinya. Kosakata ← himpunan semua kata yang unik dari dokumen-dokumen contoh. Untuk setiap kelas i lakukan : a. Docsi ← Himpunan dokumen-dokumen yang berada pada kelas i b. Hitung P(Ci) c. Untuk setiap kata X pada kosakata, hitung P(Ci|X) 2. Proses klasifikasi. Input adalah dokumen yang belum diketahui kategorinya. Hitung P(Ci|X) untuk masing-masing kelasnya (positif, negatif, dan netral) menggunakan P(Ci) dan P(X|Ci) yang telah diperoleh dari proses pelatihan. 2.3 Modifikasi Naïve Bayes Classifier
Dalam pengaplikasiannya, NaïveBayesClassifier seringkali tidak hanya dipakai begitu saja, namun masih perlu beberapa modifikasi untuk meningkatkan performansi algoritma itu sendiri. Beberapa modifikasi yang dapat dilakukan adalah: 1. Preprocessing ini adalah tahap awal yang dilakukan untuk memulai suatu proses sentimentanalysis. Dalam preprocessing ini, ada beberapa tahapan yang harus dijalankan, yaitu: a. Mengubah seluruh teks status menjadi huruf kecil (lowercase). b. Menghapus url yang terdapat pada teks status (http://www....com). c. Menghapus tag (@) beserta username yang dituju. d. Menghapus hashtag (#). e. Mengubah repeating letters, contohnya ‘hunggrryyy’ atau ‘huuuungry’ menjadi 'hungry'. f. Menghapus punctuation seperti comma, single/double quote, questionmarks yang terdapat pada teks status, contohnya beautiful!!!!! diganti dengan beautiful.
177
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
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, isn’t). 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 NaïveBayes. 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.
3. ANALISA DAN RANCANGAN SISTEM 3.1 Use Case Diagram
Gambar 1 merupakan rancangan usecase diagram pada sistem. Usecase pada Gambar 1 memiliki 1 actor dan 7 usecase yang dapat dilakukannya di dalam sistem, antara lain Login, LikePage/Follow, Posting, Suggest, Logout, ViewConclusion,dan ShareConclusion.
178
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier (Yosef Ganisaputra, Robby Tan)
Gambar 14 Use Case Diagram
179
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
3.2 Entity Relationship Diagram
Rancangan basis data akan digambarkan pada Entity Relationship Diagram seperti pada Gambar 2. Jenis Entity Relationship Diagram yang digunakan adalah Crow’s Foot.
Gambar 15 Entity Relationship Diagram 4. HASIL PENELITIAN
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)
Gambar 16 Tampilan Halaman User
181
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
Gambar 4 merupakan tampilan ketika user ingin melakukan posting suatu status. Aplikasi ini akan menampilkan user-user yang pernah login ke dalam sistem beserta status-status user tersebut. Status tersebut dapat menjadi acuan untuk user melakukan posting status positif dari aplikasi ini. Tombol post yang berada pada halaman ini berfungsi untuk melakukan pengecekan apakah status tersebut termasuk positif. Jika tidak, maka aplikasi ini melakukan posting status tersebut.
182
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier (Yosef Ganisaputra, Robby Tan)
Gambar 17 Tampilan Halaman Recommended Status
183
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
Berdasarkan penelitian dan pengujian yang telah dilakukan, maka didapatkan hasil mengenai penerapan optimasi algoritma Naïve Bayes Classifier pada sentimentanalysis sebagai berikut. 1. Percobaan ke-1 Percobaan pertama ini dilakukan dengan menggunakan 150 data uji yang terdiri dari 50 data positif(25 bahasa Indonesia dan 25 bahasa Inggris), 50 data netral(25 bahasa Indonesia dan 25 bahasa Inggris), dan 50 data negatif(25 bahasa Indonesia dan 25 bahasa Inggris).
60 50 Standar
40
Preprocessing 30
Stopword Removal
20
N-Grams
10
Semua Optimasi
0 Netral
Positif
Negatif
Gambar 18 Grafik Hasil Pengujian Pertama Hasil: Standar Preprocessing Stopword Removal N-Grams Semua Optimasi
: Netral = 46, Positif = 42, Negatif = 40 : Netral = 47, Positif = 47, Negatif = 36 : Netral = 45, Positif = 49, Negatif = 37 : Netral = 42, Positif = 49, Negatif = 35 : Netral = 43, Positif = 50, Negatif = 38
Akurasi: Perhitungan akurasi dengan rumus : !"#$% =
& '( *+ , *+ - ./ & '( 01 2 34-
!"#$% 9: %$;$ =
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
Gambar 19 Grafik Hasil Pengujian Kedua Hasil: Standar Preprocessing Stopword Removal N-Grams Semua Optimasi
: Netral = 94, Positif = 80, Negatif = 81 : Netral = 92, Positif = 78, Negatif = 78 : Netral = 98, Positif = 73, Negatif = 74 : Netral = 91, Positif = 85, Negatif = 73 : Netral = 95, Positif = 92, Negatif = 75
185
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
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
Gambar 20 Grafik Hasil Pengujian Ketiga
186
Pembuatan Aplikasi Datamining Facebook dan Twitter dengan Naive Bayes Classifier (Yosef Ganisaputra, Robby Tan)
Hasil: Standar Preprocessing Stopword Removal N-Grams Semua Optimasi
: Netral = 141, Positif = 119, Negatif = 127 : Netral = 140, Positif = 109, Negatif = 126 : Netral = 141, Positif = 108, Negatif = 121 : Netral = 135, Positif = 132, Negatif = 114 : Netral = 139, Positif = 132, Negatif = 122
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: %$;$ =
Rata-rata akurasi NBC Standar = (85,33%+85%+86%) / 3 Rata-rata akurasi Preprocessing = (86,67%+82,67%+83,33%) /3 Rata-rata akurasi Stopword Removal = (87,33%+81,67%+82,22%) / 3 Rata-rata akurasi N-Grams = (84%+83%+84,67%) / 3 Rata-rata akurasi Semua Optimasi= (87,33%+87,33%+87,33%) / 3
5. SIMPULAN DAN SARAN
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%
Jurnal Informatika, Vol. 9 No. 2, Desember 2013: 173 - 188
mengklasifikasi 150 data testing yang terdiri dari 50 kalimat netral, 50 kalimat positif, dan 50 kalimat negatif, maka NaïveBayesClassifier dapat memberikan hasil dengan akurasi hingga 85,44%. 2. Dengan menggunakan penambahan metode preprocessing akurasi dapat mencapai hingga 84,22%. Dengan metode stopwordremoval akurasi dapat mencapai hingga 83,74%. Dengan metode Unigram dan Bigram akurasi dapat mencapai hingga 83,89%. Sedangkan keseluruhan optimasi tersebut dapat memberikan hasil dengan akurasi hingga 87,33%.
DAFTAR PUSTAKA [1]
Agarwal, A. (2011). Sentiment Analysis of Twitter Data. New York, USA.
[2]
Ayuliana. (2009). Testing dan Implementasi. Jakarta, DKI Jakarta, Indonesia.
[3]
Barber, I. (2010). Bayesian Opinion Mining. PHPir: http://phpir.com/bayesianopinion-mining. Diakses:17/03/2013.
[4]
Crane, M. (2011). Entity-Relationship (ER) Data Modelling. Dublin, Ireland.
[5]
Davis, E. (2012). Naive Bayes for Classifying Text. New York City, New York, USA.
[6]
Dumas, M. (2001). UML Activity Diagrams as a Work Specification Language. Brisbane, Australia.
[7]
Liu, B. (2012). Opinion Mining. Chicago, United States of America.
[8]
Pak, A., & Paroubek, P. (2011). Twitter as a Corpus for Sentiment Analysis and Opinion Mining. Orsay, France.
[9]
Pressman, R.(2001). Software Engineering. McGraw-Hill:New York.
[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 Classification. 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