Analisis Tweet: Opini atau Sentimen

26 December 2011 at 19:49 | Posted in penelitian, text processing, twitter | 31 Comments

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  🙂

 

 

31 Comments »

RSS feed for comments on this post. TrackBack URI

  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.

    • yg paling simple: naive bayes. Akurasinya sudah 90%-an. Belum coba teknik lain.

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

  3. bisa ndk nembus twitter or FB utk bisa langsung dimasukin ke database ?

    • 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.

      • 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.

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

  4. 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.

    • Sudah dibahas di posting saya sebelumnya.

  5. […] posting   https://yudiwbs.wordpress.com/2011/12/26/analisis-twee-analisis-opini-sentimen/  tahun ini  promotor saya, Lia dan   saya tentunya mengajukan tema analisis sentimen pada […]

  6. 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..😀

    • banyak di scholar.google.com

  7. 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🙂

  8. 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

    • 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).

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

    • 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.

  10. 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🙂

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

  11. what are the methods or algorithms used for sentiment analysis? especially for indonesian language? and what are tools or application that can be used? thanks for the reply.

    • 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 preprocessing steps: stopwords removal and stemming. One of tools/app for classification: Weka.

  12. 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 ?

    • baca dulu deh tentang naive bayes itu apa.

  13. 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.

    • kamus apanya ya? saya untuk sentimen tidak menggunakan kamus.

      • kamus yang berisi bahasa negatif, positif, dan negasi pak

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

  14. 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🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: