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:
Pemahaman struktur data : Analisis clustering membantu dalam memehami struktur intrinsik dalam data, membantu mengidentifikasi pola atau kelompok yang mungkin sulit ditemukan secara manual.
Segmentasi data : Dengan mengelompokkan data ke dalam klaster, kita dapat membuat segmentasi yang lebih baik dalam pemahaman karakteristik dan perilaku suatu objek dalam set data.
Tahapan dalam melakukan Analisis clustering
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)
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?"
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"))
#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
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)