Dalam kehidupan sehari-hari di dunia modern ini, kita sebagai manusia melakukan komumikasi setidaknya dalam 2 platform digital yaitu messenger seperti Whatsapp dan social media seperti Facebook, Instagram, atau YouTube. Komunikasi yang dilakukan mayoritas adalah secara verbal melalui caption, direct message, komentar dan lain-lain. Jika dipandang lebih mendalam, pada platform-platform tersebut diisi oleh berbagai lapisan masyarakat seperti siswa, guru, pebisnis bahkan influencer. Pada sisi bisnis, ketika seorang enterpreneur ingin merancang strategi pemasaran yang jitu maka ia perlu mengetahui topik yang sedang hangat diantara konsumennya. Salah satu pendekatannya adalah dengan melihat perbincangan yang ada di platform digital. Dengan jumlah konsumen yang mencapai ribuan bahkan mugkin jutaan, akan sulit untuk memahami secara keseluruhan dan nyaris tidak mungkin untuk mendapatkan pemahaman dari perbincangan tersebut karena jumlah informasi yang terlalu banyak bahkan ada yang tidak penting.
Skenario di atas menunjukkan awal dari apa yang disebut sebagai text mining, 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. Text mining sejatinya adalah bagian dari Data Mining atau Context Mining yang memiliki tujuan untuk menghasilkan suatu informasi penting mengenai suatu fenomena. Pada pembahasan kali ini, akan dilakukan text mining yang akan menghasilkan sentyment analysis dan wordcloud dari data yang ada. Data yang digunakan kali ini adalah kumpulan (corpus) dari perbincangan di Twitter mengenai Donald Trump dan Hillary Clinton.
Gambar tersebut menunjukkan tampilan awal dari data yang berbentuk format .TAB dan dipindah ke Notepad untuk menghasilkan format .txt (penting untuk menyimpan data yang akan diolah work directory dari Rstudio) sebelum akhirnya dibuka di aplikasi Rstudio.
Start Mining
Setelah mendapatkan data tersebut, kita belum dapat menganalisa karena kita perlu merapikan beberapa hal dari data tersebut. Pada awal script tuliskan “getwd()” untuk melihat work directory dari Rstudio, dan untuk membuka data tweet tersebut digunakan perintah “readLines”.
Kemudian, kumpulan kata yang masih terpisah-pisah dalam banyak kalimat tersebut akan dipisah-pisah ke dalam sejumlah vektor dengan perintah “str”dan diubah menjadi satu kalimat panjang saja dengan perintah “paste” dan “collapse”. Hasil pengolahan tersebut akan dinamai Type1.
Data Cleansing
Setelah mendapatkan format tersebut, akan dilakukan cleaning pada data yang bertujuan untuk menghilangkan hal-hal yang tidak dibutuhkan dalam analisa nantinya. Perintah yang akan digunakan berikut ini adalah “gsub(pattern=”\\W”, replace=” “, Type1)” yang artinya adalah mencari spasi dan tanda baca (spaces & punctuations) dalam data Type1 dan mengubahnya menjadi spasi (“ ”).
Setelah itu hasil pengolahannya dinamai dengan Type2, untuk membedakan operasi dan hasil dari Type1. Selanjutnya dilakukan eliminasi pula pada digits yang tidak diperlukan dalam analisa nantinya, dengan menggunakan perintah “gsub(pattern=”\\d”, replace=” “, Type2)” yang artinya akan mencari nomor dari 0 hingga 9 dan menggantikannya dengan hal yang sama pada Type1 yaitu spasi (“ ”)
Berikutnya, penulis akan merubah susunan huruf kapital yang ada pada data sehingga nantinya huruf kapital maupun huruf biasa / huruf kecil tidak diidentifikasi sebagai dua hal yang berbeda.
Berikutnya di-install sebuah package untuk melakukan text mining yaitu packages(“tm”), dan penulis akan mencari stopword. Stopword itu sendiri merupakan sebuah kata-kata yang biasanya muncul dan dianggap tidak memiliki makna Berikut ini adalah hasilnya,
Didapatkan sebanyak 174 stopword dari hasil operasi tersebut, penulis akan menghilangkan stopword tersebut sehingga data teks yang diterima lebih memiliki arti dengan menggunakan perintah “removeWords(Type2, stopwords())”. Berikut ini adalah hasilnya yang kemudian format tersebut disimpan ke dalam Type2,
Setelah itu, penulis akan menghilangkan beberapa huruf yang dianggap tidak penting dalam data ini dengan menggunakan perintah “gsub(pattern=”\\b[A-z]\\b{1}”, replace=” “, Type2)”. Di bawah ini adalah hasilnya,
Untuk melihat perbedaan yang ada dapat diketik pada script “Type2”, hal ini karena perubahan hasil operasi pada versi data Type2 belum disimpan. Setelah disimpan, dilanjutkan pada operasi untuk menghilangkan spasi yang berlebihan pada data dengan perintah “stripWhitespace(Type2)”. Berikut adalah hasilnya,
Sentiment Analysis & Wordcloud
Pada titik ini sudah dilakukan banyak sekali perubahan pada data mentah yang ada di awal tadi, jika ingin melihat perbadaan yang sudah dilakukan dapat diketik pada script “Type1” dan “Type2” yang akan menunjukkan perbedaan format data akibat operasi-operasi yang dilakukan di atas.
Pada tahap ini, penulis meng-install beberapa package yang dibutuhkan dalam sentiment analysis dan wordcloud yaitu “stringr” dan “wordcloud”. Setelah melakukannya, buka packages tersebut dengan perintah “library(stringr)” dan “library(wordcloud)”.
Operasi berikut ini akan menggunakan fungsi yang ada pada packages “stringr” yaitu fungsi “split” yang akan mengubah format data ke dalam bentuk kata per kata sehingga akan lebih spesifik dan menghindari adanya salah pemahaman dari kalimat yang ada. Berikut ini adalah hasilnya,
Dari data yang ada terdapat hingga 24.000 an kata, setelah itu format ini akan diubah ke dalam versi baru yaitu “textluggage”. Selanjutnya, penulis akan menuliskan perintah “class(textluggage)” untuk membuat format baru tersebut ke dalam bentuk elemen karakter / character sehingga dapat dilanjutkan ke proses berikutnya. Di bawah ini adalah hasilnya,
Pada tahap selanjutnya akan dilihat berapa banyak kata-kata positif (posword) dan kata-kata negatif (negword) yang ada pada tweet tersebut. Sebelumnya, perlu adanya file yang menyimpan kata-kata positif maupun negatif tersebut di dalam laptop / PC yang berada pada work directory dari Rstudio sehingga dapat digunakan. Selanjutnya pada script Rstudio ketik “poswords <- scan(‘Positive Word.txt’, what=’character’, comment=’;’)” untuk kata-kata negatif hanya perlu mengganti posword menjadi negword dan nama file yang menyimpan kata-kata negatif tersebut. Beginilah hasilnya,
Selanjutnya, dilakukan perhitungan jumlah kata-kata positif dan negatif sehingga dapat dilanjutkan pada sentimental analysis berdasarkan selisih antara dua kelompok kata tersebut. Berikut adalah hasilnya,
Berdasarkan perhitungan tersebut, didapat sebanyak 940 kata positif dan 267 kata negatif yang ada pada data tweet tersebut. Sentimen analysis pada saat ini adalah dengan berdasar pada selisih antara kelompok kata positif dan negatif, pada perhitungan tersebut didapatkan hasil 703 yang artinya perbincangan ini memiliki sentimen positif. Tentunya hasil ini dapat berubah sewaktu-waktu dan bergantung pada kamus kata positif dan negatif yang digunakan pada analisa.
Selanjutnya, penulis akan melakukan visualisasi kata berupa wordcloud berdasarkan data yang telah dianalisa. Berikut ini adalah hasilnya,
Dengan menambahkan perintah “freq=” kita dapat meyortir wordcloud tersebut menjadi kata yang ditampilkan adalah kata yang minimal digunakan sebanyak n kali. Berikut ini digunakan perintah “wordcloud(textluggage, min.freq=6)” yang artinya kata dalam wordcloud yang ditampilkan adalah kata yang digunakan minimal 6 kali dalam data tweet ini,
Berikut ini adalah wordcloud yang telah dirapikan sesuai dengan kata yang paling banyak digunakan hingga ke yang paling jarang, menggunakan perintah “wordcloud(textluggage, min.freq=6, random.order=FALSE)”. Berikut adalah hasilnya yang telah diberi warna,
Kata “true” menjadi yang paling besar karena penulis kurang teliti dalam merapikan data yang diterima di awal sebelum melakukan analisa dengan aplikasi Rstudio ini.
Summary
Media komunikasi di platform digital telah menjadi wilayah baru tempat manusia melakukan komunikasi berkat bantuan teknologi yang ada, dalam analisa dari kumpulan data tweet yang dilakukan mengandung sentimen yang positif dan ada dua kata yang dominan karena paling sering digunakan yaitu “https” dan “true”.
Cukup sampai disini pembahasan penulis mengenai text mining dengan aplikasi Rstudio, perlu diketahui bahwa penulis menggunakan beberapa kutipan yang berasal dari sumber-sumber yang telah dicantumkan di bawah artikel ini.
Melihat cermin tampak wajah diri
Rupawan sekali tampangnya
Pembaca sekalian jaga diri
Tetap aman dan sehat semuanya
Referensi penulis :
https://medium.com/@irvanseptiar/introduction-sentiment-analysis-mudah-5785f88e435d
https://informatikalogi.com/text-preprocessing/
Minqing Hu and Bing Liu. “Mining and Summarizing Customer Reviews.”
Proceedings of the ACM SIGKDD International Conference on Knowledge
Discovery and Data Mining (KDD-2004), Aug 22-25, 2004, Seattle,
Washington, USA,
Bing Liu, Minqing Hu and Junsheng Cheng. “Opinion Observer: Analyzing
and Comparing Opinions on the Web.” Proceedings of the 14th
International World Wide Web conference (WWW-2005), May 10-14,
2005, Chiba, Japan.