SISTEM ANALISIS OPINI MICROBLOGGING BERBAHASA INDONESIA Harlili1, Yudi Wibisono2 1 Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung 2 Ilmu Komputer, Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam, Universitas Pendidikan Indonesia 1 [email protected], 2 [email protected] Abstrak Microblogging, khususnya Twitter membuat pengguna dapat mem-publish pesan pendek (tweet) dengan mudah dan cepat. Indonesia sendiri merupakan negara terbesar ketiga penghasil tweet dengan kontribusi enam juta tweet perhari. Sebagian tweet ini dapat berisi opini terhadap produk atau layanan. Jumlah yang besar dan data yang mudah diperoleh membuat kumpulan tweet ini sangat berpotensi untuk dimanfaatkan pihak organisasi sebagai pendukung manajemen merek dan corporate reputation. Tweet yang tidak terstruktur dan jumlah yang besar menjadi tantangan utama dalam pemrosesan data. Penelitian ini membahas pengembangan sistem sentimen analisis otomatis untuk tweet berbahasa Indonesia menggunakan klasifikasi Naïve Bayes. Sistem ini menangani pemisahan tweet opini dan nonopini, tweet opini negatif dan positif, dan keyword yang berkaitan dengan opini positif dan negatif tersebut. Hasil eksperimen menunjukkan sistem ini memiliki potensi besar sebagai alat untuk membantu melakukan analisis opini. Kata kunci : Microblogging, twitter, analisis opini, text processing 1. Pendahuluan Internet versi 2.0 ditandai dengan berkembangnya data yang berasal dari pengguna (user generated content). Data ini berbentuk blog, forum, dan media sosial. Microblogging adalah bagian dari media sosial yang memungkinkan pengguna untuk mem-publish pesan singkat (140 karakter) berisi opini, kegiatan atau diskusi. Contoh layanan microblogging adalah Jaiku, Plurk, dan yang terpopuler adalah Twitter. Pesan singkat pada layanan Twitter disebut tweet. Gambar 1 memperlihatkan contoh tweet mengenai sebuah operator GSM Gambar 1 Contoh tweet Jumlah tweets berkembang dengan cepat karena mudah digunakan dan aplikasinya tersedia di berbagai platform (SMS, browser, smartphone app, email). Tahun 2007 jumlah tweets berada dikisaran 5 ribu per hari, dan berkembang menjadi 50 juta tweets per hari pada tahun 2010. Saat ini (Agustus 2011) telah mencapai 200 juta/hari, atau sekitar 2.300 tweets per detik [1]. Indonesia di tahun 2010, menjadi negara ke-3 terbesar penghasil tweet dengan porsi 12% atau sekitar 6 juta tweets/hari [2]. Volume tweet yang besar ini dapat digunakan sebagai sumber data untuk analisis opini. Analisis opini berupaya menjawab pertanyaan seperti “Berapa persentase respon negatif, positif dan mengenai produk X?”, “Aspek apa yang mendapat respon negatif?”. Perusahaan dan organisasi membutuhkan analisis opini sebagai dasar manajemen merk (brand management), corporate reputation, marketing, sistem rekomendasi, dan intelijen [3]. Merk telah dianggap sebagai salah satu intangible asset yang paling berharga dan manajemen merk adalah prioritas penting bagi pihak manajemen perusahaan atau organisasi [4]. Penurunan reputasi perusahaan dapat menyebabkan gangguan terhadap kondisi finansial perusahaan atau bahkan dapat menyebabkan kebangkrutan[5] Di satu sisi, analisis sentimen memiliki banyak manfaat bagi organisasi, industri, dan individu, tetapi di sisi lain memiliki banyak tantangan dan masalah. Salah satu masalah adalah variasi bahasa yang digunakan pengguna Twitter sangat tinggi, dengan kosa kata dan tata-bahasa yang tidak baku. Sebagai contoh, kata “tidak” memiliki 21 variasi seperti “tdk”, “gak”, “nggak”, “kagak”, “ga”, “nda”, “gag” dan seterusnya [6]. Jumlah karakter yang dibatasi 140 membatasi pengguna untuk mengekspresikan dengan jelas apa yang diinginkan. Jumlah tweet yang sangat besar juga membuat pemrosesan secara manual akan membutuhkan tenaga dan waktu yang sangat besar. Penelitian ini mencoba menjawab bagaimana membangun sistem yang dapat membantu melakukan analisis opini microblogging berbahasa Indonesia. Data yang digunakan adalah 35000 tweet yang mengandung kata Telkomsel dan Indosat pada bulan Agustus 2010. Eksperimen dilakukan untuk menguji model yang akan digunakan di dalam sistem. dari tanggal 29 Agustus 2010 dan masih berjalan sampai sekarang. Tapi untuk eksperimen dalam penelitian ini, hanya digunakan data sampai dengan tanggal 29 September 2010 sebanyak 33 ribuan tweet. 2. 5. Kajian Terkait Analisis Sentimen Penelitian yang terkait dengan analisis sentimen telah banyak dilakukan sebelumnya [7]. Tetapi untuk bahasa Indonesia, hanya ditemukan satu publikasi mengenai analisis sentimen [8] itupun masih masih menggunakan dokumen berbahasa Inggris mengenai review film yang kemudian diterjemahkan ke Bahasa Indonesia. Arsitektur Sistem Analisis Sentimen Gambar 5 memperlihatkan arsitektur sistem yang akan dikembangkan. Sistem ini menerima masukan berupa data tweet mentah. Data ini akan di praproses terlebih dulu sebelum diproses lebih lanjut. Tweet mentah 3. Sistem Analisis Sentimen Tujuan dari sistem analisis sentimen pertama adalah secara otomatis menentukan apakah sebuah tweet mengandung opini atau tidak. Sebagai contoh tweet ini walaupun mengandung kata “indosat” tetapi tidak memiliki informasi opini. Praproses Tweet ‘bersih’ Classifier (opini vs non opini) pantes rumah kosong (?) RT @nisrinachai: @Anggithsv di indosat mm hehe Gambar 2 Contoh tweet non opini Tweet opini Setelah diperoleh tweet yang mengandung opini langkah berikutnya adalah memisahkannya menjadi dua jenis: opini negatif dan opini positif. Contoh opini positif adalah sebagai berikut Syukur alhamdulilah tmben d smi ga delay lgi pake indosat..hhehe.. Gambar 3 Contoh tweet opini positif Sedangkan contoh tweet negatif adalah sebagai berikut indosat payah internetnya Tweet non opini tidak diproses Classifier (opini positif vs opini negatif) Tweet Opini Positif Tweet Opini Negatif Keyword Extractor Gambar 4 Contoh tweet opini negatif Tahap terakhir adalah mencari kata kunci yang terkait dengan sekumpulan tweet opini, baik opini negatif maupun opini positif. Kata kunci ini terutama untuk menggambarkan aspek apa yang mendapat opini. Berikut adalah contoh kata kunci pada kumpulan tweet opini negatif: sinyal, sms, mahal, koneksi, pulsa. Sedangkan kata kunci untuk opini positif diantaraya: internet cepat, flash telkomsel, sinyal kuat. 4. Data Eksperimen Data tweet diperoleh dengan membuat program crawler yang secara otomatis, setiap 30 menit dan selama 24 jam sehari, mengambil data tweet yang mengandung kata “indosat” dan “telkomsel”. Pengumpulan dimulai Keyword untuk opini negatif Keyword untuk opini positif Gambar 5 Arsitektur Sistem Pada praproses, tweet yang terlalu pendek (kurang dari 10 karakter) dihilangkan, karakter selain alphanumerik dihilangkan, dilakukan case folding (dijadikan huruf kecil), pembuangan stopwords dan pemrosesan sinonim. Untuk klasifikasi secara otomatis tweet opini dan nonopini, lalu opini negatif dan positif, digunakan naïve- bayes classifier [9]. Teknik ini dipilih karena paling sederhana untuk diimplementasikan. Sedangkan untuk ekstraksi keyword, dilakukan dengan menghitung bobot TF-IDF (term frequency – inverse documen tFrequency ). Term dengan bobot TFIDF terbesar yang akan menjadi kandidat keyword. Persamaan TF-IDF dihitung dengan cara … 1 … 1 Dimana tf(d,t) adalah frekuensi kemunculan kata t pada tweet d; |D| adalah jumlah semua twet pada koleksi; dan n adalah jumlah tweet yang mengandung kata t. Metode pembobotan log-tf.idf digunakan karena metode pembobotan ini paling baik dalam task information retrieval. Nilai bobot suatu term menyatakan kepentingan bobot tersebut dalam merepresentasikan tweet. Pada pembobotan log-tf.idf, bobot akan semakin besar jika frekuensi kemunculan term semakin tinggi, tetapi bobot akan berkurang jika term tersebut semakin sering muncul pada tweet lainnya. 6. Evaluasi Model Sebelum digunakan di dalam sistem, classifier model yang digunakan perlu diujicoba terlebih dulu. Untuk mengujicoba classifier opini dan nonopini, digunakan data latih 963 tweet yang terdiri atas 330 non opini dan 633 opini. Dilakukan testing pada 300 tweet dengan akurasi 91.83%. Akurasi ini lebih tinggi dari perkiraan sebelumnya mengingat karakteristik tweet yang tidak terstruktur dan mengandung noise yang tinggi. Eksperimen ini juga memperlihatkan bahwa jumlah tweet yang mengandung opini mencapai 82.89% dari total tweet ujicoba. Ini menunjukkan bahwa potensi analisis opini sangat besar pada domain ini karena banyak tersedia tweet yang mengandung opini yang dapat diproses. Berikutnya diujicoba classifier model untuk kelas opini negatif dan opini positif. Yang digunakan sebagai data latih adalah 633 opini hasil ujicoba model sebelumnya, 633 opini ini terdiri atas 470 opini negatif dan 143 opini positif. Akurasi yang diperoleh 93.40%, menunjukkan model cukup dapat membedakan tweet beropini negatif dan positif. Terakhir adalah ujicoba keyword extractor. Setelah hasilnya dibandingkan dengan keyword ideal (disusun oleh manusia, bukan mesin), dari 29 keyword yang harusnya diambil, sistem hanya memperoleh 10 keyword (34.48%). Contoh berikut adalah keyword ideal untuk opini negatif: Internet, sinyal, sms, mahal, koneksi, pulsa, bb , gangguan, tidak bisa telepon, telkomsel flash Gambar 6 Contoh keyword ideal untuk opini negatif Sedangkan yang dihasilkan sistem adalah: emosi, mahal, bb ,<makian>, aneh, jaringan, pulsa, provider, bis, paket, sms, xl, sinyal Gambar 7 Contoh keyword yang dihasilkan sistem Permasalah utama yang menyebabkan buruknya kinerja keyword extracktor adalah banyak tweet yang tidak menyatakan subyek opininya secara jelas. Misalnya untuk menyatakan bahwa ada permasalahan dengan internet, banyak tweet yang menggunakan kata tidak langsung seperti “lambat”, “tidak bisa membuka facebook”, “gprs” dan seterusnya. 7. Ujicoba Sistem Setelah model dianggap cukup untuk digunakan didalam sistem analisis opini, maka dilakukan ujicoba terhadap 33000 tweet dalam rentang 27 hari. 33000 tweet tersebut dipecah per hari, kemudian dilakukan proses seperti yang telah dijelaskan sebelumnya (opini atau bukan, opini positif atau negatif dan keyword sesuai dengan opini). Hasilnya dapat dilihat pada Gambar 8. Gambar 8 Keluaran Sistem Yang menjadi sumbu horizontal adalah hari dari tanggal 30 Agustus 2010 sampai dengan 24 September 2010. Satuan sumbu horizontal dapat diubah-ubah, misalnya bulan atau tahun. Garis di bagian atas menggambarkan jumlah tweet opini negatif, sedangkan garis di bawah memperlihatkan jumlah opini positif (tweet non opini tidak diproses). Terlihat bahwa twitter jauh lebih sering dimanfaatkan untuk memberikan opini negatif. Analisis keyword juga dapat dilakukan pada setiap point untuk memperlihatkan aspek apa saja yang menjadi pembahasan pada batasan waktu tertentu. Contohnya grafik diatas memperlihatkan puncak opini negatif terjadi pada tanggal 9 September 2010 yaitu sehari sebelum lebaran idul fitri 2010. Salah satu keyword pada hari itu untuk opini negatif adalah “cs” (customer support). Ini mungkin disebabkan terbatasnya jumlah cs saat itu. Berikut adalah cuplikan tweet yang membahas cs pada hari itu: Susah bgt sih hubungin CS Telkomsel..sibuk2 mlulu [4] [5] [6] [7] [8] tadi gua sempet nyolot22an sama CS nya telkomsel HAHAHA songong bet sih lau neng 8. Kesimpulan Makalah ini telah membahas pengembangan awal sistem analisis opini untuk microblogging. Telah dibahas arsitektur sistem, pengujian model yang digunakan di dalam sistem sampai dengan ujicoba sistem. Potensi dan kontribusi sistem ini dapat terlihat dengan jelas. 33 ribu tweet (atau lebih) dalam rentang satu bulan dapat ditampilkan dalam bentuk grafik, dan difilter secara otomatis mana yang opini dan apakah opini tersebut negatif atau positif, beserta keyword yang relevan. Hasil eksperimen menunjukkan akurasi untuk model klasifikasi tweet opini dan nonopini adalah 91.83% sedangkan untuk model klasifikasi opini negatif dan positif mencapai 93.40%. Sedangkan untuk keyword extraction masih kurang memuaskan karena hanya 34.48% keyword yang dapat diambil. Untuk penelitian selanjutnya, model keyword extraction perlu diperbaiki untuk mendapatkan hasil yang lebih maksimal. . Daftar Pustaka: [1] [2] [3] Twitter (2011) Your world, more connected, http://blog.twitter.com/2011/08/your-world-moreconnected.html diambil tanggal September 2011 Semiocast Press Release, (2010), http://semiocast.com/ diambil tanggal 26 April 2011 Amanda Lee Hughes Leysia Palen (2009) Twitter Adoption and Use in Mass Convergence and Emergency Events, Proceedings of the 6th International ISCRAM Conference – Gothenburg, Sweden, May 2009. [9]. Keller, K. L., & Lehmann, D. R. (2006). Brands and branding: Research findings and future priorities. Marketing science, 25(6), 740-759. Argenti, P. A., B. Druckenmiller. (2004). Reputation and the corporate brand. Corporate Reputation Rev. 6(4) 368–374. Wibisono Y, Perbandingan Partition Around Medoids (Pam) dan K-Means Clustering untuk Tweets, Prosiding KNSI 2011 Medan, Feb 2011 Bo Pang and Lillian Lee (2008), Opinion Mining and Sentiment Analysis, Foundations and Trends in Information Retrieval Franky, Manurung R, (2008), Machine Learningbased Sentiment Analysis of Automatic Indonesian Translations of English Movie Reviews, In Proceedings of the International Conference on Advanced Computational Intelligence and Its Applications 2008. Tom M. Mitchell: Machine Learning, McGrawHill, 1999