Skip to content Skip to sidebar Skip to footer

Source Code Sentimen Analisis Twitter dengan R

Source Code Sentimen Analisis Twitter dengan R


Source Code Sentimen Analisis Twitter dengan R - 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 [1] keluar. Secara umum, Sentiment analysis ini dibagi menjadi 2 kategori besar :

1.      Coarse-grained sentiment analysis

2.      Fined-grained sentiment analysis

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.

Fined-grained sentiment analysis - kategori kedua ini yang sedang Naik Daun sekarang. 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.

Berikut dibawah ini merupakan tahapan dalam pembuatan sentiment analyst menggunakan Bahasa pemrograman r.

 

library(tidyverse)
library(tidytext)
library(rtweet)

#login
create_token(
app = "your_app",
consumer_key = "###",
consumer_secret = "###",
access_token = "###",
access_secret = "###")

#tweet analysis

search_term <- '#ChristmasEveEve'
by <- 'hour'


tweets <- search_tweets(
search_term, n = 10000, retryonratelimit = TRUE
)


tweets$date <- substr(tweets$created_at,1,10)
tweets <- tweets[tweets$date == '2019-12-23',]


rtweet::ts_plot(tweets, by = by, trim = 1) + geom_point() + theme_minimal() + labs(title = paste0('Tweets mentioning "',search_term,'" by ',by),
x = 'Date', y = 'Count', caption = 'Source: Twitter API')


#save
ggsave('tweet_volume.png',last_plot())

#sentiment
sentiment <- tweets[,3:5] %>% unnest_tokens(output = 'word', input = 'text')

#add sentiment dataset
sentiment_dataset <- get_sentiments("afinn")
sentiment_dataset <- arrange(sentiment_dataset, -value)

#merge
sentiment <- merge(sentiment, sentiment_dataset, by = 'word')

#clean
sentiment$word <- NULL
sentiment$screen_name <- NULL

#time
sentiment$hour <- format(round(sentiment$created_at, units="hours"), format="%H:%M")

#pivot
pivot <- sentiment %>%
group_by(hour) %>%
summarise(sentiment = mean(value))

#plot
ggplot(pivot[-1,], aes(x = hour, y = sentiment)) + geom_line(group = 1) + geom_point() + theme_minimal() + labs(title = paste0('Average sentiment of tweetings mentioning "',search_term,'"'),
subtitle = paste0(pivot$hour[2],' - ',pivot$hour[nrow(pivot)],' on ', format(sentiment$created_at[1], '%d %B %Y')),
x = 'Date', y = 'Sentiment', caption = 'Source: Twitter API')
ggsave('tweet_sentiment.png',last_plot(), width = 8, height = 6)

Post a Comment for "Source Code Sentimen Analisis Twitter dengan R"

close