Klasifikasi Emosi Ulasan E-Commerce Indonesia (IndoBERT - Fine-Tuned)

Model ini merupakan hasil fine-tuning dari IndoBERT untuk klasifikasi emosi multikelas pada teks ulasan produk e-commerce berbahasa Indonesia.

Model ini dikembangkan sebagai bagian dari penelitian skripsi yang membandingkan performa model Generative AI (Zero-Shot & Few-Shot) dengan model Fine-tuning berbasis BERT. Berdasarkan hasil pengujian, model IndoBERT ini mencapai performa terbaik dengan F1-Score dan Akurasi sebesar 84%.

πŸ“ Deskripsi Model

Selama proses fine-tuning, seluruh parameter model dilatih ulang secara menyeluruh, mencakup:

  • Lapisan Embedding: Penyesuaian representasi vektor kata terhadap kosakata e-commerce.
  • Lapisan Encoder: Optimasi 12 lapisan transformer untuk menangkap konteks emosi dalam bahasa Indonesia.
  • Classification Head: Lapisan linear di atas model dasar untuk memetakan representasi teks ke dalam 5 kategori emosi.

Model ini dirancang untuk diintegrasikan ke dalam sistem analisis emosi untuk membantu pelaku industri memahami emosi pelanggan secara otomatis.

πŸ“Š Dataset

Model ini dilatih menggunakan dataset PRDECT-ID, sebuah dataset ulasan produk Tokopedia yang mencakup 29 kategori produk.

  • Label: Anger (Marah), Fear (Takut), Happy (Senang), Love (Suka), dan Sadness (Sedih).
  • Publikasi: PRDECT-ID: Indonesian product reviews dataset for emotion classification tasks
  • DOI: 10.1016/j.dib.2022.108554

πŸ“ˆ Hasil Evaluasi (Evaluation Results)

Evaluasi dilakukan untuk mengukur efektivitas model pada data uji:

  • Akurasi: 84%
  • F1-Score (Macro): 84%
  • Precision (Macro): 85%
  • Recall (Macro): 84%

βš™οΈ Prosedur Pelatihan (Training Procedure)

  • Model Dasar: indobenchmark/indobert-base-p1
  • Framework: PyTorch & Hugging Face Transformers
  • Hardware: NVIDIA Tesla T4 (Google Colab)
  • Metode: Full Fine-tuning (Semua parameter dilatih ulang)
  • Optimizer: AdamW
  • Learning Rate: 20e-6
  • Epochs: 20 (Maximum)

⏱️ Kinerja Inferensi (Inference Performance)

Berdasarkan pengujian pada dataset PRDECT-ID, model menunjukkan efisiensi sebagai berikut:

  • Rata-rata Latency: 0,063 detik/sampel
  • Throughput: 647 sampel/menit

⚠️ Batasan Penggunaan (Limitations)

  1. Konteks Data: Model ini paling optimal digunakan untuk ulasan produk e-commerce. Penggunaan pada teks formal atau domain lain (seperti politik atau medis) mungkin menurunkan akurasi.
  2. Bahasa: Khusus Bahasa Indonesia (termasuk bahasa tidak baku/slang yang umum di platform e-commerce).
  3. Kategori Emosi: Terbatas pada lima kategori (Anger, Fear, Happy, Love, Sadness).

βœ… Cara Penggunaan (Usage)

Anda dapat menggunakan model ini menggunakan library transformers berbasis PyTorch:

import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModelForSequenceClassification

# 1. Inisialisasi
model_path = "Rasyy/indobert_multiclass_emotion_classifier_for_indonesian_e_commerce_reviews"
label_map = {0: 'Anger', 1: 'Fear', 2: 'Happy', 3: 'Love', 4: 'Sad'}

def load_model_and_tokenizer(path):
    try:
        print("Memuat tokenizer & model...")
        tokenizer = AutoTokenizer.from_pretrained(path)
        model = AutoModelForSequenceClassification.from_pretrained(path)
        print("Model siap digunakan!")
        return tokenizer, model
    except Exception as e:
        print(f"Error: {e}")
        return None, None

tokenizer, model = load_model_and_tokenizer(model_path)

# 2. Prediksi
text = "Barangnya bagus banget, pengiriman cepat dan kurir ramah. Suka!"
inputs = tokenizer(
    text,
    max_length=128, # Sesuaikan dengan max_length saat training
    truncation=True,
    padding='max_length',
    return_tensors='pt'
)

with torch.no_grad():
    outputs = model(**inputs)
    logits = outputs.logits
    
# 3. Hitung Probabilitas
probabilities = F.softmax(logits, dim=-1).squeeze().cpu().numpy()
predicted_class_id = torch.argmax(logits, dim=1).item()
predicted_label = label_map.get(predicted_class_id, "Unknown")

# Output hasil
print(f"Teks: {text}")
print(f"Prediksi: {predicted_label}")
print(f"Skor Probabilitas: {probabilities[predicted_class_id]:.4f}")
Downloads last month
11
Safetensors
Model size
0.1B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Rasyy/indobert_multiclass_emotion_classifier_for_indonesian_e_commerce_reviews

Finetuned
(105)
this model

Dataset used to train Rasyy/indobert_multiclass_emotion_classifier_for_indonesian_e_commerce_reviews