Testing Sentiment Analysis pada Facebook menggunakan RStudio


Untuk menyelesaikan tugas Deep Learning, kami dari Kelompok 4 yang beranggotakan:
1. Erico
2. Nalom
3. M. Tomi
4. Meltha

Disini kami akan mencoba membuat/mengembangkan/mencoba Program Sentiment Analysis pada kolom komentar yang bersifat SARA di facebook. Caranya sebagai berikut:

Pertama -tama kita perlu mempersiapkan beberapa hal:
·       R dan Rstudio
·       Akun facebook developer
·       Kita dapat membuat akun facebook developer di https://developers.facebook.com/
·       Token Akses dari Penjelajah API Graf

Kita bisa mendapatkan token akses dari API Graph Explorer dengan cara pada  https://developers.facebook.com/ pilih Alat & Dukungan, pilih Penjelajah API Graf kemudian akan muncul tampilan seperti ini.




Pilih, dapatkan token dan izinnya, centang semua lalu pilih dapatkan token akses.


Kita perlu simpan token akses yang dihasilkan (*Token Akses ini hanya berlaku sampai 2 jam, lebih dari itu perlu membuatnya lagi.)



Kemudian, kita jalankan Program Rstudio nya dan ketikkan sebagai berikut: 
install.packages("devtools")
install.packages("plyr")
install.packages("stringr")
install.packages("ggplot2")# Install
install.packages("tm")  # for text mining
install.packages("SnowballC") # for text stemming
install.packages("wordcloud") # word-cloud generator
install.packages("RColorBrewer") # color palettes
(Perintah ini berguna untuk menginstall packages yang kita butuhkan)

Ketikkan lagi:
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
library(plyr)
library(stringr)
library(ggplot2)
library(devtools)
(Perintah ini berguna menggunkan package yang tadi sudah kita download)

Masukkan lagi perintah ini:            
install_github("pablobarbera/Rfacebook/Rfacebook")
library(Rfacebook)
(Perintah ini berguna untuk menginstall package berdasarkan link github dan langsung menggunakan package tersebut)

Untuk memakai API Facebook kita perlu memasukkan token akses yang tadi sudah kita persiapkan dengan perintah
fb_auth = 'token akses' 

Pada twitter kita bisa mengambil postingan orang dengan bebas, tapi beda halnya dengan Facebook sekarang sudah tidak bisa lagi, maka kita perlu mencari halaman pada facebook untuk dilihat postingannya dengan perintah:
fb_page <- getPage(page="TirtoID", token=fb_auth, n = 150,  feed = FALSE, reactions = TRUE,  verbose = TRUE, api = "v2.9")

Setelah itu kita perlu melihat hasil yang didapatkan dengan perintah
View(fb_page)


Setelah melihat hasilnya, kita perlu memilih postingan mana yang akan diambil komentarnya dan mengubahnya menjadi dataframe serta melihat hasilnya kembali. Perintahnya
fb_post <- getPost(post = '1515768312081946_2037957289863043', n=139, token=fb_auth,api = "v2.9")
fb_post_df <- as.data.frame(fb_post[2])
View(fb_post_df)


Setelah itu komen yang kita dapatkan masih belum bersih dari tanda baca, kita perlu membersihkannya dan melihat hasilnya lagi dengan perintah
comments_data <- sapply(fb_post_df$comments.message,function(row) iconv(row, "latin1", "ASCII", sub=""))
comments_data <- gsub("@\\w+", "", comments_data)
comments_data <- gsub("#\\w+", '', comments_data)
comments_data <- gsub("RT\\w+", "", comments_data)
comments_data <- gsub("http.*", "", comments_data)
comments_data <- gsub("RT", "", comments_data)
comments_data <- sub("([.-])|[[:punct:]]", "\\1", comments_data)
comments_data <- sub("(['])|[[:punct:]]", "\\1", comments_data)
View(comments_data)






Kemudian data yang sudah bersih tadi dapat kita analisis dan dibuatkan gambar. Caranya kita perlu masukkan data yang sudah bersih tadi ke Corpus, periksa isi dokumen tersebut dan mengubah teks dalam data tersebut menjadi huruf kecil, menghapus angka, dan yang lainnya dengan perintah:
         docs <- Corpus(VectorSource(comments_data))
         inspect(docs)
         # Convert the text to lower case
         docs <- tm_map(docs, content_transformer(tolower))
         # Remove numbers
         docs <- tm_map(docs, removeNumbers)
         # Remove english common stopwords
         docs <- tm_map(docs, removeWords, stopwords("english"))
         # Remove your own stop word
         # specify your stopwords as a character vector
         docs <- tm_map(docs, removeWords, c("blabla1", "blabla2"))
         # Remove punctuations
         docs <- tm_map(docs, removePunctuation)
         # Eliminate extra white spaces
         docs <- tm_map(docs, stripWhitespace)

     Kemudian kita mulai menganalisa kata-kata yang sering muncul pada data tersebut, dengan perintah:
        dtm <- TermDocumentMatrix(docs)
        m <- as.matrix(dtm)
        v <- sort(rowSums(m),decreasing=TRUE)
        d <- data.frame(word = names(v),freq=v)
        head(d, 10)





Kita dapat membuat word cloud dari data yang sudah dianalisa tersebut dengan perintah sebagai berikut:
         set.seed(1234)
         wordcloud(words = d$word, freq = d$freq, min.freq = 1,
         max.words=200, random.order=FALSE, rot.per=0.35,
         colors=brewer.pal(8, "Dark2"))




Komentar

  1. Min saya udah coba tes tentang mining datanya tapi pas udah nyampe di tahap fb_page <- nya error. Kenapa ya min?

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

All About Big Data

Bank Latihan soal UU Algoritma & Pemrograman 2 Gunadarma

Merubah Warna Pada Object Video Tertentu Menggunakan Aplikasi Adobe After Effect