library(wordcloud) library(tm) library(textclean) library(tidytext) library(ggplot2) library(parallel) library(tokenizers) library(tau) library(NLP) library(stringr) library(devtools) library(quanteda) library(kayadata) library(syuzhet) library(e1071) library(sentimentr) library(SentimentAnalysis) library(dplyr) library(GGPLO) library(pacman) pacman::p_load_gh(“trinker/textstem”)

pacman::p_load(textstem, dplyr)

ikn rev <- ikn$full_text head(rev)

lower case = mengubah huruf kapital menjadi huruf kecil

rev <- tolower(rev) head(rev)

#Mengembalikan Kata yang disingkat Menjadi Kata Aslinya rev <- replace_contraction(rev) head(rev)

#Mengembalikan Kata yang Mengalami Perpanjangan Menjadi Kata Aslinya rev <- replace_word_elongation(rev) head(rev)

#Menghapus simbol rev <- strip(rev) head(rev)

#stemming/lemmatizing = kata dasar stem_strings(rev)

lemmatize_strings(rev)

sc<-c(“driver”,“drive”,“drove”,“driven”,“drives”,“driving”)

stem_words(sc) lemmatize_words(sc)

#tokenisasi = metode untuk melakukan pemisahan kata dalam suatu kalimat dengan

rev <- rev %>% rev()

rev

#menghapus kata penghubung rev <-removeWords(rev, c(“di”,“dan”,“yang”,“akan”,“agar”,“seperti”,“yaitu”,“kami”,“kami”, “mari”,“pada”,“jelang”,“dimana”,“dengan”,“sudah”,“ini”,“seluruh”, “diminta”,“tak”,“itu”,“hai”,“bisa”,“wib”,“oleh”,“mai”,“jam”, “masa”,“berikut”,“kalau”,“klik”,“ibodwq”,“terd”,“httpstconvv”, “httpstcoxu”,“yzmrlyx”,“tahapan”,“refaabdi”,“kota”,“kpu”,“kpuid”,“rt”,“hingga”,“saat”, “belum”,“apa”,“sih”,“suara”,“pesta”,“dindap”,“http”,“httpstco”,“asn”,“bakal”)) head(rev) write.csv(rev,file = “C:.csv”, row.names = F)

##Membuat Word Cloud #Mengubah Data Frame Menjadi Data Faktor tdm <- TermDocumentMatrix(rev) m <- as.matrix(tdm) v <- sort(rowSums(m),decreasing = TRUE) #Mengubah Data Faktor Menjadi Data Frame d <- data.frame(word = names(v), freq = v)

wordcloud(d\(word, d\)freq, random.order = FALSE, max.words = 500, colors = brewer.pal(name = “Dark2”,8 ))

tdm <- TermDocumentMatrix(rev, control = list(wordLengths = c(1, Inf))) tdm

inspect frequent words

(freq.terms <- findFreqTerms(tdm, lowfreq = 50)) term.freq <- rowSums(as.matrix(tdm)) term.freq <- subset(term.freq, term.freq >= 50) df <- data.frame(term = names(term.freq), freq = term.freq) ggplot(df, aes(x = term, y = freq)) + geom_bar(stat = “identity”) + xlab(“Terms”) + ylab(“Count”) + coord_flip()

which words are associated with ‘ikn’?

findAssocs(tdm, “pemilu”, 0.25)

which words are associated with ‘jokowi’?

findAssocs(tdm, “pilpres”, 0.2)

CLUSTER

#remove sparse terms tdm2 <- removeSparseTerms(tdm, sparse= 0.95) m2<- as.matrix(tdm2) m2 #cluster terms distMatrix <- dist(scale(m2)) fit<- hclust(distMatrix, method = “ward.D”)

plot(fit) rect.hclust(fit, k=6)

m3 <- t(m2) # transpose the matrix to cluster documents (tweets) set.seed(122) # set a fixed random seed k <- 6 # number of clusters kmeansResult <- kmeans(m3, k) round(kmeansResult$centers, digits = 2) # cluster centers

for (i in 1:k) { cat(paste(“cluster”, i, “:”, sep = ““)) s <- sort(kmeansResult$centers[i, ], decreasing = T) cat(names(s)[1:5],”“) # print the tweets of every cluster # print(tweets[which(kmeansResult£cluster==i)]) }

which words are associated with ‘pemilu’?

findAssocs (tdm, “pemilu”, 0.25)

which words are associated with ‘pilpres’?

findAssocs (tdm, “pilpres”, 0.2)

CLUSTER

#remove sparse terms I tdm2 <- removeSparseTerms (tdm, sparse = 0.95) m2 <- as.matrix(tdm2) m2

cluster terms

distMatrix <- dist(scale (m2))

fit <- hclust (distMatrix, method = “ward.D”)

plot(fit) rect.hclust(fit, k = 6)

m3 - t(m2) # transpose the matrix to cluster documents (tweets)

write.csv(rev,file = “C:.csv”, row.names = F)

library(rmarkdown)