Analisis Clustering

Analisis clustering adalah proses pengelompokkan data atau objek kedalam kelompok atau klaster berdasarkan kesamaan karakteristik tertentu. Tujuan utama dari analisis clustering adalah untuk mengidentifikasi struktur tersembunyi dalam data dan mengelompokkan objek yang serupa ke dalam claster yang sama. Tekhnik ini sangat berguna dalam pengelompokkan data, pengurangan dimensi, dan pemahaman pola yang mungkin sulit ditemukan secara manual. Tujuan Analisis clustering:

Tahapan dalam melakukan Analisis clustering

  1. Load library
library(wordcloud)    #menciptakan visualisasi awan kata(word cloud) dari sebuah teks.
## Loading required package: RColorBrewer
library(tm)  #Melakukan penambangan, teks termasuk pembersihan teks, pengindeksan, dan representasi dokumen.
## Loading required package: NLP
library(textclean)  #Membersihkan teks dari karakter atau pola tertentu.
library(tidytext)  #Memanipulasi dan menganalisis data teks dengan memanfaatkan struktur data tidy.
library(ggplot2)  #Membuat grafik dengan menggunakan pendekatan berbasis lapisan(layered) dalam bahasa R.
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:NLP':
## 
##     annotate
library(parallel)  #Mempercepat beberapa operasi.
library(tokenizers)  #Membagi teks menjadi token.
library(tau)  #Paket analisis teks untuk bahasa R.
library(NLP)  #Memproses dan menganalisis teks dalam bahasa R.
library(stringr)  #Memanipulasi dan melakukan analisis string di R.
library(devtools)  #Memfasilitasi pengembangan paket di R.
## Loading required package: usethis
library(quanteda)  #Menganalisis teks kuantitatif.
## Package version: 3.3.1
## Unicode version: 15.1
## ICU version: 74.1
## Parallel computing: 2 of 2 threads used.
## See https://quanteda.io for tutorials and examples.
## 
## Attaching package: 'quanteda'
## The following object is masked from 'package:tm':
## 
##     stopwords
## The following objects are masked from 'package:NLP':
## 
##     meta, meta<-
library(kayadata)  
library(syuzhet)  #Alat analisis sentimen.
library(e1071)  #Menyediakan implementasi yang kuat untuk SVM(Support Vector Machiness) dan algoritma dalam statistik.
library(sentimentr)  #Paket analisis sentimen di R.
## 
## Attaching package: 'sentimentr'
## The following object is masked from 'package:syuzhet':
## 
##     get_sentences
library(SentimentAnalysis)  #Alat analisis sentimen di R.
## 
## Attaching package: 'SentimentAnalysis'
## The following object is masked from 'package:base':
## 
##     write
library(dplyr)  #Memanipulasi dan menggabungkan data frame dengan cara yang bersih dan efisien.
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(pacman)  #Mengurai kata-kata dalam teks menjadi bentuk dasar (stemming).

pacman::p_load_gh("trinker/textstem")

pacman::p_load(textstem, dplyr)
  1. Input data
set.seed(1234)
library(readr)
## 
## Attaching package: 'readr'
## The following object is masked from 'package:koRpus':
## 
##     tokenize
## The following object is masked from 'package:tau':
## 
##     tokenize
GOLKAR <- read_csv("C:/Users/ASUS/Documents/SEMESTER 5/KOMPSTAT LANJUT/GOLKAR.csv")
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 180 Columns: 1
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): full_text
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
rev <- GOLKAR$full_text
head(rev)
## [1] "SUDAH DAPAT DI TEBAK ENDING DARI SEMUA INI, LIHAT BEBERAPA TAHUN KEDEPAN KALAU BENERAN TERPILIH.. https://t.co/K9quBe55yj"
## [2] "gw tau politik tuh dinamis, tapi yang ini beneran NGEBINGUNGIN"                                                           
## [3] "Bapaknya setuju gak nih?"                                                                                                 
## [4] "Politik dinasti selangkah lagi"                                                                                           
## [5] "Politik dinasti is real kah?"                                                                                             
## [6] "Jadi gibran udah ga di partai banteng lagi, pindah ke beringin atau gimana?"
  1. Text cleaning

Text cleaning adalah proses untuk memperbaiki dan membersihkan data dari kesalahan, ketidakakuratan dan noise.

set.seed(123)
rev <- tolower(rev)  #lower case (mengubah huruf kapital menjadi huruf kecil)
rev <- replace_contraction(rev)  #Mapping (Mengembalikan Kata yang disingkat Menjadi Kata Aslinya)
rev <- replace_word_elongation(rev)  #Mengembalikan Kata yang Mengalami Perpanjangan Menjadi Kata Aslinya

rev <- strip(rev)  #Menghapus simbol


rev <- stem_strings(rev)  #Proses stemming yang dilakukan pada keseluruhan string atau dokumen  
rev <- lemmatize_strings(rev)  #Proses lemmatisasi yang di lakukan pada keseluruhan string atau dokumen
sc<-c("driver","drive","drove","driven","drives","driving")
stem_words(sc)  #Proses stemming yang dilakukan pada setiap kata secara terpisah dalam suatu teks
## [1] "driver" "drive"  "drove"  "driven" "drive"  "drive"
lemmatize_words(sc)  #Proses lemmatisasi yang dilakukan pada setiap kata secara terpisah dalam suatu teks
## [1] "driver" "drive"  "drive"  "drive"  "drive"  "drive"
head(rev)
## [1] "sudah dapat di tebak end dari semua ini lihat beberapa tahun kedepan kalau beneran terpilih httpstcok qube yj"
## [2] "gw tau politik tuh dinami tapi yang ini beneran ngebingungin"                                                 
## [3] "bapaknya setuju gak nih"                                                                                      
## [4] "politik dinasti selangkah lagi"                                                                               
## [5] "politik dinasti i real kah"                                                                                   
## [6] "jadi gibran udah ga di partai banteng lagi pindah ke beringin atau gimana"
rev <- rev %>%  #Tokensasi (Metode untuk melakukan pemisahan kata dalam suatu kalimat)
  rev()
#Menghapus kata penghubung
rev <-removeWords(rev, c("ternyata","buat","yakin","red","sdh","ikut","tahun","milih","emang","bye","ibu","abi","gimana","gitu","hal","kasian","sah","klo","nih","atau","deh","pen","sama","menurut","sudah","kemaren","keluarga","bukan","tapi","lagi","apa","semua","kayak","kalian","saja","untuk","lebih","baru","belum","jauh","bapak","amin","jika","capr","akan","jurkam","usung","dengan","sendirikan","beneran","pengalaman","wkwk","blunder","mega","haru","banget","orang","kalau","masih","saya","kamil","pilih","kok","lah","tapi","sih","mau","udah","punya","bisa","anak","aja","cawapr","besar","kalo","nya","yang","you","ada","itu","dan","dari","gak","pak","dia","lie","ini","jadi","httpstco","banyak","bakalan","banyak","solo","kan","pemilik","putaran","bener","selama","jangan","kemarin","kali","juga","tiba","sendiri","siapa","katanya","bikin","bocil","bakal","pasti","tinggal","bagu","agar","kan","bakalan","banyak","pernah","ma","yg","di","ga","gw","jd","ke","mk","tp"))
  1. Wordcloud
    Wordcloud adalah representasi visual dari data teks. Wordcloud dibuat dengan cara menghitung frekuensi kemunculan setiap kata dalam teks, kemudian menampilkan kata-kata tersebut dengan ukuran yang proposional dengan frekuensinya. Kata-kata yang sering muncul akan ditampilkan dengan ukuran yang lebih besar, sedangkan kata-kata yang jarang muncul akan ditampilkan dengan ukuran yang lebih kecil.
#Mengubah Data Frame Menjadi Data Faktor
tdm <- TermDocumentMatrix(rev)
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing = TRUE)
d <- data.frame(word = names(v), freq = v)
wordcloud(d$word, d$freq,
          random.order = FALSE,
          max.words = 25,
          colors = brewer.pal(name = "Dark2",8))

############################

tdm <- TermDocumentMatrix(rev,
                          control = list(wordLengths = c(1, Inf)))
tdm
## <<TermDocumentMatrix (terms: 873, documents: 180)>>
## Non-/sparse entries: 1131/156009
## Sparsity           : 99%
## Maximal term length: 96
## Weighting          : term frequency (tf)
# inspect frequent words (Memeriksa kata yang sering muncul)
(freq.terms <- findFreqTerms(tdm, lowfreq = 5))
##  [1] "golkar"      "partai"      "gibran"      "pdip"        "prabowo"    
##  [6] "kader"       "dinasti"     "politik"     "gibrantweet" "jokowi"     
## [11] "kekuasaan"   "kalah"
term.freq <- rowSums(as.matrix(tdm))
term.freq <- subset(term.freq, term.freq >= 5)
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()

5. Analisis Clustering

# remove sparse terms(menghapus kata yang jarang muncul)
tdm2 <- removeSparseTerms(tdm, sparse = 0.95)
m2 <- as.matrix(tdm2)
m2
##          Docs
## Terms     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
##   golkar  1 0 0 1 0 0 0 0 1  0  0  0  2  0  0  0  0  0  0  0  0  0  1  0  0  0
##   partai  1 0 0 0 0 0 0 1 0  0  2  0  2  0  0  0  2  3  0  0  0  0  0  0  0  0
##   gibran  0 0 1 0 0 0 1 0 0  0  1  0  0  0  0  0  0  0  0  0  0  0  1  2  0  0
##   prabowo 0 0 0 0 0 0 1 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##   kader   0 0 0 0 0 0 0 2 1  0  0  0  4  0  0  0  0  0  0  0  0  0  1  0  0  0
##   dinasti 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0
##   politik 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##          Docs
## Terms     27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
##   golkar   0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0
##   partai   0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0
##   gibran   0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##   prabowo  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##   kader    0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0
##   dinasti  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##   politik  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##          Docs
## Terms     50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
##   golkar   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  1  0
##   partai   0  0  0  0  0  0  0  0  1  0  0  0  0  0  2  0  0  0  0  0  0  0  0
##   gibran   0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1
##   prabowo  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1
##   kader    0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0
##   dinasti  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##   politik  0  0  2  1  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0
##          Docs
## Terms     73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
##   golkar   1  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  2  0
##   partai   0  1  0  0  0  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  1  1  0
##   gibran   1  0  0  1  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  1
##   prabowo  1  0  0  0  0  0  0  1  0  0  0  0  0  1  0  0  0  0  0  1  0  0  1
##   kader    0  2  0  0  0  0  0  1  0  0  0  0  1  0  0  0  0  0  0  0  1  0  0
##   dinasti  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##   politik  0  0  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  1  0
##          Docs
## Terms     96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
##   golkar   0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   partai   0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   gibran   0  0  0  0   0   0   0   0   0   0   0   1   0   0   0   0   0   0
##   prabowo  0  1  0  0   0   0   1   0   0   0   0   0   0   0   0   0   0   0
##   kader    0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   dinasti  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   2   0   0
##   politik  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##          Docs
## Terms     114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
##   golkar    0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   partai    0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   gibran    0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   prabowo   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   kader     0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   dinasti   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   politik   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1
##          Docs
## Terms     131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
##   golkar    0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0
##   partai    0   0   0   0   0   0   0   0   0   0   0   0   0   1   1   0   0
##   gibran    0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0
##   prabowo   0   0   0   1   0   0   0   0   0   0   1   0   0   0   0   0   0
##   kader     0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   dinasti   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0
##   politik   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0
##          Docs
## Terms     148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
##   golkar    0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   partai    0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   gibran    0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0   0
##   prabowo   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   kader     0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   dinasti   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0   0
##   politik   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0
##          Docs
## Terms     165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
##   golkar    0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   partai    0   0   0   0   0   0   0   0   3   0   1   0   0   0   0   0
##   gibran    0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0
##   prabowo   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
##   kader     0   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0
##   dinasti   1   0   0   0   1   1   1   0   0   1   0   1   1   0   0   0
##   politik   1   0   0   0   1   0   1   0   0   1   0   1   1   0   1   0
# cluster terms
#Metode Hierarki
distMatrix <- dist(scale(m2))
fit <- hclust(distMatrix, method = "ward.D")
plot(fit)
rect.hclust(fit, k = 4) # cut tree into 4 clusters

# Metode Kmeans
m3 <- t(m2) # transpose the matrix to cluster documents (tweets)
set.seed(122) # set a fixed random seed
k <- 4 # number of clusters
kmeansResult <- kmeans(m3, k) #Analisis Clustering K-Means
round(kmeansResult$centers, digits = 3) # cluster centers
##   golkar partai gibran prabowo kader dinasti politik
## 1  0.055  0.041  0.041   0.034 0.021   0.021   0.000
## 2  0.130  0.043  0.478   0.261 0.000   0.478   0.783
## 3  0.500  1.167  0.000   0.167 1.833   0.000   0.000
## 4  0.000  2.400  0.200   0.000 0.400   0.000   0.000
for (i in 1:k) {
  cat(paste("cluster ", i, ": ", sep = ""))
  s <- sort(kmeansResult$centers[i, ], decreasing = T)
  cat(names(s)[1:5], "\n")
  # print the tweets of every cluster
  # print(tweets[which(kmeansResult£cluster==i)])
}
## cluster 1: golkar partai gibran prabowo kader 
## cluster 2: politik gibran dinasti prabowo golkar 
## cluster 3: kader partai golkar prabowo gibran 
## cluster 4: partai kader gibran golkar prabowo
  1. Analisis Klasifikasi

Analisis sentimen

input data

setwd("C:/Users/ASUS/Documents/SEMESTER 5/KOMPSTAT LANJUT")
GOLKAR <- read.csv("data bersih GOLKAR.csv",sep = ";")
GOLKAR2 <- GOLKAR
View(GOLKAR2)

Membuat dataframe hanya untuk komentar positive

komentar_positif <- GOLKAR %>%
  filter(Sentimen =="positive")
komentar_positif<-komentar_positif$Full.text
head(komentar_positif)
## [1] "bapaknya setuju"                                                 
## [2] "alhamdulilah lanjut yuk segera deklarasi"                        
## [3] "nah  duonk sdh yakin jangan ragu nyebur bareng gentleman chucky "
## [4] "keren"                                                           
## [5] "dukung"                                                          
## [6] "gas"

Membuat dataframe menjadi data faktor

tdm_pos <- TermDocumentMatrix(komentar_positif)
tdm_pos
## <<TermDocumentMatrix (terms: 128, documents: 18)>>
## Non-/sparse entries: 134/2170
## Sparsity           : 94%
## Maximal term length: 12
## Weighting          : term frequency (tf)
m_pos <- as.matrix(tdm_pos)
v_pos <- sort(rowSums(m_pos),decreasing = TRUE)
head(v_pos)
##   partai    yakin cawapres  prabowo      hrs     deal 
##        5        2        2        2        2        2

Membuat data faktor menjadi dataframe

d_pos <- data.frame(word = names(v_pos), freq = v_pos)
head(d_pos)
##              word freq
## partai     partai    5
## yakin       yakin    2
## cawapres cawapres    2
## prabowo   prabowo    2
## hrs           hrs    2
## deal         deal    2
wordcloud(d_pos$word, d_pos$freq,
          random.order = FALSE,
          max.words = 10,
          min.freq = 2,
          colors = brewer.pal(name ="Dark2",8))

Buat dataframe hanya untuk komentar negative

komentar_negatif <- GOLKAR %>%
  filter(Sentimen =="negative")
komentar_negatif <- komentar_negatif$Full.text
head(komentar_negatif)
## [1] "gw tau politik tuh dinamis ngebingungin"
## [2] "politik dinasti selangkah"              
## [3] "politik dinasti is real kah"            
## [4] "politik dinasti"                        
## [5] "politik dinasti warga kabupaten bogor"  
## [6] "berlombalomba bangun dinasti "

Mengubah dataframe menjadi data faktor

tdm_neg <- TermDocumentMatrix(komentar_negatif)
tdm_neg
## <<TermDocumentMatrix (terms: 477, documents: 58)>>
## Non-/sparse entries: 679/26987
## Sparsity           : 98%
## Maximal term length: 17
## Weighting          : term frequency (tf)
m_neg <- as.matrix(tdm_neg)
v_neg <- sort(rowSums(m_neg),decreasing = TRUE)
head(v_neg)
##  partai   kader politik  golkar dinasti  gibran 
##      16      15      14      12      10      10

Menguabah data faktor menjadi dataframe

d_neg <- data.frame(word = names(v_neg), freq = v_neg)
head(d_neg)
##            word freq
## partai   partai   16
## kader     kader   15
## politik politik   14
## golkar   golkar   12
## dinasti dinasti   10
## gibran   gibran   10
wordcloud(d_neg$word, d_neg$freq,
          random.order = FALSE,
          max.words = 20,
          colors = brewer.pal(name = "Dark2",8))

Membuat dataframe hanya untuk komentar neutral

set.seed(1234)
komentar_neutral <- GOLKAR %>%
  filter(Sentimen =="neutral")
komentar_neutral <- komentar_neutral$Full.text
head(komentar_neutral)
## [1] "dapat tebak ending lihat beberapa tahun kedepan"        
## [2] "gibran ga partai banteng pindah ke beringin atau gimana"
## [3] "login"                                                  
## [4] "radityoutomo anjayy nyimak"                             
## [5] "bodo amat"                                              
## [6] "wow "

Mengubah dataframe menjadi data faktor

tdm_neutral <- TermDocumentMatrix(komentar_neutral)
tdm_neutral
## <<TermDocumentMatrix (terms: 89, documents: 17)>>
## Non-/sparse entries: 97/1416
## Sparsity           : 94%
## Maximal term length: 12
## Weighting          : term frequency (tf)
m_neutral <- as.matrix(tdm_neutral)
v_neutral <- sort(rowSums(m_neutral),decreasing = TRUE)
head(v_neutral)
## gibran   mega  tahun gimana   wkwk ganjar 
##      4      3      2      2      2      2

Mengubah data faktor menjadi dataframe

*Sebanyak 20% digunakan untuk menguji kinerja model

d_neutral <- data.frame(word = names(v_neutral), freq = v_neutral)
head(d_neutral)
##          word freq
## gibran gibran    4
## mega     mega    3
## tahun   tahun    2
## gimana gimana    2
## wkwk     wkwk    2
## ganjar ganjar    2
wordcloud(d_neutral$word, d_neutral$freq,
          random.order = FALSE,
          max.words = 10,
          min.freq = 5,
          colors = brewer.pal(name="Dark2",8))

Membagi data

#set nilai random generator
set.seed(1234)
library(caret)
## Loading required package: lattice
library(MatrixModels)

Membagi data *80% training, 20% testing

datasentiments <- GOLKAR2
bagi <- createDataPartition(datasentiments$Sentimen, p = 0.8, list=FALSE) 
training<- datasentiments[bagi,]
head(training)
##                                                 Full.text Sentimen
## 1         dapat tebak ending lihat beberapa tahun kedepan  neutral
## 2                 gw tau politik tuh dinamis ngebingungin negative
## 4                               politik dinasti selangkah negative
## 5                             politik dinasti is real kah negative
## 6 gibran ga partai banteng pindah ke beringin atau gimana  neutral
## 7                                         politik dinasti negative
testing<- datasentiments[-bagi,]
head(testing)
##                                                                                                   Full.text
## 3                                                                                           bapaknya setuju
## 10                                                                   waduh politik dinasti mulai digerakkan
## 16                                                                               radityoutomo anjayy nyimak
## 17                                                                                                bodo amat
## 24 tadinya diprediksi pasangan amin bakalan duel prabowo putaran kedua tp fix putaran amin vs ganjar mahfud
## 26                                                                                                    keren
##    Sentimen
## 3  positive
## 10 negative
## 16  neutral
## 17  neutral
## 24 negative
## 26 positive

Naive Bayes

modelNB <- naiveBayes(Sentimen~.,data=training)
head(modelNB)
## $apriori
## Y
## negative  neutral positive 
##       47       14       15 
## 
## $tables
## $tables$Full.text
##           Full.text
## Y           bapak anak sulung ntar anak bungsu abia mantu kakak ipar sodara deket paman bude besan cucuterakhir baru satpam pos depan
##   negative                                                                                                                 0.02127660
##   neutral                                                                                                                  0.00000000
##   positive                                                                                                                 0.00000000
##           Full.text
## Y           bukannya ngerugiin si gibran sendiri sayang banget padahal solo bagus kena cap politik dinasti putusan mk kemarin juga ke ngaruhnya negative  sampek pasangannya prab bakalan  idk
##   negative                                                                                                                                                                          0.02127660
##   neutral                                                                                                                                                                           0.00000000
##   positive                                                                                                                                                                          0.00000000
##           Full.text
## Y           cawapres prabowo gibrantweet dah pasti ambil aku yakin
##   negative                                              0.00000000
##   neutral                                               0.00000000
##   positive                                              0.06666667
##           Full.text
## Y           penggiat politik cuman penasaran  misalnya kemaren ganjar sm gibran pendukung pdip setuju ga
##   negative                                                                                    0.00000000
##   neutral                                                                                     0.07142857
##   positive                                                                                    0.00000000
##           Full.text
## Y           praboro jadiin cawapres yakin bakalan menang dikira rakyat indonesia bego capres abadi
##   negative                                                                              0.02127660
##   neutral                                                                               0.00000000
##   positive                                                                              0.00000000
##           Full.text
## Y          ahy harus belajar ketum partai  pemilik partai ga pernah ngemis ngemis minta capres bokapnya juga ga pernah jd pemilik partai apalagi ketum givran capres juga baru kemarin kemarin
##   negative                                                                                                                                                                          0.00000000
##   neutral                                                                                                                                                                           0.00000000
##   positive                                                                                                                                                                          0.06666667
##           Full.text
## Y          aku pendukung jokowi waktu ga dulu lihatlah negara betapa hukum dibalikkan kekuasaan mk mahkamah keluarga jokowi diakhir pemerintahan bapak bapak membuat banyak org kecewa
##   negative                                                                                                                                                                  0.02127660
##   neutral                                                                                                                                                                   0.00000000
##   positive                                                                                                                                                                  0.00000000
##           Full.text
## Y          alhamdulilah lanjut yuk segera deklarasi
##   negative                               0.00000000
##   neutral                                0.00000000
##   positive                               0.06666667
##           Full.text
## Y          apakah  hebat dr ridwan kamil sudahlah memang penjilat haus kekuasaan
##   negative                                                            0.02127660
##   neutral                                                             0.00000000
##   positive                                                            0.00000000
##           Full.text
## Y          banyak panas dingin merasa efek gibran ga berpengaruh ke harusnya santai inilah dinamika politik politik seni teman musuh abadi jg namanya pengkhianat kalem
##   negative                                                                                                                                                   0.02127660
##   neutral                                                                                                                                                    0.00000000
##   positive                                                                                                                                                   0.00000000
##           Full.text
## Y          bapak diatas sana katanya berpendidikan punya integritas tinggi tetiba jatoh marwah krn seorang bocil anak lurah akal sehatnya mendadak tumpul
##   negative                                                                                                                                     0.02127660
##   neutral                                                                                                                                      0.00000000
##   positive                                                                                                                                     0.00000000
##           Full.text
## Y          bentar bentar pdip skrg golkar mengundurkan diri ngerti hukum skrg
##   negative                                                         0.00000000
##   neutral                                                          0.00000000
##   positive                                                         0.06666667
##           Full.text
## Y          berlombalomba bangun dinasti 
##   negative                    0.02127660
##   neutral                     0.00000000
##   positive                    0.00000000
##           Full.text
## Y          blunder banget menurut gw awalnya gw mantep pilih prabowo dibanding lawannya stelah tau gibran wakilnya lgsg manuver ke timnya prof mahfud 
##   negative                                                                                                                                  0.02127660
##   neutral                                                                                                                                   0.00000000
##   positive                                                                                                                                  0.00000000
##           Full.text
## Y          blunder kang rk  menjanjikan andai ridwan kamil cawapres prabowo saya move on paslon ganjarmahfud
##   negative                                                                                        0.02127660
##   neutral                                                                                         0.00000000
##   positive                                                                                        0.00000000
##           Full.text
## Y          bocil atu nyawapres dgn cuman modal sprindik anak buah bokap sinting
##   negative                                                           0.02127660
##   neutral                                                            0.00000000
##   positive                                                           0.00000000
##           Full.text
## Y          bu mega sabot ganjar jd capres skor bu mega jokowi  gibran cawapres prabowo skor jokowi vs bu mega
##   negative                                                                                         0.00000000
##   neutral                                                                                          0.07142857
##   positive                                                                                         0.00000000
##           Full.text
## Y          curiga tes ombak kemaren pertama munculin berita eric sekarang gibran besok pasti keluar nama mereka pasti liat mana komen paling diterima masyarakat baru pilih
##   negative                                                                                                                                                       0.00000000
##   neutral                                                                                                                                                        0.07142857
##   positive                                                                                                                                                       0.00000000
##           Full.text
## Y          dapat tebak ending lihat beberapa tahun kedepan
##   negative                                      0.00000000
##   neutral                                       0.07142857
##   positive                                      0.00000000
##           Full.text
## Y          deal deal an politik nampak demokrasi tanpa dinasti
##   negative                  0.00000000              0.00000000
##   neutral                   0.00000000              0.00000000
##   positive                  0.06666667              0.06666667
##           Full.text
## Y          dinasti dinasty warrior     dukung ga bahaya ta wkwk ga kaget wkwk
##   negative              0.02127660 0.00000000        0.00000000    0.00000000
##   neutral               0.00000000 0.00000000        0.07142857    0.07142857
##   positive              0.00000000 0.06666667        0.00000000    0.00000000
##           Full.text
## Y                 gas
##   negative 0.00000000
##   neutral  0.00000000
##   positive 0.06666667
##           Full.text
## Y          gibran diajak kayak kursi roda ditarik ikut didorong pun ikut melihat situasi harusnya menolak supaya jangan memberikan kesan buruk ke keluarga
##   negative                                                                                                                                      0.02127660
##   neutral                                                                                                                                       0.00000000
##   positive                                                                                                                                      0.00000000
##           Full.text
## Y          gibran ga partai banteng pindah ke beringin atau gimana
##   negative                                              0.00000000
##   neutral                                               0.07142857
##   positive                                              0.00000000
##           Full.text
## Y          gilak partai segede golkar msh takut anak kisong songong
##   negative                                               0.02127660
##   neutral                                                0.00000000
##   positive                                               0.00000000
##           Full.text
## Y          gimana nasib  agus
##   negative         0.00000000
##   neutral          0.07142857
##   positive         0.00000000
##           Full.text
## Y          gmn ceritanya golkar  kader calon kocak beut masih wajar  calonin rk atau airlangga calonin dirinya sendiri nyalonin jurkam partai
##   negative                                                                                                                         0.02127660
##   neutral                                                                                                                          0.00000000
##   positive                                                                                                                         0.00000000
##           Full.text
## Y          golkar adalah partai sangat berpengalaman orde baru pengalaman memasangkan jenderal nepotisme
##   negative                                                                                    0.02127660
##   neutral                                                                                     0.00000000
##   positive                                                                                    0.00000000
##           Full.text
## Y          golkar awal  airlangga hartanto nyerongnya amat ke gibran kader pdip pdhl misal masih ngajuin kadernya sendiri selain airlangga hartanto ridwan kamil jelas pengalaman punya penggemar masyarakat 
##   negative                                                                                                                                                                                         0.02127660
##   neutral                                                                                                                                                                                          0.00000000
##   positive                                                                                                                                                                                         0.00000000
##           Full.text
## Y          golkar tersanderapadahal partai besardemokrat bingung kmnseandainya golkar nolakbersama demokrat bikin poros barupartai sebesar golkarsecara logika tdk mgkin  anak blm punya pengalaman dunia politik
##   negative                                                                                                                                                                                             0.02127660
##   neutral                                                                                                                                                                                              0.00000000
##   positive                                                                                                                                                                                             0.00000000
##           Full.text
## Y          gw tau politik tuh dinamis ngebingungin
##   negative                              0.02127660
##   neutral                               0.00000000
##   positive                              0.00000000
##           Full.text
## Y          halo ridwankamil mending kumpul bersama  waras tpn ganjarmahfud jangan tenggelam bersama  haus kekuasaan dgn menghalalkan berbagai cara
##   negative                                                                                                                              0.02127660
##   neutral                                                                                                                               0.00000000
##   positive                                                                                                                              0.00000000
##           Full.text
## Y          hidup nkrj negara keluarga republik jancukers
##   negative                                    0.02127660
##   neutral                                     0.00000000
##   positive                                    0.00000000
##           Full.text
## Y          ingat pernyataan budi ariekalo kalah masuk penjara ayo ganjar anies semangat kalahkan pasangan
##   negative                                                                                     0.02127660
##   neutral                                                                                      0.00000000
##   positive                                                                                     0.00000000
##           Full.text
## Y          kasian dijebur ke dunia politik
##   negative                      0.02127660
##   neutral                       0.00000000
##   positive                      0.00000000
##           Full.text
## Y          kasian prabowoterlalu dipaksakan kalomas gibran calon wapresbelum waktunya  gibran wapresitu menurut saya
##   negative                                                                                                0.02127660
##   neutral                                                                                                 0.00000000
##   positive                                                                                                0.00000000
##           Full.text
## Y          kemaren ditetapkan sebagai jurkam partai sebelah sekarang ditetapkan sebagai cawapres partai pantesan gibran mukanya stress 
##   negative                                                                                                                   0.00000000
##   neutral                                                                                                                    0.00000000
##   positive                                                                                                                   0.06666667
##           Full.text
## Y          kenapa sampai brutal bgini ktidak warasan politiknya mnduga krn ad resiko konsekuensi sngt besar hrs ditanggung bla kekuasaan tdk berlanjut hrs nekat smuanya
##   negative                                                                                                                                                    0.00000000
##   neutral                                                                                                                                                     0.00000000
##   positive                                                                                                                                                    0.06666667
##           Full.text
## Y          kirain prof yusril tp gamungkin sampe mk mutusin kemarin si  gajadi
##   negative                                                          0.02127660
##   neutral                                                           0.00000000
##   positive                                                          0.00000000
##           Full.text
## Y          koalisi prabowo tidak punya etika kader partai  ditarik
##   negative                                              0.02127660
##   neutral                                               0.00000000
##   positive                                              0.00000000
##           Full.text
## Y          kurang tokoh hebat pengalaman lg golkar  minim pengalaman  jd cawapres jika gibran   anak apakah tetap jadikan cawapres prabowo
##   negative                                                                                                                      0.02127660
##   neutral                                                                                                                       0.00000000
##   positive                                                                                                                      0.00000000
##           Full.text
## Y               login makin dibuat bingung para pendukung j
##   negative 0.00000000                            0.02127660
##   neutral  0.07142857                            0.00000000
##   positive 0.00000000                            0.00000000
##           Full.text
## Y          malu para sesepuh amp tokoh senior golkar kemana kader terbaiknya
##   negative                                                        0.02127660
##   neutral                                                         0.00000000
##   positive                                                        0.00000000
##           Full.text
## Y             mantap  memalukanwajah parpol kek ginitenggelam
##   negative 0.00000000                              0.02127660
##   neutral  0.00000000                              0.00000000
##   positive 0.06666667                              0.00000000
##           Full.text
## Y          menurut saya sah  gibran cawpres boleh mencalonkan asalkan memnuhi syarat jgn mudah diasut dipecah belah atau ikut ngerti pilih menurut percaya menuhin harapan
##   negative                                                                                                                                                      0.00000000
##   neutral                                                                                                                                                       0.00000000
##   positive                                                                                                                                                      0.06666667
##           Full.text
## Y          mungkin selama bapak presiden diem dipermalukan partai sambil perlahan membangun kekuatan menjatuhkan partai dah kayak cerita anime
##   negative                                                                                                                          0.02127660
##   neutral                                                                                                                           0.00000000
##   positive                                                                                                                          0.00000000
##           Full.text
## Y          nah  duonk sdh yakin jangan ragu nyebur bareng gentleman chucky 
##   negative                                                       0.00000000
##   neutral                                                        0.00000000
##   positive                                                       0.06666667
##           Full.text
## Y               najis
##   negative 0.02127660
##   neutral  0.00000000
##   positive 0.00000000
##           Full.text
## Y          ni org type ngeyel keras kepala banget br kemaren ditunjuk jd jurkam pdip hr sdh baling perang besar antara megajokowi terhindarkan lg kita milih jelas amin
##   negative                                                                                                                                                   0.02127660
##   neutral                                                                                                                                                    0.00000000
##   positive                                                                                                                                                   0.00000000
##           Full.text
## Y          no dinasty no karbitan
##   negative             0.02127660
##   neutral              0.00000000
##   positive             0.00000000
##           Full.text
## Y          partaigolkar partai besar berhasil bikin kader utk pemimpin nasional sampe harus membajak kader pdiperjuangan malu in
##   negative                                                                                                            0.02127660
##   neutral                                                                                                             0.00000000
##   positive                                                                                                            0.00000000
##           Full.text
## Y          penting keluar dulu dr partai lama  gibrantweet br hitungan sdh kliatan lbh sumringah  tkn btn slama tekanan bathin tp aseli situasi bikin kayak nunggu lahiran kembar ngeden dr bln sblm lahiran semoga tetep es teh 
##   negative                                                                                                                                                                                                             0.02127660
##   neutral                                                                                                                                                                                                              0.00000000
##   positive                                                                                                                                                                                                             0.00000000
##           Full.text
## Y          politik dinasti politik dinasti is real politik dinasti is real kah
##   negative      0.04255319              0.02127660                  0.02127660
##   neutral       0.00000000              0.00000000                  0.00000000
##   positive      0.00000000              0.00000000                  0.00000000
##           Full.text
## Y          politik dinasti selangkah politik dinasti warga kabupaten bogor
##   negative                0.02127660                            0.02127660
##   neutral                 0.00000000                            0.00000000
##   positive                0.00000000                            0.00000000
##           Full.text
## Y             prabowo puncak komedi ridwan kamil bagaimana 
##   negative 0.00000000    0.00000000              0.00000000
##   neutral  0.00000000    0.07142857              0.07142857
##   positive 0.06666667    0.00000000              0.00000000
##           Full.text
## Y          sekian banyak calon kenapa harus gibran  gini caranya saya pun ragu milih bapak prabowo gerindra
##   negative                                                                                       0.02127660
##   neutral                                                                                        0.00000000
##   positive                                                                                       0.00000000
##           Full.text
## Y          sini gw belajar partaigolkar ngapain milih kader golkar toh golkar ngambil kader partai lain ga ngasilin kader bagus mending pilih partai ngasilin kader bagus 
##   negative                                                                                                                                                      0.02127660
##   neutral                                                                                                                                                       0.00000000
##   positive                                                                                                                                                      0.00000000
##           Full.text
## Y          ternyata issue benar
##   negative           0.00000000
##   neutral            0.07142857
##   positive           0.00000000
##           Full.text
## Y          tinggal nunggu mk menetapkan batas maksimal usia presiden menjabat tahun
##   negative                                                               0.00000000
##   neutral                                                                0.07142857
##   positive                                                               0.00000000
##           Full.text
## Y          wadduh golkar udh kehabisan kader 
##   negative                         0.02127660
##   neutral                          0.00000000
##   positive                         0.00000000
##           Full.text
## Y          wkwk has to men cret wkwk wong mo jd jubir jurkam dibajak jd wakil wkwkwk 
##   negative                                                                 0.02127660
##   neutral                                                                  0.00000000
##   positive                                                                 0.00000000
##           Full.text
## Y                 wow       wow 
##   negative 0.00000000 0.00000000
##   neutral  0.00000000 0.07142857
##   positive 0.06666667 0.00000000
##           Full.text
## Y          yes kabar buruk bagi pendukung gp semakin optimis amin menang putaran
##   negative                                                            0.02127660
##   neutral                                                             0.00000000
##   positive                                                            0.00000000
## 
## 
## $levels
## [1] "negative" "neutral"  "positive"
## 
## $isnumeric
## Full.text 
##     FALSE 
## 
## $call
## naiveBayes.default(x = X, y = Y, laplace = laplace)