DISUSUN OLEH:
Wardatul Jannah
105361106019
Dosen Pengampu:
2021
Siapkan terlebih dahulu R nya serta install package yang diperlukan
> install.packages("xml2")
> library(xml2)
> install.packages("rvest")
> library(rvest)
kita masukkan dalam R alamat website tersebut, misal hasil pembacaan halaman website
tersebut kita namakan “Ambarrukmo”[1]
> ambarrukmo <- read_html(" https://www.tripadvisor.co.id/Hotel_Review-g5074492-d307833-
Reviews-Royal_Ambarrukmo_Yogyakarta-
Depok_Sleman_District_Yogyakarta_Region_Java.html")> ambarrukmo
nampak hasilnya,
kemudian, kita bersihkan sedikit, misal jika ada huruf “\n” dan lainnya yang tidak diperlukan,
dan kemudian kita simpan dalam csv
> reviewtextbaru<-gsub("\n","",reviewtext)
> reviewtextbaru
> write.csv(reviewtextbaru,"C://untad/reviewtextbaru.csv")
bisa dilihat hasilnya tersimpan seperti berikut (letak folder dipersilahkan anda buat sendiri)
jika dibuka melalui microsoft excel,
kemudian bisa juga kita bersihkan terlebih dahulu data tersebut, (misalkan baris pertama yang
tidak memuat komentar apapun bisa kita delete baris) kemudian kita Save kembali.
Selanjutnya anda install beberapa package tambahan yang diperlukan untuk analisa
selanjutnya.
> library(tm)
> library(SnowballC)
> library(wordcloud)
> library(RColorBrewer)
> library(stringr)
Setelah instalasi selesai maka dapat kita teruskan dengan membaca kembali dokumen yang
ada dalam folder,
> dokumen<-readLines("C://untad/reviewtextbaru.csv")
> dokumen
nampak hasilnya,
kemudian kita buat Corpus untuk dokumen diatas,
> dokumen <- VCorpus(VectorSource(dokumen))
> dokumen
hasilnya,
kemudian,
> str(dokumen)
nampak hasilnya,
kemudian kita buat Matriks Kata-kata dalam dokumen dengan perintah seperti berikut,
> dokumenDTM<-DocumentTermMatrix(dokumen,control=list(tolower=TRUE,
removeNumbers=TRUE,
stopwords=TRUE,
removePunctuation=TRUE,
stemming=TRUE))
> dokumenDTM
sehingga menghasilkan,
dari 7 dokumen terdapat 201 kata yang berbeda, kemudian kita gunakan
> inspect(dokumenDTM)
yang menghasilkan,
> dokumenfreq<-findFreqTerms(dokumenDTM,3)
> dokumenfreq [1] "ambarrukmo" "best" "dan" "dapat"
[5] "dari" "dengan" "fasilita" "hotel"
[9] "internasion" "kamar" "kami" "kota"
[13] "room" "saat" "suit" "untuk"
[17] "yang" "yogyakarta"
> dokumenfreq<-findFreqTerms(dokumenDTM,4)
> dokumenfreq
[1] "best" "dan" "dari" "dengan"
[5] "fasilita" "hotel" "kami" "room"
[9] "yang" "yogyakarta"
pada perintah pertama menampilkan kata-kata yang mempunyai frekuensi 3 kali muncul atau
lebih, sedangkan perintah kedua menampilkan kata-kata yang mempunyai kemunculan 4 kali
atau lebih
> dokkudtm <- TermDocumentMatrix(dokumen)
nampak hasilnya,
> dokkudtm <- TermDocumentMatrix(dokumen)
<<TermDocumentMatrix (terms: 222, documents: 8)>>
Non-/sparse entries: 255/1521
Sparsity : 86%
Maximal term length: 15
Weighting : term frequency (tf)
kemudian gunakan perintah berikut untuk membuat matriks
> em <- as.matrix(dokkudtm)
> em
dengan perintah
> ve <- sort(rowSums(em),decreasing=TRUE)
maka muncul,
> ve <- sort(rowSums(em),decreasing=TRUE)
> veve
dan dengan dari
11 7 5
kami best fasilitas
5 4 4
yang hotel internasional
4 3 3
kamar room saat
3 3 3
untuk ambarrukmo bgt
3 2 2
dapat destinasi dibantu
2 2 2
kota liburan memiliki
2 2 2
menginap orang. pemandangan
2 2 2
pengalaman rapat room,
2 2 2
royal sangat sehingga
2 2 2
strategis terbaik yogyakarta
2 2 2
your "","x" "1","hotel
2 1 1
"2","pelayanan "3","seneng "4","best
1 1 1
"5","dear "6","hotel "7","overall
1 1 1
2,000 247 absolutely
1 1 1
ada adisucipto agree
1 1 1
akan all ambarrukmo.
1 1 1
anak2 anakny and
1 1 1
apabila areal asistensi
1 1 1
atau awalia" bagus.
1 1 1
bagus2... baik baik.
1 1 1
balkon bandara bantuan.
1 1 1
banyak baru bener2
1 1 1
beragam. berkelas berlangsung,
1 1 1
berlibur, berlokasi berpenghargaan
1 1 1
bersih. besar. best.
1 1 1
bintang bisnis boy
1 1 1
breakfast budaya cameron
1 1 1
can check check-in
1 1 1
check-out cukup dalam
1 1 1
dapat. deh. deluxe
1 1 1
didalam didalamnya" didalamnya.
1 1 1
dilengkapi dimana dimulai
1 1 1
diperhatikan disini executive
1 1 1
fasiltas for forward
1 1 1
foto foto2 friendly
1 1 1
furniture general greeting
1 1 1
gunung happy happy,
1 1 1
hingga hope ian
1 1 1
independen istirahat istri
1 1 1
jga. juara juga
1 1 1
junior kamarnya kapasitas
1 1 1
karena keluarga keramahan
1 1 1
keseluruh ketenangan kids
1 1 1
klo kota. lagi"
1 1 1
lagi, lebih lemari
1 1 1
lengkap letak lokasi
1 1 1
look lovely luas
1 1 1
...
nampak hasilnya,
hasilnya masih terlihat kurang bagus, karena stopwords yang digunakan masih dalam bahasa
inggris, dan kata-kata inti (stemming) bahasa Indonesia belum digunakan.
Misal ingin diketahui asosiasi kata dari kata-kata yang sering muncul, misal kata “fasilitas”,
“hotel” dan “sangat” maka kita gunakan perintah berikut,
> vee<-as.list(findAssocs(dokkudtm, terms =c("fasilitas", "hotel", "sangat"), corlimit =
c(0.15,0.15,0.15,0.15,0.15,0.15)))
dan hasilnya,
$`fasilitas`
untuk dan dapat
0.91 0.89 0.82
memiliki orang. strategis
0.82 0.82 0.82
terbaik "1","hotel 2,000
0.82 0.80 0.80
247 adisucipto ambarrukmo
0.80 0.80 0.80
areal atau balkon
0.80 0.80 0.80
bandara banyak berkelas
0.80 0.80 0.80
berlibur, berlokasi berpenghargaan
0.80 0.80 0.80
bintang bisnis budaya
0.80 0.80 0.80
deluxe destinasi didalam
0.80 0.80 0.80
didalamnya. dilengkapi dimana
0.80 0.80 0.80
executive gunung independen
0.80 0.80 0.80
internasional junior kamarnya
0.80 0.80 0.80
kapasitas keseluruh memilih
0.80 0.80 0.80
menarik menawarkan menit
0.80 0.80 0.80
merapi perbelanjaan pertemuannya
0.80 0.80 0.80
premiere pusat room,
0.80 0.80 0.80
ruang sebuah serta
0.80 0.80 0.80
standar suite suite,
0.80 0.80 0.80
suites. tamu yogyakarta
0.80 0.80 0.80
yogyakarta." dengan dari
0.80 0.76 0.64
kota pemandangan royal
0.41 0.41 0.41
"4","best "6","hotel akan
0.27 0.27 0.27
and asistensi awalia"
0.27 0.27 0.27
besar. best dalam
0.27 0.27 0.27
deh. didalamnya" diperhatikan
0.27 0.27 0.27
furniture greeting juara
0.27 0.27 0.27
karena keluarga keramahan
0.27 0.27 0.27
kota. lagi, lebih
0.27 0.27 0.27
lemari lengkap letak
0.27 0.27 0.27
lokasi meeting melukai
0.27 0.27 0.27
mohon nyaman. pintu
0.27 0.27 0.27
receiptionist relnya, rombongan
0.27 0.27 0.27
tempat tepat terkait
0.27 0.27 0.27
terlepas tidak vina
0.27 0.27 0.27
yogyakarta. yang
0.27 0.25$hotel
kota memiliki pemandangan
0.75 0.75 0.75
royal kamar "1","hotel
0.75 0.70 0.49
"4","best "7","overall 2,000
0.49 0.49 0.49
247 adisucipto ambarrukmo
0.49 0.49 0.49
ambarrukmo. anak2 and
0.49 0.49 0.49
areal atau bagus.
0.49 0.49 0.49
baik. balkon bandara
0.49 0.49 0.49
banyak baru beragam.
0.49 0.49 0.49
berkelas berlibur, berlokasi
0.49 0.49 0.49
berpenghargaan besar. best
0.49 0.49 0.49
bintang bisnis breakfast
0.49 0.49 0.49
budaya check-in check-out
0.49 0.49 0.49
cukup dalam dapat.
0.49 0.49 0.49
deluxe destinasi didalam
0.49 0.49 0.49
didalamnya" didalamnya. dilengkapi
0.49 0.49 0.49
dimana dimulai executive
0.49 0.49 0.49
fasiltas greeting gunung
0.49 0.49 0.49
happy happy, hingga
0.49 0.49 0.49
independen internasional istirahat
0.49 0.49 0.49
istri juga junior
0.49 0.49 0.49
kamarnya kapasitas keluarga
0.49 0.49 0.49
keseluruh ketenangan kota.
0.49 0.49 0.49
lengkap letak luas.…"
0.49 0.49 0.49
meeting memilih menarik
0.49 0.49 0.49
menawarkan mendapatkan menit
0.49 0.49 0.49
menyenangkan. merapi nyaman.
0.49 0.49 0.49
perbelanjaan pertemuannya premiere
0.49 0.49 0.49
pusat receiptionist rombongan
0.49 0.49 0.49
room, ruang ruangan
0.49 0.49 0.49
sebuah serta standar
0.49 0.49 0.49
suite suite, suites.
0.49 0.49 0.49
tamu tempat tepat
0.49 0.49 0.49
terasa yogyakarta yogyakarta."
0.49 0.49 0.49
untuk dari dengan
0.47 0.42 0.34
dan room yang
0.32 0.32 0.18$sangat
"7","overall ambarrukmo. anak2 bagus.
1.00 1.00 1.00 1.00
baik. baru beragam. breakfast
1.00 1.00 1.00 1.00
check-in check-out cukup dapat.
1.00 1.00 1.00 1.00
dimulai fasiltas happy happy,
1.00 1.00 1.00 1.00
hingga istirahat istri juga
1.00 1.00 1.00 1.00
ketenangan luas.…" mendapatkan menyenangkan.
1.00 1.00 1.00 1.00
ruangan terasa kamar kota
1.00 1.00 0.88 0.65
menginap pemandangan pengalaman royal
0.65 0.65 0.65 0.65
kami saat dari
0.47 0.34 0.20
nah dari hasil diatas maka dapat diambil kesimpulan bahwa, misal kata “hotel” mempunyai
hubungan asosiasi yang erat dengan kata “kota” (0.75) dan “pemandangan” (0.75), serta bisa
juga diinterpretasikan dengan asosiasi kata yang lainnya.[2]
DAFTAR PUSTAKA
[2] S. tools for high-throughput data Analysis, “Text mining and word cloud fundamentals
in R,” 2020, [Online]. Available: http://www.sthda.com/english/wiki/text-mining-and-
word-cloud-fundamentals-in-r-5-simple-steps-you-should-know.