LOGIKA PROGRAM
Koddingan di bawah ini adalah pemanggilan pustaka yang ada pada bahasa R , diantaranya twitter, plyr, stringr, xlsx, ggplot2, ROAuth, dan dplyr
#connect all libraries
library(twitteR)
library(plyr)
library(stringr)
library(xlsx)
#library(ggplot2)
#library(ROAuth)
#library(dplyr)
Potongan koddingan di bawah berfungsi untuk akses ke data atau konten yang ada pada twitter
api_Key <- "___"
api_Secret <- "______"
accessToken <- "_____"
accessTokenSecret <- "______"
setup_twitter_oauth(api_key,api_secret, accessToken, accessTokenSecret)
Potongan koddingan dibawah berguna untuk mengscan bank data yang telah dibuat sebelum nya yaitu bank kata positif dan negative. Dalam membuat bank kata harus di simpan dalam .txt agar bisa di deteksi program
setwd("file:///Users/daniella/Desktop/")
pos = scan("positive-words.txt", what='character', comment.char=';')
neg = scan("negative-words.txt", what='character', comment.char=';')
Potongan di bawah adalah untuk pencarian kata negative atau positif dengan mnggunakan pustaka plyr dan string
score.sentiment = function(tweets, pos.words, neg.words)
{
require(plyr)
require(stringr)
Menghapus karakter grafis seperti emoticon
scores = laply(tweets, function(tweet, pos.words, neg.words) {
tweet = gsub('[^[:graph:]]','', tweet) #removes graphic characters like emoticons
Menghapus tanda baca
tweet = gsub('[^[:punct:]]','', tweet) #removes punctuation
Menghapus kontrol karakter
tweet = gsub('[^[:cntrl:]]','', tweet) #removes control characters
Menghapus angka
tweet = gsub('\\d+','', tweet) #removes numbers
tweet = str_replace_all(tweet, "[^[:graph:]]", "")
Membuat semua huruf kecil
tweet = tolower(tweet) #makes all letters lowercase
splits kata dalam tweet
word.list = str_split(tweet, '\\s+') #splits the tweet by word in a list
mengubah daftar ke dalam vektor
word = unlist(word.list) #turn the list into vector
Mengembalikan nilai pencocokan untuk kata-kata dari bank kata
pos.matches = match(words, pos.words)
neg.matches = match(words, neg.words)
Mencocokkan nilai ke benar atau salah (sesuai atau tidak dengan bank kata)
pos.matches = !is.na(pos.matches)
neg.matches = !is.na(neg.matches)
True atau false dihitung sebagai 0 dan 1 sehingga dapat ditambahkan
score = sum(pos.matches) - sum(neg.matches)
Pengembalian nilai score
return(score)
}, pos.words, neg.words)
scores.df = data.frame(score = scores, text = tweets)
return(scores.df)
}
Menemukan 100 tweet dalam bahasa Indonesia yang mengandung dari bank kata (ex: kw,crack,premium)dan mengambilnya dari twitter
piracywords <- c("kw", "crack", "premium")
needle <- paste(piracywords, collapse = " OR ")
tweets = searchTwitter(needle, n=100, lang = "id") #finding 100 tweets in Indonesian language that contain words above
Tweets.text = laply(tweets, function(t)t$getText()) #get text from tweets
Memanggil fungsi sentimen
analysis = score.sentiment(Tweets.text, pos, neg) #call sentiment function
membuat grafik histogram dari result
hist(analysis$score) #make histogram from the result
hasil dari program ke .xlsx
write.xlsx(analysis, "SentimentResult.xlsx") #extract the result into Excel file
Koddingan di bawah ini adalah pemanggilan pustaka yang ada pada bahasa R , diantaranya twitter, plyr, stringr, xlsx, ggplot2, ROAuth, dan dplyr
#connect all libraries
library(twitteR)
library(plyr)
library(stringr)
library(xlsx)
#library(ggplot2)
#library(ROAuth)
#library(dplyr)
Potongan koddingan di bawah berfungsi untuk akses ke data atau konten yang ada pada twitter
api_Key <- "___"
api_Secret <- "______"
accessToken <- "_____"
accessTokenSecret <- "______"
setup_twitter_oauth(api_key,api_secret, accessToken, accessTokenSecret)
Potongan koddingan dibawah berguna untuk mengscan bank data yang telah dibuat sebelum nya yaitu bank kata positif dan negative. Dalam membuat bank kata harus di simpan dalam .txt agar bisa di deteksi program
setwd("file:///Users/daniella/Desktop/")
pos = scan("positive-words.txt", what='character', comment.char=';')
neg = scan("negative-words.txt", what='character', comment.char=';')
Potongan di bawah adalah untuk pencarian kata negative atau positif dengan mnggunakan pustaka plyr dan string
score.sentiment = function(tweets, pos.words, neg.words)
{
require(plyr)
require(stringr)
Menghapus karakter grafis seperti emoticon
scores = laply(tweets, function(tweet, pos.words, neg.words) {
tweet = gsub('[^[:graph:]]','', tweet) #removes graphic characters like emoticons
Menghapus tanda baca
tweet = gsub('[^[:punct:]]','', tweet) #removes punctuation
Menghapus kontrol karakter
tweet = gsub('[^[:cntrl:]]','', tweet) #removes control characters
Menghapus angka
tweet = gsub('\\d+','', tweet) #removes numbers
tweet = str_replace_all(tweet, "[^[:graph:]]", "")
Membuat semua huruf kecil
tweet = tolower(tweet) #makes all letters lowercase
splits kata dalam tweet
word.list = str_split(tweet, '\\s+') #splits the tweet by word in a list
mengubah daftar ke dalam vektor
word = unlist(word.list) #turn the list into vector
Mengembalikan nilai pencocokan untuk kata-kata dari bank kata
pos.matches = match(words, pos.words)
neg.matches = match(words, neg.words)
Mencocokkan nilai ke benar atau salah (sesuai atau tidak dengan bank kata)
pos.matches = !is.na(pos.matches)
neg.matches = !is.na(neg.matches)
True atau false dihitung sebagai 0 dan 1 sehingga dapat ditambahkan
score = sum(pos.matches) - sum(neg.matches)
Pengembalian nilai score
return(score)
}, pos.words, neg.words)
scores.df = data.frame(score = scores, text = tweets)
return(scores.df)
}
Menemukan 100 tweet dalam bahasa Indonesia yang mengandung dari bank kata (ex: kw,crack,premium)dan mengambilnya dari twitter
piracywords <- c("kw", "crack", "premium")
needle <- paste(piracywords, collapse = " OR ")
tweets = searchTwitter(needle, n=100, lang = "id") #finding 100 tweets in Indonesian language that contain words above
Tweets.text = laply(tweets, function(t)t$getText()) #get text from tweets
Memanggil fungsi sentimen
analysis = score.sentiment(Tweets.text, pos, neg) #call sentiment function
membuat grafik histogram dari result
hist(analysis$score) #make histogram from the result
hasil dari program ke .xlsx
write.xlsx(analysis, "SentimentResult.xlsx") #extract the result into Excel file