## Coarse-Grained Sentiment Analysis Berbasis Natural Language Processing – Ulasan Hotel

## (Coarse-Grained Sentiment Analysis Based on Natural Language Processing
- Hotel Review)
Warnia Nengsih 1 , M. Mahrus Zein 2 , Nazifa Hayati 3
Abstract—Sentiment  analysis  is  a  method  for  obtaining  data from  various  platforms  available  on  the  internet.  Advances  in technology  enable  the  machine  to  recognize  a  term  that  is considered  a  positive  opinion  and  vice  versa.  These  data  and opinions play an important role as product, services, or other topic feedback. Without the need to obtain an opinion directly from the public,  the  provider  has  obtained  an  important  evaluation  to develop  themselves.  Hospitality  business  is  a  field  related  to services,  providing  services  to  customers.  Indicators  of  business continuity  also  depend  on  customer  feedback  and  serve  as  a reference for strategic policy. Sentiment analysis techniques based on Natural Language Processing are expected to overcome these problems. In this study, the prediction uses a temporary Random Forest  (RF)  classifier  to  summarize  the  quality  of  the  classifier then it can be done using the  Receiver Operating Characteristic (ROC) curve. The ROC curve is a good graphic to summarize the quality of the classifier. The higher the curve is above the diagonal line, the better the prediction, with the ROC Curve value of 0.90. The result shows that positive reviews are more than the negative reviews, i.e., 68% and 32%, respectively.
Intisari—Sentiment analysis adalah metode untuk memperoleh data dari berbagai platform yang tersedia di internet. Kemajuan teknologi  memungkinkan  mesin  untuk  mengenali  suatu  istilah yang  dianggap  sebagai  opini  positif  maupun  sebaliknya.  Data- data  dan  opini  tersebut  berperan  penting  sebagai  umpan  balik produk,  layanan,  dan  topik  lainnya.  Tanpa  perlu  memperoleh opini  secara  langsung  dari  masyarakat,  pihak  penyedia  telah mendapatkan  evaluasi  yang  penting  guna  mengembangkan diri. Bisnis  perhotelan  merupakan  bidang  yang  terkait  dengan  jasa memberikan layanan pada pelanggan. Indikator keberlangsungan  bisnis  ini  juga  bergantung  pada  umpan  balik pelanggannya  dan  dijadikan  sebagai  acuan  untuk  pengambilan kebijakan  strategis.  Teknik  sentiment  analysis  berbasis  Natural Language  Processing  dapat  mengatasi  permasalahan  tersebut. Pada  makalah  ini  prediksi  dilakukan  menggunakan  classifier Random  Forest  (RF),  sementara  untuk  merangkum  kualitas classifier,  digunakan  kurva  Receiver  Operating  Characteristic (ROC). Kurva ROC berupa grafik yang baik untuk merangkum kualitas  classifier.  Semakin  tinggi  kurva  berada  di  atas  garis diagonal,  semakin  baik  prediksinya,  dengan  nilai  kurva  ROC yang diperoleh sebesar 0,90. Terlihat hasil ulasan terhadap opini pelanggan terhadap jasa dan pelayanan yang diberikan oleh hotel untuk  kategori  positif  lebih  banyak  daripada  kategori  negatif.
Polaritas  dari  ulasan  diperoleh  68%  ulasan  pelanggan  berada pada area positif dan 32% berada pada area negatif.
Kata Kunci—Coarse Grained, Sentiment Analysis, NLP, Hotel.

## I. P ENDAHULUAN
Sentiment  analysis merupakan  bagian  dari Natural Language  Processing (NLP).  Teknik  ini  sangat  baik  untuk menentukan hasil ulasan ( review ) dari sebuah opini pengguna ( user ). Sentiment  analysis adalah  salah  satu  teknik  ekstraksi dari sebuah informasi terhadap sebuah isu dan kejadian. Teknik ini  digunakan  untuk  menemukan  opini  dan  paparan  terhadap suatu isu atau kejadian dalam bentuk teks. Sentimen merupakan pernyataan  subjektif  yang  mencerminkan  persepsi  seseorang terhadap  suatu  peristiwa  [1].  Ekstraksi  dari  opini  masyarakat mengenai  produk  atau  layanan  dari  hampir  semua  bidang. Secara umum, sentiment analysis terbagi menjadi dua kategori besar, yaitu:
• coarse-grained sentiment analysis ,
• fined-grained sentiment analysis.
Coarse-grained  sentiment  analysis melakukan  proses analisis  pada  level  dokumen.  Pengklasifikasian  berorientasi pada sebuah dokumen secara keseluruhan, yaitu positif, netral, dan  negatif.  Sementara  itu, fined-grained  sentiment  analysis melakukan proses analisis sebuah kalimat [2].
Tujuan makalah ini adalah menghasilkan sentiment analysis pada  ulasan  pelanggan  hotel  sehingga  pola  yang  diperoleh dapat  dijadikan  sebagai  acuan  dalam  pengambilan  kebijakan berikutnya,  agar  dapat  membantu  meningkatkan  kualitas pelayanan dengan nilai akurasi yang lebih baik. Ulasan produk yang  dibuat  oleh  pengguna online dapat  berdampak  terhadap keputusan membeli pelanggan lain [3]. Ulasan dapat membantu pelanggan  dalam  membentuk  kriteria  untuk  mengevaluasi produk  dan  mengurangi  biaya  kognitif  dalam  membuat keputusan  pembelian  [4].  Ulasan  produk online juga  dapat membantu  pelanggan  untuk:  (1)  membentuk  pemahaman tentang  suatu  produk;  (2)  membangun  kriteria  untuk mengevaluasi produk; (3) membantu membuat keputusan yang tepat;  dan  (4)  mengurangi  biaya  kognitif  dalam  membuat keputusan.
Berikut  merupakan  ulasan  penelitian  terdahulu  terkait dengan makalah ini. Beberapa penelitian menggunakan metode Naive  bayes dan rapid  miner serta data  miner sebagai tools pengolahannya. Pengujian validitas data menggunakan 10 -fold cross validation dengan  rata-rata  nilai  akurasi  sebesar  89%. Sumber dataset yang  digunakan  diperoleh  dari Hotels.com,
1,2,3 Jurusan  Teknik  Informatika,  Politeknik  Caltex  Riau,  Jl. Umbansari  No    Rumbai  Pekanbaru  Riau  28265  (tlp:  0761-53939; fax: 0761-554224; e-mail: 1 warnia@pcr.ac.id, 2 mahrus@pcr.ac.id)
booking.com, dan agoda.com serta menggunakan Python untuk pengolahannya. Dataset yang  digunakan  bersumber  dari dataset  hotel_reviews.csv ,  berbasis coarse-grained  sentiment analysis berbasis  NLP.  Sementara  itu,  untuk  menghitung kinerja  algoritme  klasifikasi  yang  ditampilkan  dalam  bentuk grafik,  digunakan  kurva Receiver  Operating  Characteristic ( ROC ) [4]-[6].
Bisnis  perhotelan  merupakan  bidang  yang  erat  kaitannya dengan  kepuasan  pelanggan.  Kepuasan  pelanggan  menjadi tolok  ukur  keberhasilan  dari  rumusan  capaian  yang  diperoleh pada sebuah bisnis.  Indikator keberlangsungan bisnis ini juga bergantung pada respons pelanggannya dan dijadikan sebagai acuan  untuk  pengambilan  kebijakan  strategis.  Permasalahan yang  terjadi  adalah  level  manajemen  tidak  mengetahui  dan belum  menemukan  pola  dari  respons  pelanggan  hotel  terkait layanan  produk  dan  jasa  yang  diberikan.  Penerapan  teknik sentiment  analysis berbasis  NLP  diharapkan  dapat  mengatasi permasalahan  yang  berhubungan  dengan  umpan  balik pelanggan terhadap  layanan  produk  atau  jasa  yang diberikan. Aktivitas  untuk  merangkum  kualitas classifier dilakukan menggunakan kurva ROC. Kurva ROC berupa grafik yang baik untuk  merangkum  kualitas classifier .  Semakin  tinggi  kurva berada di atas garis diagonal, semakin baik hasil prediksi [7]- [10].

## II. M ETODOLOGI
Dataset yang  digunakan  adalah dataset  hotel_reviews.csv. Dataset ini merupakan kumpulan ulasan pelanggan dari salah satu  situs  perjalanan  terkemuka.  Pada dataset ini  terdapat 51.574  baris  dan  3.840  atribut  data  [11]. Dataset ini  berisi
komentar  pelanggan  terhadap  layanan  yang  terdapat  pada sebuah  hotel.  Tentunya  komentar  dan  hasil  ulasan memengaruhi  keputusan  pelanggan  untuk  melakukan order terhadap  produk  yang  ditawarkan,  sehingga  manajemen hotel harus  dapat  melakukan  ekstraksi  dan  menggali  informasi kecenderungan  komentar  atau  ulasan  tersebut  berada  dalam kelompok  atau  kategori  tetentu.  Dengan  hasil  tersebut, diperlukan  sebuah knowledge untuk  dijadikan  sebagai  acuan terkait dengan pengambilan keputusan strategis di masa depan. Jenis sentiment analysis yang digunakan adalah coarse grained sentiment  analysis ,  yang  merupakan  jenis sentiment  analysis yang  dilakukan  pada  level  dokumen,  dengan  seluruh  isi dokumen dianggap sebagai sebuah sentimen positif dan negatif. Isi dokumen pada dataset ini diperoleh dari beberapa variabel yang  digunakan,  di  antaranya  ulasan  deskripsi  dari  setiap pelanggan, browser , serta device yang digunakan.

## III. P ERANCANGAN
Berikut  merupakan  alur  perancangan coarse  grained sentiment  analysis.  Dataset yang  akan  diolah  bersumber  dari hotel_reviews.csv ,  yang  selanjutnya  dikenai data  pre- processing, term frequency-inverse document frequency , untuk menentukan  kategori  ulasan  positif  dan  ulasan  negatif  yang dihasilkan.
Gbr.  1  memberikan  gambaran  tentang  alur  perancangan coarse  grained  sentiment  analysis.  Dataset yang  digunakan harus melalui tahapan data pre-processing. Bagian ini dikenal dengan tahapan text pre-processing. Proses pre-processing ini meliputi: (1) case folding , (2) tokenizing , (3) filtering , dan (4)
Import Dataset Pre-processing Data Rekayasa Fitur Ulasan Positif Ulasan Negatif Tampilan Workcloud Term Frequency- Inverse Document Frequency
(TF-IDF)
Gbr. 1 Alur perancangan coarse grained sentiment analysis .
Document Pre- processor Sectionizer, Tokenizer, POS, Tagger, Chunker Negation Detection Co Reference Parser, Relationship Parser
Named Entity Dependency
Parser Downstream Dictionary
Gbr. 2 Mekanisme Natural Langunge Processing (NLP).
stemming. Tahap  akhir  dari text  pre-processing adalah term- weighting. Term-weighting merupakan proses pemberian bobot term pada  dokumen . Pembobotan  ini  digunakan  untuk klasifikasi  dokumen  menggunakan Term  Frequency-Inverse Document Frequency (TF-IDF).
Gbr. 2 menjelaskan tentang mekanisme NLP. Mekanisme ini dimulai  dari  tahapan document  pre-processor , sectionizer , tokenizer , POS  tagger , chunker ,  sampai  pada  tahapan downstream application .

## IV. P EMBAHASAN
Dari  deskripsi  ulasan  yang  terdapat  pada dataset yang digunakan,  terlebih  dahulu  perlu  dilakukan  pengelompokan kategori.  Pandas  berguna  dalam  memasukkan file data  ke dalam
Python.reviews_df["review"]=reviews_df["Negative_Review"]+re views_df["Positive_Review"]
yang  berfungsi  untuk  membagi  setiap  ulasan  tekstual,  yaitu dibagi menjadi bagian positif dan negatif dan mengelompokkannya.
Gbr.  3  memperlihatkan  keluaran yang  dihasilkan  dalam pengelompokan  kategori  positif  dan  negatif.  Pada  gambar tersebut  terlihat  hasil  pengelompokan  setiap  ulasan  dari komentar yang ada. Ulasan positif diinisialisasi dengan nilai 1 dan ulasan negative diinisialisasi dengan nilai 0.
Proses  pembersihan  data  dilakukan  dengan  melakukan: import  wordnet,  import  String,  import  pos_tag,  import stopword, import WhitespaceTokenizer , dan import WordNetLemmatizer . Pos_tag adalah  simbol  yang  mewakili
Gbr. 3 Keluaran pengelompokan kategori.
Gbr. 4 Data pre-processing.
kategori leksikal: NN ( noun ), VB ( verb ), JJ ( adjective ), dan AT ( article ).
Gbr. 4 merupakan proses untuk tahapan data pre-processing . Ada  beberapa  tahapan  yang  dilakukan,  mulai  dari  tahapan pengelompokan kata sampai ke proses tokenizer .
Gbr.  5  menjelaskan  tentang  pembersihan  data  tekstual menggunakan  fungsi ‘clean  text’ dan  dilakukan  beberapa transformasi, seperti lower text (membuat huruf menjadi kecil); tokenize  the  text (memisahkan  teks  menjadi  kata-kata); menghapus tanda baca; menghapus kata-kata yang berisi angka; menghapus  kata-kata stop  word , seperti  ‘ the ’,’ a ’,  dan  ‘ this’ ; menghapus  tanda  yang  kosong;  menandai Part-of-Speech (POS):  menetapkan tag untuk  setiap  kata  untuk  didefinisikan jika sesuai dengan kata benda, kata kerja; serta lemmatize teks (mengubah setiap kata menjadi bentuk dasarnya).
Tahap  selanjutnya  adalah  rekayasa  fitur,  dimulai  dengan menambahkan fitur sentiment analysis . Proses ini menggunakan  Vader,  yang  merupakan  bagian  dari  modul NLTK  yang  dirancang  untuk sentiment  analysis .  Vader menggunakan  kamus  kata  untuk  menemukan  kata-kata  yang masuk ke dalam kategori positif atau negatif.
Gbr. 6 menjelaskan penambahan beberapa  metrik sederhana untuk  setiap  teks.  Penambahan  teks  ini  dapat  berupa penambahan  kolom  untuk  jumlah  karakter  dalam  teks  dan penambahan kolom untuk jumlah kata dalam teks.
Pada  Gbr.  7  diperlihatkan  modul  Gensim  membuat representasi  vektor  numerik  dari  setiap  kata  dalam  korpus dengan  menggunakan  konteks Word2Vec. Selanjutnya, ditambahkan  nilai  TF-IDF  untuk  setiap  kata  dan  setiap dokumen, dengan term  frequency menghitung  jumlah
Gbr. 5 Proses pembersihan data tekstual.
Gbr. 6 Penambahan karakter dan teks.
kemunculan  kata  klasik  dalam  teks,  sementara inverse document frequency menghitung kepentingan relatif dari kata, yang tergantung pada banyak teks kata dapat ditemukan.
Untuk    menampilkan  jumlah  ulasan  negatif,  menggunakan reviews_df , Hasil dari reviews df menunjukkan hasil untuk nilai negatif  dan  nilai  positif  dengan  persentase  95%  untuk  nilai positif dan 0,43% untuk komentar negatif.
Gbr. 8 menunjukkan tahapan untuk menampilkan wordcloud . Tampilan wordcloud digunakan untuk melihat sekilas kata-kata yang  muncul  di  ulasan. Wordcloud adalah  teknik  visualisasi data yang digunakan untuk mewakili data teks dengan ukuran setiap kata menunjukkan frekuensi. Pada tampilan ini terdapat kata dengan frekuensi kemunculan yang berulang, di antaranya: “ staff ”,  “ excellent ”,  “ nothing ”,  “ hotel ”,  “ friendly ”,  dan “ breakfast ”.
Gbr.  9  merupakan hasil  dari  fungsi wordcloud yang  sudah dilakukan. Terdapat beberapa kata yang mewakili kemunculan kata. Ulasan positif tertinggi lebih dari lima kata untuk sepuluh data,  seperti  ditunjukkan  pada  Gbr.  10.  Ada  beberapa  kata
positif yang terdeteksi, seperti: “ perfect ” , ” clean ” , “ lovely staff ” , “ great place ” , ” beautiful ” , dan “ good value ”.
Gbr. 11 menampilkan ulasan negatif tertinggi lebih dari lima kata  untuk  sepuluh  data.  Ada  beberapa  kata  negatif  yang terdeteksi, seperti: “ dislikes ” , “ noisy ” , “ very bad ” , dan “ nothing great ”.
Gbr.  12  menunjukkan  visualisasi  yang  dihasilkan,  dengan warna biru pada grafik menunjukkan ulasan positif dan warna oranye  menunjukkan  ulasan  negatif.  Pada  grafik  tersebut terlihat  hasil  ulasan terhadap  opini  pelanggan untuk  kategori positif lebih banyak daripada kategori negatif.
Pada good reviews terlihat  bahwa statistik yang ditampilkan naik  turun,  sementara bad  reviews masih  berada  pada  ulasan atau komentar negatif dalam kondisi yang normal.
Selanjutnya adalah memilih  fitur yang akan digunakan pada data training lalu mengelompokkannya menjadi data training dan testing .  Untuk  melakukan  prediksi,  digunakan classifier Random Forest (RF).
Gbr. 7 Representasi vektor numerik.
Gbr. 8 Fungsi wordcloud .
Gbr. 10 Ulasan positif.
Gbr.  13  menunjukkan  pengelompokan  pada  data training secara  acak  untuk  melakukan  prediksi  dengan  nilai  estimasi sebesar  100  dan random  states 42,  dengan fitur yang ditampilkan hanya dua puluh record saja.
Untuk merangkum kualitas classifier digunakan kurva ROC. Kurva ROC merupakan representasi grafis untuk menggambarkan  keakuratan  diagnostik. K urva  berada  di  atas garis  diagonal.  Semakin  tinggi  kurva  berada  di  atas  garis diagonal,  semakin  baik  nilai  prediksi  yang  dihasilkan. Diperoleh nilai  kurva ROC sebesar 0,90.  Polaritas dari ulasan yang  diperoleh yaitu 68% ulasan  pelanggan berada pada area positif dan 32% berada pada area negatif, dengan nilai akurasi prediksi  90%.
Gbr. 11 Ulasan negatif.

## V. K ESIMPULAN
S entiment analysis pada ulasan pelanggan hotel menghasilkan  klasifikasi  ulasan  untuk  kategori  positif  dan negatif  dari  komentar  yang  diberikan  pelanggan . Pola  yang diperoleh  dapat  dijadikan  sebagai  acuan  dalam  pengambilan kebijakan  bagi  level  manajemen.  Rangkuman  kualitas classifier pada makalah ini menggunakan kurva ROC dengan nilai   sebesar 0,90. Semakin tinggi kurva berada di atas garis diagonal,  semakin  baik  prediksi.  Polaritas  dari  ulasan  yang diperoleh  adalah  68%  ulasan  pelanggan  berada  pada  area positif dan 32% berada pada area negatif, dengan nilai akurasi prediksi sebesar  90%.
Gbr. 9 Hasil wordcloud function .
ISSN 2301 - 4156
R EFERENSI
[1] K.  Zvarevashe  dan  O.  O.  Olugbara,  “A  Framework  for  Sentiment Analysis  with  Opinion  Mining  of  Hotel  Reviews,” Proc.  Conf.  Inf. Commun. Technol. Soc. (ICTAS) , 2018, hal. 1–4.
[2] G. Walsh, K.P. Gwinner, dan S.R. Swanson, “What Makes Mavens Tick? Exploring  the  Motives  of  Market  Mavens’  Initiation  of  Information Diffusion, Journal of Consumer Marketing , Vol. 21, No. 2, hal. 109-122, 2014.
[3] Y.  Liu,  P.  Li,  dan  S.  Liu,  “Opinion  Mining  and  Sentiment  Analysis,” Zhonghua Bing  Li Xue Za Zhi , Vol. 24, No. 2, hal. 72–74. 1995.
[4] T. Ghorpade dan L. Ragha, “Featured Based Sentiment Classification for Hotel Reviews Using NLP and Bayesian Classification,” Proc. Int. Conf. Commun. Inf. Comput. Technol. (ICCICT) , 2012, hal. 1–5.
[5] V.B.  Raut  dan  D.D.  Londhe,  “Opinion  Mining  and  Summarization  of Hotel  Reviews,” Proc.  -  2014  6th  Int.  Conf.  Comput.  Intell.  Commun. Networks, (CICN) , 2014, hal. 556– 559.
Gbr. 12 Ulasan warna positif dan negatif.
Gbr. 13 Pengelompokan pada data training secara acak.
2, 00
1, 75
1, 50
1, 25
1, 00
0, 75 0, 50 0, 25 0, 00 -1,0 -0, 5 0, 0 0, 5 1, 0 compound Good reviews Bad reviews
[6] P. Prameswari, I. Surjandari, dan E. Laoh, “Opinion Mining from Online Reviews  in  Bali  Tourist  Area,” Proc.  3rd  Int.  Conf.  Sci.  Inf.  Technol. (ICSITech) , 2017, hal. 226–230.
[7] P. Juneja dan U. Ojha, “Casting Online Votes: To Predict Offline Results Using  Sentiment  Analysis  by  Machine  Learning  Classifiers,” 8th  Int. Conf. Comput. Commun. Netw. Technol. (ICCCNT2017) , 2017, hal. 1-6.
[8] M.  Abbas,  K.A.  Memon,  A.A.  Jamali,  S.  Memon,  dan  A.  Ahmed, “Multinomial Naive Bayes Classification Model for Sentiment Analysis,” Int. Journal of Computer Science and Network Security (IJCSNS) , Vol. 19, No. 3, 2019, hal. 62–67.
[9] S.  George  dan  S.  Joseph,  “Text  Classification  by  Augmenting  Bag  of Words  (BOW)  Representation  with Text Classification  by  Augmenting Bag of Words (BOW) Representation with Co-occurrence Feature”, IOSR Journal of Computer Engineering , Vol. 16, No. 1, hal. 34-38, 2014.
[10] E. Indrayuni, ”Analisa Sentimen Review Hotel Menggunakan Algoritma Support  Vector  Machine  Berbasis  Particle  Swam  Optimization,” J. Evolusi , Vol. 4, No. 2, hal. 20-27, 2016. [11] (2019) “Hotel Reviews”, [Online], https://www.kaggle.com/datafiniti/hotelreviews,  tanggal  akses:  1-Sep- 2019.