Konferensi Nasional Ilmu Sosial & Teknologi (KNiST) Maret 2017, pp. 172~176 172 ANALISA SENTIMEN BERBASIS NATURAL LANGUANGE PROCESSING DENGAN NAIVE BAYES CLASIFIER 1 2 Saeful Bahri , Rizal Amegia Saputra , Rusda Wajhillah 3 1 STMIK Nusa Mandiri Jakarta e-mail: [email protected] 2 AMIK BSI Sukabumi e-mail: [email protected] 3 STMIK Nusa Mandiri Sukabumi e-mail: [email protected] Abstrak Analisa sentiment merupakan sebuah alat untuk mendapatkan informasi dari sebuah teks, yang digunakan untuk sebuah sistem pendukung keputusan, banyak peneliti telah melakukan penelitian tentang analisa sentiment dengan teknik Natural Languange Processing, karena NLP memungkinkan pengukuran sebuah tulisan secara langsung seperti bahasa alami, untuk mengklasisfikasikan corpus agar didapat informasi didalamnya digunakan sebuah algoritma klasisfikasi Naïve Bayes Classifier (NBC) untuk proses klasifikasi dengan fitur pembobotan. Naïve Bayes Classifier yang terbukti lebih sederhana dalam proses klasifikasinya, penggunaan Natural Language Processing pada penelitian ini bertujuan untuk mereduksi dimensi korpus tweet yang besar dan hanya mengambil kata yang dianggap sebagai akar dari kata yang terdapat pada korpus yang diteliti sehingga menjadi korpus yang mengandung sedikit kata yang kurang mengandung makna. Keywords: Analisa Sentimen, Natural Languange Processing, Naïve Bayes Clasifier 1. Pendahuluan Analisa sentimen atau opinion mining merupakan sebuah alat untuk mendefinisikan sebuah informasi dari sebuah teks, seperti pendapat dan sentimen yang bertujuan untuk menciptakan sebuah pengetahuan yang dapat digunakan untuk sistem pendukung keputusan (Pozzi, Fersini, Messina, & Liu, 2017). Analisa sentimen atau opinion mining perlu untuk dianalisa, karena dari ledakan media sosial saat ini yang memungkinkan individu atau organisasi mengemukanan pendapat secara langsung dan data yang masiv, hal ini berpotensi menjadi sebuah informasi yang sangat berharga (Gavilanes, Lopez, Martinez, Montenegro, & Castano, 2016), Metode dalam analisa sentimen seperti taxonomi-based (Cruz, Troyano, Enriquez, Ortega, & Vallejo, 2013), PMI-Based (Yu, Wu, Chang, & Chu, 2013) dan semantik (Pai, Chu, Wang, & Chen, 2013) telah diusulkan oleh beberapa peneliti (Medhat, Hasan, & Korashy, 2014). Natural Languange Processing (NLP), yang merupakan teknik yang banyak digunakan oleh para peneliti dan memungkinkan mengukur secara langsung kualitas esai atau tulisan (Chen, Liu, Lee, & Chang, 2010), NLP telah sukses diterapkan dalam beberapa kasus analisa teks seperti opinion mining atau yang lebih dikenal dengan analisa sentimen (Sun, Luo, & Chen, 2016), atau dibidang kedokteran dalam menganalisa sebuah catatan medis untuk mengetahui resiko terjangkit penyakit kardiovaskular (Khalifa & Meystre, 2015), sedangkan untuk klasifikasi tweet sentiment negatif dan fositif digunakan algoritma naive bayes clasifier karena terbukti lebih sederhana dibanding klasifikasi menggunakan Support Vektor Machine (Rui, Liu, & Whinston, 2013; Witten & Frank, 2005) Pada penelitian ini akan menganalisa sebuah informasi yang diambil dari twitter, kemudian komentar pada twitt tersebut akan dianalisa dan diklasifikasi menggunakan naive bayes clasifier, hasil klasisfikasi akan Diterima 25 Januari 2017; Revisi 15 Februari 2017; Disetujui 15 Maret, 2017 ISBN: 978-602-61242-0-3 diterapkan untuk menganalisa jumlah sentiment negative dan sentiment fositif yang dapat digunakan sebagai salah satu sistem penunjang keputusan, yang bermanfaat untuk beberapa kasus seperti sistem penunjang keputusan penerimaan beasiswa, dan beberapa kasus yang berkaitan dengan essay text (Arifin, Y. T. 2016). dalam penelitan ini akan diterapkan natural languange processing sebagai metode pemrosesan teks dan mendapatkan informasi yang berkualitas, yang kemudian informasi tersebut akan diklasifiasikan dengan salah satu algoritma klasifikasi untuk menemukan sentimen dari sebuah korpus dalam hal ini tweet 2. Metode Penelitian Dalam mendukung penelitian ini ada beberapa bahan dan metode yang digunakan pada penelitian ini seperti teknik pengumpulan data, teknik pemrosesan data yang akan dijelaskan pada sub-bab berikut. Pengumpulan Data Data yang digunakan pada penelitian ini diambil dari api.twitter.com, diambil dengan bantuan software R dengan menggunakan teknik web crawler, dari masing-masing twit yang diambil sebanyak 10663 dengan twit dari 2 vendor ponsel terkemuka didunia, masing- masing diambil 5330 twit, dari tweet tersebut kemudian dilakukan pemrosesan text untuk untuk memisahkan beberapa text dengan notasi yang tidak memiliki arti seperti symbol-simbol dan kalimat penghubung. Untuk proses pemilihan kata tersebut digunakanlah sebuah metode natural languange processing yang berfungsi untuk memfilter teks atau corpus yang akan digunakan sebagai data latih. Pemrosesan Data Setelah data tweet terkumpul selanjutnya twet dari beberapa data seperti beberapa informasi tweet yang berisi simbol dihilangkan, selanjutnya dilakukan pengelompokan tweet kedalam beberapa kategori, setelah pengelompokan tersebut kemudian tweet yang telah dikelompokan dilakukan pengujian nilai probabilitas untuk mengetahui beberapa kelompk seperti Intention, positif, negative dan netral (Rui, Liu, & Whinston, 2013), berikut penggambaran proses klasifikasi twit pada gambar 1 KNiST, 30 Maret 2017 Sumber: Rui, 2013 Gambar 1. Klasifikasi Tweet Natural Languange Processing (NLP) Natural languang processing merupakan sebuah metode analisa teks Bahasa secara alami, untuk menemukan kontek dari sebuah bahas atau tulisan (Indurkhya & Damerau, 2010), pada natural language processing ada beberapa tahan yang harus dilakukan dalam mengekstrak sebuah informasi agar informasi yang didapat bebas dari beberapa informasi yang kurang bermakna sperti symbol-simbol kalmia yang tidak mengandung arti, agar informasi yang didapat lebih berkulitas, berikut merupakan beberapa tahapan dari pemerosesan Bahasa alami yang mutlak harus dilakukan . A. Text Processing Tahap ini melakukan analisis semantik (kebenaran arti) dan sintaktik (kebenaran susunan) terhadap teks. Tujuan dari pemrosesan awal adalah untuk mempersiapkan teks menjadi data yang akan mengalami pengolahan lebih lanjut. Operasi yang dapat dilakukan pada tahap ini meliputi partof-speech (PoS) tagging, menghasilkan parse tree untuk tiap-tiap kalimat, dan pembersihan teks. B. Lexical Analysis Proses lexical analysis merupakan sebuah cara untuk memisahkan kata yang kurang berguna dan tidak memiliki informasi sama sekali seperti dalam Bahasa Indonesia ada imbuhan –lah, ke, -di dalam Bahasa inggris seperti – ing, -is dan lain sebaginya, dalam suatu korpus yang akan digunakan untuk 173 ISBN: 978-602-61242-0-3 menemukan informasi yang terkandung. C. Syntatic Parsing Pada proses syntactic parsing merupakn sebuah proses pemisahan topic, tema dan tata Bahasa pada corpus teks yang akan digunakan dalam proses analisa teks. D. Semantic Analysis Semantic analisis merupakan sebuah proses menemukan makna dari sebuah korpus teks yang akan dianalisa E. Natural Languange Generation Proses natural language generation merupak sebuah proses untuk merubah sebuah informasi dari database computer menjadi Bahasa manusia atau teks yang bisa dimengeti oleh manusia Naive Bayes Clasifier untuk klasifikasi teks Untuk proses klasifikasi dan mengelompokan berapa tweet yang nantinya digunakan sebagai acuan sentiment negatif positif, akan digunakan sebuah algoritma klasifikasi yang mengeklasifikasikan berdasarkan parameter numerik probabilitas dan parameter multi nominal (Witten & Frank, 2005). Untuk melakukan klasifikasi beberapa persamaan dalam naïve bayes digunakan untuk menemukan nilai probabilitas nya, sederhananya naïve bayes dalam dalam proses klasisfikasi teks dan direpresentasikan pada contoh sebagai berikut . Y ( I love this fruit is very sweet. The flavour is great and make me feel happiness it’s fuit very recommended for your bought) = c Y ( I love this fruit is very sweet. The flavour is great and make me feel happiness, it’s fuit very recommended for your bought ) = c P X1 J = probabiitas = Direpresentasikan sebagi fitur = Topik MAP = Maximum posterior atau kelas yang paling mungkin untuk kasus klasifikasi persamaan nya bisa ditulis menentukan nilai setiap kata : , menentukan kalimat : , Kemudian dari kata-kata tersebut di cari nilai probabilitasnya untuk dikelompokan neg(Negative) Pos (Positif) kita asumsikan sudah mendapatkan semua nilai probabilitasnya, beberapa kasus dalam dalam analisa sentiment menggunakan beberapa corpus sebagai corpus training dan yang dibagi kedalam tiga class utama, sebuah corpus untuk menetukan topic dan sebuah class testing untuk mencari kecenderungan dari sentiment yang sedang dianalisa, berikut contoh dari proses klasifikasi teks menggunakan naïve bayes klasifikasi. Tabel 1. Contoh Klasifikasi Teks DOK 1 TRAINING Y ( x love xxxxxxxxx sweet. xxx xxxxx xx great xxx xxxx xx xxx happyness, xxx xxxx xxxx recommended xxx xxxx xxxxx ) = c. Pada teks yang ditandai tebal menjelaskan bahwa teks tersebut sudah melalui pemrosesan teks kemudian hasil pemrosesan teks dengan natural lnguange proses akan dihitung dan ditemukan mana yang menjadi class dan topik. d c = document = class KNiST, 30 Maret 2017 multinominal 2 3 4 TESTING 5 KALIMAT Chinese Beijing Chinese Chinese Chinese Shanghai Chinese Macau Tokyo Japan Chinese Chinese Chinese Chinese Tokyo Japan CLASS C C C J ? Sumber: (Jurafsky, 2011) Diketahui : dan Nilai probabilitas dari table diatas. 174 ISBN: 978-602-61242-0-3 P(Chinese | c) P(Tokyo | c) P(Japan | c) P(Chinese | j) P(Tokyo | j) P(Japan | j) = (5+1)/(8+6)=6/14=3/7 = (0+1)/(8+6)=1/14 = (0+1)/(8+6)=1/14 = (1+1)/(3+6)=2/9 = (1+1)/(3+6)=2/9 = (1+1)/(3+6)=2/9 Memilh class untuk digunakan sebagai data training dan testing 3 P(c| d5) ∞ 3/4 * (3/7) * 1/14 * 1/14 ≈ 0,0003 3 P(j| d5) ∞ 1/4 * (2/9) * 2/9 * 2/9 ≈ 0,0001 Dari proses perhitungan contoh klasifikasi tersebut diketahui nilai probabilitas dari kata Chinese paling besar diantara kata lainya, dan pada tajuk cina dapat digunakan sebagai class. Pada penelitian ini hal serupa akan diterapkan untuk menganalisa dan mengklasifikasikan sebuah corpus tweet untuk dicari nilai kecenderungan negative atau positif dari sebuah komentar, dimulai membangun korpus yang berkualitas dengan pemrosesan Bahasa natural kemudian tweet dikelompokan kedalam tiga kategori sentiment seperti sentiment negaif, positif dan neutral. 3. Pembahasan Data awal yang berjumlah 10663 data yang yang diambil, dikelompokan untuk proses scoring dilakukan untuk menghitung seberapa banya kalimat yang memuat kandungan positif dan kalimat negative kemudian bobot dicocokan dengan nilai score berdasarkan dictionary pada table berikut. Tabel 2. Contoh Penilaian Klasifikasi Teks score text 5 You're awesome and I love you I hate and hate and hate. So -1 angry. Die! Impressed and amazed: you are 7 peerless in your achievement of unparalleled mediocrity. Dari table 2 diatas dapat dijelaskan untuk score yang bernilai 5 sentiment dikelompokan kedalam kelompok sentiment positive, untuk score dari -1 sampai –n sentiment dikelopokan kedalam sentiment negative sedangkan jika scorenya 7 maka sentiment dikelompokan kedalam kelompok sentiment neutral. KNiST, 30 Maret 2017 Setelah mengalami pemrosesan teks dengan Natural language process didapatlah kualitas korpus yang baik yang digunakan dalm proses analisa sentiment menggunakan naïve bayes, proses klasifikasi menggunakan naïve bayes classifier dari tweet tersebut didapat nilai sebagai berikut Tabel 3. Hasil Prediksi Dengan Naïve Bayes Predicted Positive Negative Positif 2846 1546 Negatif 2485 3786 Dari Tabel 3 diketahui bahwa dari objek dua buah objek tweet yang diteliti didapat 2846 tweet positive dan 1546 tweet negatif untuk tweet A sedangkan untuk tweet B sejumlah 2485 untuk tweet Positive dan 3786 tweet negative, dengan Jumlah keberhasilan : 6632 data dari 10663 data dengan nilai probabilitas ≠ 0,5 atau 95%, interval nilai konfiden 0.6126810-0.6311799 dengan nilai kesuksesan probabilitas sebesar 0.6219638. Hasil dari klasifikasi tersebut dapat digunakan dalam sebuah sistem penunjang keputusan bahwa Tweet dari Objek A lebih mendapat respon fositif dibanding Objek tweet B. 4. Simpulan Dari hasil diatas dapat ditarik kesimpulan bahwa nilai probabilitas dari klasifikasi teks dengan naïve bayes masih perlu ditingkatkan lagi, seperti menggunakan MaxEnt Clasifier untuk proses POS tagging nya dalam membangun model untuk klasifikasi. Pada penelitian ini diketahui jika nilai konfiden algoritma naïve bayes meningkat rata-rata antara 0.61-0.63 setelah ditambahkan teknik natural language processing, penggunaan natural language processing pada penelitian ini bertujuan untuk mereduksi dimensi korpus tweet yang besar dan hanya mengambil kata yang dianggap sebagai akar dari kata yang terdapat pada korpus yang diteliti sehingga menjadi korpus yang mengandung sedikit kata yang kurang mengandung makna. Untuk penelitian selanjutnya kami mengharapkan ada sebuat penelitian lanjutan yang mengukur tingkat akurasi dari beberapa algoritma klasifikasi yang digunakan dalam proses klasifikasi sentiment yang di tambahkan natural language processing. 175 ISBN: 978-602-61242-0-3 Selain pengukuran tentang model dan metode analisa sentiment, penelitian selanjutnya diharapkan bisa mengimplementasikan analisa sentiment ini kedalam beberapa kasus seperti kelayakan pemberian kredit berbasis analisa sentiment, sistem penunjang keputusan penerimaan karyawan, sitem penunjang penerimaan beasiswa dan untuk diagnose penyakit berdasarkan data rekam medic. Referensi Arifin, Y. T. (2016). KOMPARASI FITUR SELEKSI PADA ALGORITMA SUPPORT VECTOR MACHINE UNTUK ANALISIS SENTIMEN REVIEW. INFORMATIKA, 3(2). Chen, Y.-Y., Liu, C.-L., Lee, C.-H., & Chang, T.-H. (2010). An Unsupervised Automated EssayScoring System. In Natural Languange Processing (pp. 61-67). IEEE Computer Society. Cruz, F. L., Troyano, J. A., Enriquez, F., Ortega, F. J., & Vallejo, C. G. (2013). 'Long autonomy or long delay?' The importance of domain in opinion mining. Expert Systems with Applications, 3174–3184. Gavilanes, M. F., Lopez, T. A., Martinez, J. J., Montenegro, E. C., & Castano, F. J. (2016). Unsupervised method for sentiment analysis in online texts. Expert Systems with Applications, 57–75. Indurkhya, N., & Damerau, F. J. (2010). Handbook of Natural Languange Processing second edition. New York: Taylor & Francis Group. Jurafsky, D. (2011). Text Clasification And Naive Bayes. Text Clasification And Naive Bayes. Stanford, California, United States Of America: Stanford University. Khalifa, A., & Meystre, S. (2015). Adapting existing natural language processing resources for cardiovascular risk factors identification in clinical notes. Journal of Biomedical Informatics, 128-132. Medhat, W., Hasan, A., & Korashy, H. (2014). Sentiment analysis algoritmh KNiST, 30 Maret 2017 and aplication: A Survey. Ain Shams Engineering Journal, 1093–1113. Pai, M. Y., Chu, H. C., Wang, S. C., & Chen, Y. M. (2013). Electronic word of mouth analysis for service experience. Expert Systems with Applications, 1993–2006. Pozzi, F. A., Fersini, E., Messina, E., & Liu, B. (2017). CHALLENGES OF SENTIMENT ANALYSIS IN SOCIAL NETWORKS: AN OVERVIEW. In F. A. Pozzi, E. Fersini, E. Messina, & B. Liu, Sentiment Analysis in Social Networks (pp. 1-11). AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO : Elsevier. Rui, H., Liu, Y., & Whinston, A. (2013). Whose and what chatter matters? The effect of tweets on movie sales. Decision Support Systems, 863-870. Sentiment140. (2017, January 19). Sentiment140. Retrieved from Sentiment140: http://help.sentiment140.com/forstudents/ Sun, S., Luo, C., & Chen, J. (2016). A Review of Natural Language Processing Techniques for Opinion Mining Systems. Information Fussion, 10-25. Witten, I. H., & Frank, E. (2005). Data Mining Practical Machine Learning Tools and Techniques. San Fancisco: Morgan Kaufman. Yu, L. C., Wu, J. L., Chang, P. C., & Chu, H. S. (2013). Using a contextual entropy model to expand emotion words and their intensity for the sentiment classification of stock market news. Knowledge-Based Systems, 89–97. 176