Downloads · 30 days
19
7% of all-time downloads
Rasyy/indobert_multiclass_emotion_classifier_for_indonesian_e_commerce_reviews
indobert_multiclass_emotion_classifier_for_indonesian_e_commerce_reviews is a text classification model from Rasyy. Use it when you need a label for a piece of text. The card lists the license as apache-2.0.
Model ini merupakan hasil fine-tuning dari IndoBERT untuk klasifikasi emosi multikelas pada teks ulasan produk e-commerce berbahasa Indonesia.
Downloads · 30 days
19
7% of all-time downloads
All-time downloads
263
Public
Parameters
124M
498 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors498 MB · 100%
From the Hugging Face model README
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%.
Selama proses fine-tuning, seluruh parameter model dilatih ulang secara menyeluruh, mencakup:
Model ini dirancang untuk diintegrasikan ke dalam sistem analisis emosi untuk membantu pelaku industri memahami emosi pelanggan secara otomatis.
Model ini dilatih menggunakan dataset PRDECT-ID, sebuah dataset ulasan produk Tokopedia yang mencakup 29 kategori produk.
Anger (Marah), Fear (Takut), Happy (Senang), Love (Suka), dan Sadness (Sedih).Evaluasi dilakukan untuk mengukur efektivitas model pada data uji:
indobenchmark/indobert-base-p1Berdasarkan pengujian pada dataset PRDECT-ID, model menunjukkan efisiensi sebagai berikut:
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}")