Text Mining Using R
Holla Data Scientis!
Text Mining itu apa? gimana cara penggunaannya pada R? yuk kita bahas
Text mining adalah proses mengeksplorasi dan menganalisis sejumlah besar data teks tidak terstruktur yang dibantu oleh perangkat lunak yang dapat mengidentifikasi konsep, pola, topik, kata kunci, dan atribut lainnya dalam data. Ini juga dikenal sebagai analisis teks, meskipun beberapa orang menarik perbedaan antara dua istilah; dalam pandangan itu, analitik teks adalah aplikasi yang diaktifkan oleh penggunaan teknik text mining untuk memilah-milah set data.
Text mining telah menjadi lebih praktis bagi para ilmuwan data dan pengguna lain karena pengembangan platform data besar dan algoritma pembelajaran mendalam yang dapat menganalisis kumpulan data yang tidak terstruktur secara besar-besaran.
Nah udah tau kan penjelasan mengenai text mining selanjutnya kita langsung praktek menggunakan R.
Kali ini kita akan mencoba mencari keyword pada kolom komentar salah satu restoran yang ada di Bandung. Jadi, data yang akan dipakai diambil dari website https://www.tripadvisor.com/ dengan tampilan sebagai berikut,
Restoran yang akan kita analisa yaitu Pago Restaurant.
Siapkan Software R kemudian install dan aktifkan package yang akan dipakai dengan menggunakan syntax sebagai berikut :
> install.packages(“xml2”)
> library(xml2)
> install.packages(“rvest”)
> library(rvest)
Langkah selanjutnya yaitu mengambil review Pago Restaurant menggunakan syntax sebagai berikut :
> pago <- read_html("https://www.tripadvisor.com/Restaurant_Review-g297704-d15333482-Reviews-Pago_Restaurant-Bandung_West_Java_Java.html")
> pago
Maka akan didapatkan output sebagai berikut.
Untuk mengetahui letak posisi review gunakan selector gadget sehingga didapatkan letak yaitu “.partial_entry”
Kemudian masukkan kedalam R
> review<-html_nodes(pago,".partial_entry")
> reviewtext<-html_text(review)
> reviewtext
Maka akan didapatkan output sebagai berikut.
Berdasarkan output diatas dapat dilihat bahwa tulisan menggunakan bahasa inggris dikarenakan setting google yang digunakan adalah bahasa inggris.
kemudian, bersihkan data , misal jika ada huruf “\n” dan lainnya yang tidak diperlukan, dan kemudian kita simpan dalam csv menggunakan syntax sebagai berikut :
> reviewtextbaru<-gsub("\n","",reviewtext)
> reviewtextbaru
> write.csv(reviewtextbaru,"D://semester 5//BIML//reviewtextbaru.csv")
Setelah berhasil tersimpan install package yang akan digunakan untuk melakukan analisis selanjutnya
> library(tm)
> library(SnowballC)
> library(wordcloud)
> library(RColorBrewer)
> library(stringr)
Setelah dilakukan instalasi , baca kembali dokumen yang ada dalam folder menggunakan syntax sebagai berikut :
> restaurant <- readLines("D://semester 5//BIML//reviewtextbaru.csv")
> restaurant
Kemudian buat Corpus untuk dokumen diatas menggunakan syntax sebagai berikut :
> restaurant <- VCorpus(VectorSource(restaurant))
> restaurant
Maka akan didapatkan output sebagai berikut.
Lalu,
> str(restaurant)
nampak sebagai berikut,
Langkah selanjutnya yaitu buat matrik kata-kata dalam dokumen dengan menggunakan syntax sebagai berikut :
> restaurantDTM< DocumentTermMatrix(restaurant,control=list(tolower=TRUE,
removeNumbers=TRUE,
stopwords=TRUE,
removePunctuation=TRUE,
stemming=TRUE))
> restaurantDTM
Maka akan didapatkan output sebagai berikut.
Berdasarkan output diatas dari 14 dokumen yang ada terdapat 207 kata yan berbeda kemudian gunakan syntax sebagai berikut :
inspect(restaurantDTM)
Maka akan didapatkan output sebagai berikut.
Output diatas menunjukan daftar kata-kata yang diurutkan sesuai abjad dan dianggap sebagai kolom. Pada perintah inspect() hanya ditampilkan 10 kata pertama. Contoh pada dokumen-9 kata “birthday” tidak muncul sedangkan kata “dinner” muncul 1 kali begitupun seterusnya. Jika ingin melihat lebih detail bisa menggunakan syntax sebagai berikut:
str(restaurantDTM)
Maka akan didapatkan output sebagai berikut.
Kita bisa melihat semua kata yang ada dengan menggunakan syntax sebagai berikut :
restaurantDTM$dimnames$Terms
Maka akan didapatkan output sebagai berikut.
Selanjutnya akan digunakan perintah sebagai berikut :
> restaurantfreq<-findFreqTerms(restaurantDTM,3)
> restaurantfreq
Didapatkan output,
Syntax diatas digunakan untuk melihat kata-kata yang memiliki frekuensi 3 kali muncul atau lebih. Kemudian gunakan syntax berikut untuk membuat matriks
> em <- as.matrix(dokkudtm)
> em
Didapatkan output,
Gunakan syntax sebagai berikut
> ve <- sort(rowSums(em),decreasing=TRUE)
> de <- data.frame(word = names(ve),freq=ve)
> head(de, 15)
Didapatkan output,
Kemudian gunakan syntax berikut untuk membuat wordcloud
> 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 didapatkan output sebagai berikut,
Jika ingin diketahui asosiasi dari kata-kata yang sering misalkan “restaurant”, “birthday”, dan “bandung” gunakan syntax sebagai berikut :
> vee<-as.list(findAssocs(dokkudtm, terms =c("restaurant", "birthday", "bandung"), corlimit = c(0.15,0.15,0.15,0.15,0.15,0.15)))
> vee
Maka akan didapatkan output sebagai berikut.
Berdasarkan output diatas dapat diambil kesimpulan misalkan kata “restaurant” mempunyai hubungan asosiasi erat dengan “also”(0.88) dan “birthday”(0.85) dan lainnya bisa diinterpretasikan dengan asosiasi kata yang lainnya.
Sekian pembahasan mengenai text mining, semoga bermanfaat
Terimakasih
Referensi :
https://medium.com/@986110101/text-mining-using-r-28ada2abb883