NLP: Analisis Sentimen Pada Ulasan Produk

Ilustrasi bintang rating
Photo by Towfiqu barbhuiya on Unsplash

Ketika berbelanja online, satu hal yang selalu saya lihat selain produk itu sendiri adalah ulasan produk tersebut. Ulasan umumnya terdiri dari 2 elemen, yaitu teks ulasan yang ditulis oleh pengulas dan tingkat rating / bintang yang diberikan. Rata-rata rating / bintang yang didapat telah menjadi panduan saya dalam membeli produk.

Rata-rata bintang adalah metrik yang mudah didapat dan mudah untuk dimengerti. Namun, teks ulasan memberikan tantangan sendiri untuk dianalisis. Mungkin mudah jika teks yang harus kita baca jumlahnya tidak banyak. Namun ketika jumlahnya banyak, tentu tidak akan mudah untuk membaca dan mengartikannya.

Bahkan jika kita menggunakan komputer pun akan memunculkan masalah baru. Komputer hanya mengerti bahasa mesin, sehingga untuk mengolah teks menggunakan komputer diperlukan bidang ilmu khusus yang dikenal dengan Natural Language Processing (NLP).

Pada rangkaian artikel ini, saya akan mencoba untuk mempraktikan beberapa teknik NLP untuk menganalisis sentimen pada ulasan produk.

Bagian 1: Pengumpulan Data

Langkah pertama saya dalam proyek ini dimulai dengan mencari dan mengumpulkan data. Karena saya ingin proyek ini terasa keren(hehehe) belajar hal baru, saya memutuskan untuk mengambil sendiri data dari internet.

Sumber data yang saya coba gali tentu saja website beberapa e-commerce yang beroperasi di Indonesia.

Untuk mempersingkat waktu, saya menggunakan ekstensi web scraper io di Chrome dalam mengambil data.

Nah, masalah mulai muncul. E-commerce yang menjadi target pertama saya melalukan blok terhadap proses scraping data. Terpaksa saya harus mencari data ke e-commerce lain.

Scraping diblok
Image by Writer

Di situs e-commerce kedua, saya berhasil mengambil sejumlah data. Namun saya menyadari beberapa hal:

1. Produk yang baik adalah produk yang banyak mendapat ulasan positif, banyak dibeli dan terus dijual. Sebaliknya produk yang buruk tidak banyak terjual, otomatis tidak banyak yang memberi ulasan (baik ulasan positif maupun negatif) bahkan tidak dijual lagi.

Sebaran Bintang
Image by Writer

2. Banyak pembeli yang hanya memberikan ulasan dalam bentuk bintang dan tidak menulis teks ulasan.

3. Banyak teks ulasan yang isinya tidak relevan dengan produk yang diulas.

Ulasan tidak relevan
Image by Writer

4. Ada sejumlah produk yang memiliki ulasan yang sama berulang-ulang.

Ulasan Berulang
Image by Writer

Sebagian besar data yang saya dapat dari situs e-commerce adalah ulasan positif dengan rating tinggi. Agak sulit mendapatkan cukup ulasan negatif dari produk yang kurang baik.

Hal ini membuat data yang saya kumpulkan tidak seimbang dan menimbulkan masalah untuk proyek klasifikasi sentimen.

Untuk mendapatkan data yang lebih seimbang saya beralih ke sumber data lain, situs khusus ulasan produk. Saya mencoba untuk mencari data ulasan negatif terlebih dahulu di produk dengan rata-rata bintang terendah.

Produk dengan ulasan negatif jarang bertahan di pasaran sehingga data ulasannya akan jauh lebih sedikit, sehingga masuk akal rasanya jika saya mencari data ulasan negatif terlebih dahulu.

Berikut adalah contoh ulasan yang saya dapatkan:

Ulasan Hometester
Image by Writer

Berbeda dengan ulasan di e-commerce, ulasan di situs ini cenderung lebih panjang dan isinya mendeskripsikan pengalaman penggunaan suatu produk.

Secara sekilas, data ini juga memiliki sejumlah masalah. Penyebutan nama produk atau merk, penggunaan singkatan dan emoticon tentu menjadi tantangan dalam NLP. Walau begitu, saya memutuskan untuk menggunakan data ini untuk melanjutkan proyek.

Untuk menjaga fokus proyek, saya hanya mengambil teks ulasan dan jumlah bintang yang berikan.

Berikut adalah contoh data yang telah saya ambil:

Contoh Data
Image by Writer

Data ini bisa digunakan untuk berbagai macam proyek NLP, diantaranya analisis sentimen terhadap suatu produk dan klasifikasi baik/buruk suatu teks ulasan.

Dengan demikian selesai sudah tahap pengumpulan data, selanjutnya data ini akan saya gunakan dalam proyek klasifikasi sentimen di artikel ini..