Rabu, 09 Mei 2018

Sentiment Analysis

Pengertian
Opinion Mining / Sentiment Analysis (sebagian besar researcher menganggap dua istilah ini sama/interchangeable) merupakan sebuah cabang penelitian di domain Text Mining yang mulai booming pada awal tahun 2002-an. Riset-nya mulai marak semenjak paper dari B.Pang dan L.Lee keluar. Secara umum, Sentiment analysis ini dibagi menjadi 2 kategori besar :

1.                  Coarse-grained sentiment analysis
2.                  Fined-grained sentiment analysis

1.      Coarse-grained sentiment analysis - kita mencoba melakukan proses analysis pada level Dokumen. Singkatnya adalah kita mencoba mengklasifikasikan orientasi sebuah dokumen secara keseluruhan. Orientasi ini ada 3 jenih : Positif, Netral, Negatif. Akan tetapi, ada juga yang menjadikan nilai orientasi ini bersifat kontinu / tidak diskrit.

2.      Fined-grained sentiment analysis - kategori kedua ini yang sedang Naik Daunsekarang. Maksudnya adalah para researcher sebagian besar fokus pada jenis ini. Obyek yang ingin diklasifikasi bukan berada pada level dokumen melainkan sebuah kalimat pada suatu dokumen.

Contoh :

-          Saya tidak suka programming. (negatif)
-          Hotel yang baru saja dikunjungi sangat indah sekali. (positif)

Hingga sekarang, hampir sebagian besar penelitian di bidang sentiment analysis hanya ditujukan untuk Bahasa Inggris karena memang Tools/Resources untuk bahasa inggris sangat banyak sekali. Beberapa resources yang sering digunakan untuk sentiment analysis adalah SentiWordNet dan WordNet.

Sentiment analysis terdiri dari 3 subproses besar [2]. Masing-masing subproses ini bisa kita jadikan bahan/topik riset secara terpisah karena masing-masing subproses ini membutuhkan teknik yang tidak mudah :

1.                  Subjectivity Classification
2.                  Orientation Detection
3.                  Opinion Holder and Target Detection


     a.)    Subjectivity Classification - menentukan kalimat yang merupakan opini.

·                     A bike has 2 wheels VS It is a good bike !


    b.)    Orientation Detection - setelah berhasil diklasifikasi untuk kategori Opini, sekarang kita tentukan apakah dia positif, negatif, netral ?

·                     It is a good bike ! VS ah, It is a bad bike !

    c.)    Opinion Holder and Target Detection - menentukan bagian yang merupakan Opinion Holder dan bagian yang merupakan Target.

·                     Harry said it is a good bike.

Contoh Kasus
Pada contoh kasus ini saya ingin membuat sentiment analisys menggunakan API dari Facebook menggunakan bahasa pemrograman python. Disini saya akan memblok kata-kata mesum yang ada pada komentar facebook.

Pertama kita install dulu Pythonnya. Kami menggunakan Python versi 3.6.  


Setelah menginstall Ptyhonya, buka CMD  lalu install wordcloud. ketikkan seperti ini.
"pip install wordcloud"
Setelah itu, kita harus mempersiapkan Facebook APInya. Pertama lakukan registrasi pada website facebook for developer lalu buat project baru dan login dengan  akun facebook pribadi. Gunakan fitur API graf untuk dapat mengekses informasi-informasi yang ada pada Facebook.




Kemudian kita klik Graft API exproler. kami memilih project yang telah dibuat tadi agar mendapatkan informasi pribadi tentang akun yang diperlukan. Namun jika tidak dapat juga menggunakan graph API explorer. Seperti gambar diatas
Kemudian klik tombol dapatkan token untuk mendapatkan code token yang kita butuhkan untuk menghubungkan program dengan Facebook API. Lalu pilih jenis informasi apa yang ingin  diakses.

 

Kemudian klik dapatkan token akses. Token akses tersebut hanya berlaku selama 2 jam saja.


 
Selanjutnya kita mulai koding pada python nya. Pertama import libary yang dibutuhkan
 
Lalu buat variabel untuk menyimpan nilai graf version, token, id user, dan id postingan tersebut.

 
Setelah itu kita masukkan kodingan untuk mengambil data dari graft API facebook.
 

Bisa dilihat jika data diambil dari komentar sebuah postingan, dan nantinya komentar-komentar tersebut akan tersimpan pada variabel comment yang bertipe array. Dan data-data tersebut akan disimpan pada file berekstensi .txt. Ketikkan lagi seperti ini.

 
Selanjutnya kita buat agar file comments.txt tadi dijalankan oleh wordcloud dan akan diberikan kata apa saja yang sering muncul.

 
Kemudian kita save lalu beri nama scrapping.py. Dan coba jalankan melalui CMD dengan mengetikkan "py scrapping.py". Program akan memulai proses mining data seperti berikut.

 
Dan ini adalah hasil dari generate wordcloud nya.

 
                                                     Hasil diatas adalah ukuran maksimal kata
 

                                             Dan yang ini diatur panjang text nya 40



Sumber : http://alfan-farizki.blogspot.co.id/2011/01/apa-itu-sentiment-analysis-opinion.html