Semua proyek

Analisis Sentimen Berbasis Aspek untuk Ulasan Berbahasa Indonesia

Tim 2 orang · Proyek mata kuliah NLP (COMP6885) · BINUS · 2025/26

Ulasan berbahasa Indonesia yang informal dan campur bahasa sering menilai sebuah aspek tanpa menyebut namanya.

  1. Baca ulasan
  2. Temukan aspeknya
  3. Nilai satu per satu

“pengiriman sangat lama hampir semingguPengiriman tapi harganya murahHarga dan barangnya berkualitas bagusKualitas produk”

  • Kualitas produkPositif98,7%
  • HargaPositif98,4%
  • PengirimanNegatif96,2%
  • Layanan penjualTidak disebut98,9%
  • KemasanTidak disebut98,3%

Walkthrough output model yang sebenarnya. IndoBERT, 7 Okt 2026. Penanda frasa ditambahkan manual.

Peran saya
Memimpin pengembangan model transformer dan evaluasinya. Ikut menganotasi seluruh 1.500 ulasan.
Tim
2 mahasiswa: Valentino Allen Prasetyo, Michael Hendrilie
Stack
Python, Transformers, Streamlit

Masalah

Rating bintang tidak menunjukkan bagian mana dari pesanan yang disukai pembeli. Ulasan e-commerce berbahasa Indonesia membuatnya lebih sulit: bahasanya informal, bercampur antara bahasa Indonesia dan Inggris, dan sering menilai sebuah aspek tanpa menyebutnya.

“Barang sampai peyok” adalah opini negatif tentang kemasan, walaupun kata kemasan sama sekali tidak muncul.

Pendekatan

Kami menganotasi 1.500 ulasan Tokopedia (7.474 pasangan ulasan–aspek) untuk lima aspek: kualitas produk, harga, pengiriman, layanan penjual, dan kemasan. Setiap pasangan mendapat satu dari empat kelas: positif, negatif, netral, atau tidak disebut. Setiap ulasan kami label secara terpisah, lalu perbedaan label kami selesaikan bersama.

Mengikuti Sun et al., setiap ulasan dipasangkan dengan pertanyaan tentang satu aspek, sehingga satu model menangani deteksi aspek dan sentimen sekaligus. Empat model dilatih dengan setup yang sama persis: TF-IDF dengan SVM, TF-IDF dengan logistic regression, IndoBERT, dan IndoBERTweet.

Paper mata kuliah (tidak dipublikasikan), Natural Language Processing (COMP6885), BINUS, semester ganjil 2025/26.

Aplikasi Streamlit ABSA, dijalankan secara lokal, menganalisis ulasan “pengiriman sangat lama hampir seminggu tapi harganya murah dan barangnya berkualitas bagus”: kualitas produk dan harga positif, pengiriman negatif, layanan penjual dan kemasan tidak disebut
Contoh output dari model

Hasil

IndoBERT dan IndoBERTweet tidak berbeda secara statistik (p = 0,13), jadi pre-training dengan data tweet tidak membantu.

Aplikasinya mengembalikan prediksi per aspek dalam waktu kurang dari satu detik per ulasan.

Macro-F1 sentimen, test set (224 ulasan)
ModelMacro-F1
IndoBERT0,794
IndoBERTweet0,790
TF-IDF + logistic regression0,537
TF-IDF + SVM0,345
Recall deteksi aspek, IndoBERT
AspeknyaRecall
Disebut dalam ulasan0,907
Tersirat, tidak disebut0,899

Yang saya kerjakan

Saya memimpin penentuan lingkup proyek dan pertanyaan riset, pipeline preprocessing teks, formulasi sentence-pair empat kelas, fine-tuning IndoBERT dan IndoBERTweet, serta seluruh evaluasi: deteksi aspek, sentimen, aspek implisit, uji lintas domain, dan uji McNemar. Saya juga mengerjakan analisis error, video demo, dan repositorinya.

Michael Hendrilie memimpin pengumpulan dan pembersihan dataset, baseline TF-IDF, aplikasi Streamlit, dan slide. Kami menganotasi seluruh 1.500 ulasan bersama dan menulis paper bersama.

Keterbatasan

Kesepakatan antar-anotator tidak diukur. Label bergantung pada pelabelan ganda yang disepakati bersama.

Semua ulasan berasal dari Tokopedia, jadi platform lain belum diuji.

Kelas netral dihapus untuk pengiriman, layanan penjual, dan kemasan, sehingga ketiga aspek itu praktis hanya punya tiga kelas.

Harga hanya disebut sepuluh kali di test set, jadi skor per aspeknya hanya bersifat indikatif.

Proyek berikutnya

Proyek berikutnya: Prediksi Dini Mahasiswa Putus Kuliah