CoolFace
Modelpublic

galennolan/indobertweet-indoemotion-5class

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes21downloads
Model Card

IndoBERTweet untuk Klasifikasi Emosi Bahasa Indonesia (5 Label)

Model ini merupakan hasil fine-tune lanjutan dari `Aardiiiiy/indobertweet-base-Indonesian-sentiment-analysis`. Awalnya model tersebut hanya mengenali 3 sentimen: positive, negative dan neutral. Sekarang model ini dikembangkan lebih lanjut untuk mengenali lima jenis emosi dalam teks Bahasa Indonesia:

  • —anger
  • —fear
  • —happy
  • —love
  • —sadness

🎯 Tujuan

Model ini cocok digunakan untuk analisis emosi pada:

  • —Ulasan produk
  • —Komentar sosial media
  • —Respon pengguna aplikasi
  • —Teks pendek lain yang ditulis dalam Bahasa Indonesia

Tentang Dataset

Fine-tuning menggunakan dataset PRDECT-ID (Produk Review Dataset for Emotion Classification Task - Indonesia). Dataset ini berisi ulasan produk berbahasa Indonesia dengan label emosi yang dideskripsikan sebagai berikut:

EmosiDeskripsiContoh
angerMengandung kata-kata marah, komplain, kata kasar, tanda baca kapital"Barang jelek!!! tiga hari sudah pada lepas pinggirnya, barang mahal tapi kualitasnya jelek banget"
fearMengandung kalimat peringatan, keraguan, pertanyaan terhadap produk/penjual/pengiriman"Saya sarankan buat video unboxing, hidupkan langsung dan instal CPU Z."
happyPujian, ekspresi puas, bangga terhadap produk/penjual"Mantap adminnya selalu merhatiin pembeli. Respect, proses super cepat, sampai juga cepat, barang sesuai."
loveEkspresi cinta atau suka berlebihan, pujian kuat pada produk/penjual"Produknya bagus dan sukaaakkk banget!!!"
sadnessMengekspresikan kekecewaan, penyesalan terhadap produk"Sangat kecewa, phone holder tidak lengkap, packing cuma pakai keresek hitam."

Tabel berikut menunjukkan performa model pada set validasi per epoch:

EpochTraining LossValidation LossAccuracyF1 (Macro)Precision (Macro)Recall (Macro)
10.8500000.6280580.71670.71150.71770.7167
20.6496000.6746080.72590.72530.74660.7259
30.5581000.6554730.74440.74490.75990.7444
40.4768000.7123440.74440.74250.75260.7444
50.4144000.8059330.73700.73840.74660.7370
60.3455000.9077820.74440.74520.74710.7444
70.3115000.9915950.72780.72570.72630.7278
80.2578001.1776930.72220.71970.72190.7222
90.2322001.2273670.74070.74000.74030.7407
100.2198001.2733310.74440.74430.74590.7444

Catatan tentang Performa: Berdasarkan hasil di atas, validation loss mulai meningkat setelah epoch ke-3, yang mengindikasikan potensi overfitting. Kinerja terbaik (berdasarkan F1-Score tertinggi pada set validasi sebelum validation loss meningkat signifikan) diamati pada Epoch 3 (F1: 0.7449, Accuracy: 0.7444, Validation Loss: 0.655473) atau Epoch 6 (F1: 0.7452, Accuracy: 0.7444, Validation Loss: 0.907782) jika F1-Score yang menjadi fokus utama meskipun validation loss sudah lebih tinggi. Pengguna disarankan untuk mengevaluasi checkpoint dari epoch-epoch tersebut atau melakukan fine-tuning lebih lanjut dengan strategi mitigasi overfitting (seperti yang didiskusikan dalam penelitian terkait model ini).

🔍 Contoh Penggunaan

Contoh penggunaan model untuk klasifikasi emosi menggunakan Hugging Face pipeline:

python
from transformers import pipeline

classifier = pipeline("text-classification", model="galennolan/indobertweet-indoemotion-5class")

text = "Produknya bagus tapi pengiriman lama."
hasil = classifier(text)
print(hasil)
# [{'label': 'anger', 'score': ...}]
# Decode label index
label_id = int(hasil[0]['label'].split('_')[-1])
print("Emotion:", le.inverse_transform([label_id])[0])