Analisis Tweet: Opini atau Sentimen

Update Juni 2018, lanjutan: aspect-based sentiment analysis untuk domain review restoran.

Catatan 2018:  Posting ini dibuat tahun 2011, saat Twitter masih banyak digunakan oleh masyarakat Indonesia dan jumlah spam masih sedikit. Jika akan menggunakan Twitter untuk sumber data, coba cek datanya dan lakukan pembersihan. Perlu diingat bahwa Twitter hanya mewakili demografi yang sangat spesifik jadi tidak mewakili populasi sesungguhnya.

2011:
Twitter seringkali digunakan untuk ‘curhat’ mengenai sesuatu hal, baik memuji ataupun mencela. Tentunya ini punya potensi besar bagi perusahaan yang ingin mengetahui feedback masyarakat untuk merk dan layanan mereka demikian juga  partai politik atau politikus yang ingin mengukur tingkat popularitas mereka. Analisa ‘curhat’ ini dikenal dalam dunia pemrosesan teks sebagai analisa opini atau sentimen (opinion analysis atau sentiment analysis). Opini artinya adalah pandangan subyektif seseorang tentang suatu hal.

Ada beberapa task utama dalam analisis opini, diantaranya:

  1.  Menentukan tweet berisi opini atau tidak. Contoh bukan opini: “Hari ini saya belanja di supermarket X”. Sedangkan contoh opini adalah “Pelayanan kasir supermarket X tidak ramah dan lambat”.
  2. Menentukan apakah opini tersebut adalah opini negatif atau positif. Contoh opini positif   “Supermarket X bersih, enak belanja disana”. Sedangkan contoh opini negatif  bisa dilihat pada contoh no 1.
  3. Apa yang menjadi topik dari opini? Misalnya pada contoh no 1, yang menjadi topik adalah “layanan kasir”  sedangkan pada contoh no 2 yang menjadi topik adalah “kebersihan”

Dengan cara manual, analisa opini ini bisa saja dilakukan. Misalnya memonitor berita-berita di media masa.  Tapi untuk data tweet, cara manual tidak mungkin bisa dilakukan. Ini karena jumlah datanya yang sangat besar dan terus mengalir. Misalnya untuk tweet berbahasa Indonesia saja diperkirakan ada aliran 6 juta tweet per hari (2010). Disinilah peranan text processing, yang secara otomatis dapat  memproses data.

Sebulan yang lalu saya mengadakan eksperimen kecil untuk analisis opini. Tentunya detil teknis tidak saya tulisan di posting ini dan nanti bisa  dibaca di papernya. Data yang saya gunakan adalah tweet yang mengandung  kata  dua operator GSM di Indonesia. Saya kumpulkan dari bulan Agustus 2010 dan masih berlangsung sampai sekarang. Tapi untuk eksperimen ini, saya hanya gunakan sebagian data saja (35 ribuan tweet).

Beberapa hal  dari hasil eksperimen:

  • Dari tweet yang mengandung kata operator GSM tersebut, 65% mengandung opini.
  • Dari tweet opini tersebut, opini negatif mencakup 77%. Ini  masuk akal  karena orang biasanya saat puas diam, dan saat kesal menulis tweet negatif.
  • Kata-kata kunci (keyword)  yang ditemukan oleh software adalah: “emosi, mahal, bb ,<makian>, aneh,  jaringan, pulsa, provider, bis, paket, sms,  sinyal”.

 

Jika dibuat grafik, bentuknya seperti ini

 

Garis biru memperlihatkan opini negatif, sedangkan garis merah adalah opini positif.  Sumbu x adalah hari.  Terlihat opini negatif  mendominasi.  Analisis keyword juga dapat dilakukan per hari. Misalnya pada tanggal 9 September 2010,  satu hari menjelang  idul fitri, salah satu keyword yang menonjol adalah “cs”, yaitu customer support.  Contoh tweetnya:

“Susah bgt sih hubungin CS  [xxx]  ..sibuk2 mlulu”

 “tadi gua sempet nyolot22an sama CS nya [xxxx]   HAHAHA songong bet sih lau neng”

Ini mungkin disebabkan jumlah CS yang terbatas di  menjelang  idul fitri.

 

Tentunya masih banyak lagi hal-hal yang bisa digali, tapi  perlu eksperimen dan studi lebih lanjut, dan itu yang sedang saya lakukan bersama beberapa mahasiswa bimbingan saya   🙂

 

 

Iklan

40 tanggapan untuk “Analisis Tweet: Opini atau Sentimen”

  1. untuk topik ini, bagaimana bapak menentukan opini tresebut negatif atau positif (metodenya) ? saya mau nanya sedikit nih pak, kebetulan tugas akhir saya sama dengan topik yg bapak angkat dan akan saya publish metode saya di blog http://zeezaah.wordpress.com setelah sidang saya tanggal 27 januari 2012.

  2. saya pakai multinomial naive bayes. tidak ada proses preprocessing lain pak selain stopwords? misalnya pos tagger (kamus data) buat bahasa indonesia.?

      1. Domainnya tweet juga? kalau ya menarik. Dengan SVM? Bisa lihat papernya?

        Klasifikasi teks kalau dengan SVM memang bisa sampai 97%-98% (tergantung domain), cuma belum menemukan library SVM yang LGPL.

    1. setahu saya belum pernah ada kejadian, dan untuk apa? lebih banyak repotnya daripada manfaat. Twweet bisa kita dapat melalui search/stream atau kalau punya uang langsung ke firehose. FB lebih sulit, tapi kalau kita membuat applikasi yang tepat yang pengguna suka dan mau instal kita juga bisa dapat data milik pengguna.

      1. rencananya sih ngambil secara berkala di FB terus di tampilkan komentar (termasuk usernya) positip dan negatif atau normal. ini lagi nyoba bikin aplikasi FB nya terus maunya user yang pasang aplikasi itu bisa ambil rss komentar sebuah fanpage utk di klasifikasi secara terus menerus. Untuk kontrol komentar di FB.

        oya Pak, itu kalau pake datanya IMDB itu ken sudah dalam bhs inggris dan sering kali digunakan. Dimana saya bisa donload kumpulan opini positip dan kumpulan opini negatif berbahasa indonesia Pak ? porter stemming dalam indonesia sudah ada. Tagger itu juga sudah. Stopwords Indonesia sepertinya sudah ada juga ken ya pak. Kalau ada kumpulan opini tadi ya pak.
        Terus Pak, bagaimana kita bisa tau kalimat itu adalah sebuah opini apa tidak pak? Subjective classifer versi indonesia ?

        Mohon pencerahan, terimakasih.

      2. Menentukan opini atau tidak, sama dengan cara klasifikasi teks yang lain, misalnya spam. Tinggal data latihnya saja disesuaikan.

  3. materi di atas sangat membantu saya pak, soalnya penelitian saya juga mengarah ke sana, tapi yang saya masih binggung cara mengumpulkan twett yang bukan cara manual pak, tolong pencerahannya pak. terimakasih sebelumnya.

  4. Assalam.. salam kenal Pak..
    saya Yudhi, sedang mengambil TA tentang ini juga.., tetapi dengan menggunakan SVM..
    kira-kira ada jurnal atau referensi g y pak tentang pembahasan ini yang bisa bpk share atau ketahui..?
    sebelumnya makasih banyak.. 😀

  5. Nuhun bapak, post nya membantu sekali. Kalau misalnya ini kan objeknya dari Twitter ya,kalau dari Website seperti e-commerce kira2 bisa diimplementasikan gak ya dari product comments para customer di beberapa jenis produk yang dijual misalnya pak? Mohon bantuannya 🙂

  6. Terima kasih bapak telah share, sama seperti komentar diatas saya juga mengambil TA tentang topik ini. Saya menggunakan analisis berbasis web, tapi yang masih saya belum dapat data testing yang standart dan telah teruji. mungkin bapak bisa membantu? terima kasih

    1. Kalau untuk TA saya sarankan buat sendiri saja datasetnya. Biar proses belajarnya lebih banyak. Mhs saya ada yg sudah membuat datasetnya, tapi karena itu dataset twitter, tidak legal untuk didistribusikan (sebenarnya disimpan juga tidak boleh sih).

  7. Assalamualaikum Pak,
    Saya mau tanya cara menentukan timing dari pengambilan tweetnya bagaimana ya Pak? Terima kasih sebelumnya 🙂

    1. Lupa, kalau tidak salah 5 menit sekali. Ada batasan dari Twitter tentang jumlah request maksimum dalam satuan waktu tertentu. Kalau tidak salah sekarang itu batasannya 300 req per 15 menit.

  8. Assalamualaikum Pak,
    Saya ingin bertanya, kebetulan tugas akhir saya mengenai analisis sentimen, tapi saya masih bingung bagaimana caranya crawling data twitter dan di masukan ke dalam databasenya pak. terima kasih pak atas jawabannya 🙂

    1. banyak kok di internet, googling saja dengan keyword “tweet crawling”. Untuk memindahkan ke database, pelajari dulu tentang JSON, library untuk membaca JSON juga ada.

    1. You can employ any language independent text classification method (SVM is known as the best text classification algorithm). For Indonesian language, the differences are on the preprocessing steps: stopwords removal and stemming. One of tools/app for classification: Weka.

  9. Assalamualaikum, pak saya mencoba melakukan proses sentimen pada tweet berbahasa Inggris, untuk tools saya memakai R Programming pak, disitu sudah ada fungsi untuk melakukan sentimen menggunakan Naive Bayes, yang saya mau tanyakan, apakah bisa kita melakukan proses perhitungan manual untuk penentuan sentimen tadi dengan Naive Bayes tanpa data training ?

  10. pak saya ada tugas akhir ttg analisi sentimen menggunakan R, saya terkendala di kamus nya pak, maaf pak, bisakah bapak membagi kamus yang bapak gunakan? terimakasih pak sebelumnya.

      1. Tidak menggunakan itu. Lagipula anda gampang kok buatnya, tinggal amati data atau menggunakan asumsi standard, misalnya negatif = “males”, “capek” dst.

  11. selamat malam pak, saya kebetulan sedang mengambil topik skripsi tentang analisis sentimen data twitter secara realtime. menurut bapak, metode apa yang dapat digunakan dengan baik? yang tidak memerlukan data training? makasih sebelumnya pak 🙂

  12. siang pak,,saya mau tanya berhubung saat ini menyusun TA tentang sentimen analisis twitter terhadap pelayanan bpjs hanya saja metode yng tepat belum tau apa,, mohon bantuannya pak.terimahkasih byk pak.

  13. selamat pagi pak, kebetulan TA saya tentang klasifikasi sentimen review film (positif/negatif) mggunakan naive bayes , namun utk kategori bahasa indonesia apa saja yg harus dipersiapkan pak ?

  14. malam pak. saya sama sperti lainnya. saya mengambil judul tugas akhir saya yaitu penerapan sentimen analisis pelaksanaan vaksinasi mutakhir (Measles Rubella) berdasarkan Twitter. Nah menurut bapak, latar belakang saya mengambil judul tersebut karena banyaknya opini masyarakat positif dan negatif tentag vaksin MR ini. Dilakukannya analisis ini untuk memberikan rekomendasi agar pelaksanaan vaksinasi MR ini mencapai harapan program WHO, supaya tidak ada anti-vaksin/kontra vaksin, menurut bapak, masalah yang saya angkat ini apa ya pak? yang saya jelaskan belum masuk ke masalah menurut dosen pembimbing saya.

    1. Perlu dicek dulu data twitternya. Masalahnya sekarang pengguna twitter sudah jauh berkurang. Ditambah lagi dengan banyaknya bot dan spam, maka jumlah data real tentang opini vaksinasi bisa saja sangat sedikit. Kalau datanya sudah sedikit, ya akan sulit untuk diproses.

  15. maaf pa saya mau Tanya pa, dari penelitian diatas bapa menggunakan database apa ya pa kalo boleh tau, dan apakah tweet yang di cari, disimpan di database juga?

    1. Tidak perlu database, file teks juga bisa. Tapi memang menggunakan database akan memudahkan untuk menyimpan hasil. Saya lupa apakah waktu itu pake database datau file.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s