Text Mining : Review Eiffel Tower Based on TripAdvisor using R
Assalamualaikum Wr. Wb.
hai data enthusiast!
Siapa nih yang pengen banget liburan ke Paris? kemana lagi kalo bukan ke Eiffel Tower? bahkan Eiffel Tower dinobatkan sebagai tempat wisata terbaik dunia kedua versi TripAdvisor loh temen — temen. Tapi, sebelum kita kesana, yuk kita lihat terlebih dahulu review dari wisatawan yang udah dateng kesana, kira — kira masih recommended untuk didatangi wisatawan nggak yaa? oleh karena itu, kali ini kita akan melakukan text mining menggunakan Aplikasi R. Text mining adalah proses ekstraksi pola berupa informasi dan pengetahuan yang berguna dari sejumlah besar sumber data.
Langsung kita mulai aja yaa, hal yang dibutuhkan yaitu aplikasi SelectorGadget dan aplikasi R Studio. Pertama, tentukan data yang akan digunakan. Kali ini, saya akan mengambil data dari web TripAdvisor tentang review tempat wisata Eiffel Tower, Prancis.
Selanjutnya, buka aplikasi R Studio dan install package berikut.
install.packages(xml2)
install.packages(rvest)
install.packages(tm)
install.packages(SnowballC)
install.packages(wordcloud)
install.packages(RColorBrewer)
install.packages(stringr)
library(xml2)
library(rvest)
library(tm)
library(SnowballC)
library(wordcloud)
library(RColorBrewer)
library(stringr)
Kemudian, copy — paste link yang akan dilakukan scraping kemudian input data menggunakan syntax berikut.
eiffel <- read_html("https://www.tripadvisor.com/Attraction_Review-g187147-d188151-Reviews-Eiffel_Tower-Paris_Ile_de_France.html")
eiffel
Apabila berhasil, maka akan muncul output sebagai berikut,
Selanjutnya, klik SelectorGadget dan sorot salah satu komentar pada tampilan website
Lalu masukkan syntax letak review text kedalam R,
review<-html_nodes(eiffel,".cPQsENeY")
reviewtext<-html_text(review)
reviewtext
Maka akan muncul output sebagai berikut,
Selanjutnya, simpan data dalam csv menggunakan syntax berikut.
write.csv(reviewtext,"C:\\SEM 5\\BIML\\reviewtexteiffel.csv")
Buka file csv pada direktori yang sudah ditentukan, lalu hapus baris yang tidak memuat data yaitu baris pertama. Kemudian save menggunakan ctrl+s.
Selanjutnya, panggil kembali data csv yang sudah dibersihkan kedalam R,
dokumen<-readLines("C:\\SEM 5\\BIML\\reviewtexteiffel.csv")
dokumen
maka akan muncul output sebagai berikut,
Lalu, buatlah Corpus dan str untuk data tersebut
dokumen <- VCorpus(VectorSource(dokumen))
dokumen
str(dokumen)
maka akan muncul output sebagai berikut,
Kemudian, buatlah matriks kata — kata yang terteda pada dokumen dengan menggunakan syntax berikut
dokumenDTM<-DocumentTermMatrix(dokumen,control=list(tolower=TRUE,
removeNumbers=TRUE,
stopwords=TRUE,
removePunctuation=TRUE,
stemming=TRUE))
dokumenDTM
Maka akan muncul output sebagai berikut,
Dapat dilihat berdasarkan data tersebut bahwa dari 5 dokumen terdapat 66 kata yang berbeda. Maka kita jalankan perintah berikut,
inspect(dokumenDTM)
maka akan menghasilkan,
Dapat dilihat pada output memuat kata-kata yang terdapat dalam dokumen diurutkan menurut abjad. Pada perintah inspect hanya ditampilkan 10 kata-kata pertama saja. Misalnya, pada dokumen pertama, kata “access” muncul satu kali, kata “citi” muncul satu kali, kata “say” muncul dua kali, dan seterusnya. Jika kalian ingin mengetahui lebih rinci, jalankan perintah berikut.
dokumenDTM$dimnames$Terms
maka akan dihasilkan,
output tersebut merupakan kata-kata yang dimuat pada dokumen, yaitu sebanyak 66 kata. Untuk melihat kata yang mempunyai frekuensi muncul sebanyak 2 dan 3 kali, jalankan perintah berikut.
dokumenfreq<-findFreqTerms(dokumenDTM,2)
dokumenfreq
dokumenfreq<-findFreqTerms(dokumenDTM,3)
dokumenfreq
Maka akan menghasilkan,
Kemudian buatlah matriks menggunakan syntax berikut.
dokkudtm <- TermDocumentMatrix(dokumen)
em <- as.matrix(dokkudtm)
em
ve <- sort(rowSums(em),decreasing=TRUE)
ve
de <- data.frame(word = names(ve),freq=ve)
head(de, 15)
maka akan muncul output sebagai berikut,
Selanjutnya, kita akan membuat wordcloud menggunakan perintah berikut.
wordcloud(words = de$word, freq = de$freq, min.freq = 1,
max.words=50, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2"))
Maka akan muncul output sebagai berikut,
Berdasarkan gambar tersebut akan ditampilkan kata-kata yang muncul pada ulasan pengunjung Eiffel Tower. Semakin besar ukuran huruf maka semakin banyak pula ulasan yang memuat kata tersebut. Jika ingin mencari asosiasi dari beberapa kata yang tertera, misalnya “crowded”, “relax”, “far”, dan “nice” maka jalankan perintah berikut.
vee<-as.list(findAssocs(dokkudtm, terms =c("crowded", "relax","far","nice"), corlimit = c(0.15,0.15,0.15,0.15,0.15,0.15)))
vee
maka akan muncul output sebagai berikut,
$crowded
but 3,"surprised 4,the about
0.67 0.61 0.61 0.61
and beautifull best definitely
0.61 0.61 0.61 0.61
enjoy especially family france
0.61 0.61 0.61 0.61
it's lights not overwhelmingly
0.61 0.61 0.61 0.61
pictures quite there." thing
0.61 0.61 0.61 0.61
top tower, very was
0.61 0.61 0.61 0.61
were when city paris.
0.61 0.61 0.17 0.17
place see with
0.17 0.17 0.17$relax
4,the about and beautifull best enjoy
1.00 1.00 1.00 1.00 1.00 1.00
family france pictures quite city place
1.00 1.00 1.00 1.00 0.61 0.61
but
0.41$far
1,"yes, access better buildings. crowded, elevator,
1.00 1.00 1.00 1.00 1.00 1.00
galon get highly hilly its just
1.00 1.00 1.00 1.00 1.00 1.00
long montmartre old overrated provides queues
1.00 1.00 1.00 1.00 1.00 1.00
rooftops say sorry steel structure. that
1.00 1.00 1.00 1.00 1.00 1.00
this tiny view would city paris.
1.00 1.00 1.00 1.00 0.61 0.61
place see the but
0.61 0.61 0.51 0.41$nice
3,"surprised definitely especially it's
1.00 1.00 1.00 1.00
lights not overwhelmingly there."
1.00 1.00 1.00 1.00
thing top tower, very
1.00 1.00 1.00 1.00
was were when paris.
1.00 1.00 1.00 0.61
see with but
0.61 0.61 0.41
Berdasarkan output tersebut, dapat kita lihat asosiasi/keterkaitan antara suatu kata dengan kata lainnya. Misalnya pada kata “crowded” mempunyai nilai asosiasi sebesar 0.67 terhadap kata “but”. Hal ini berarti banyak review dari wisatawan yang apabila menuliskan kata “crowded” lalu ia juga menuliskan kata “but”. Semakin besar nilai asosiasinya, maka semakin sering kata tersebut tertera dalam suatu kalimat.
Cukup sekian penjelasan dari saya mengenai text mining : review eiffel tower using R, semoga dapat menambah ilmu teman — teman semua.
Terimakasih, Wassalamualaikum Wr. Wb.
Referensi :
- Hakim, RB. F. (2019, September 25). Web Scraping dengan R. https://medium.com/@986110101/text-mining-using-r-28ada2abb883