ABSA-mBERT-ASC (Aspect Sentiment Classification)
Model ini adalah hasil fine-tuning dari bert-base-multilingual-uncased (mBERT) khusus untuk domain ulasan produk monitor berbahasa Indonesia, pada tugas Aspect Sentiment Classification (ASC). Model memprediksi sentimen (Positif/Netral/Negatif) dari sebuah ulasan terhadap satu aspek tertentu, sebagai tahap kedua dari pipeline Aspect-Based Sentiment Analysis (ABSA) dua tahap (ACD β ASC).
Catatan domain: Model ini di-fine-tune secara spesifik pada data diskusi komunitas monitor (bukan produk umum), sehingga performa terbaiknya berada pada teks berbahasa Indonesia yang membahas monitor β termasuk jargon teknis seperti refresh rate, ghosting, IPS, sRGB, dan satuan seperti Hz/ms. Penggunaan di luar domain ini (produk lain) belum tentu memberikan performa setara.
Model ini dilatih sebagai pembanding terhadap varian IndoBERT dalam penelitian skripsi: "Implementasi Aspect-Based Sentiment Analysis (ABSA) Berbasis IndoBERT untuk Pemetaan Keluhan pada Ulasan Produk Monitor"
Detail Model
| Nama Model | ABSA-mBERT-ASC |
| Model Dasar | bert-base-multilingual-uncased |
| Di-fine-tune oleh | Louders Yoakim Telaumbanua |
| Bahasa | Indonesia (id), basis multilingual |
| Task | Text Classification (Aspect Sentiment Classification) |
| Lisensi | Apache 2.0 |
| Framework | Hugging Face Transformers & PyTorch |
Label Sentimen
| Index | Label |
|---|---|
| 0 | Negatif |
| 1 | Netral |
| 2 | Positif |
Format Input
Model ini bukan classifier teks biasa β ia butuh konteks aspek yang sedang dinilai. Format input mengikuti pola "{kode_aspek} {teks_ulasan}", di mana kode_aspek didapat dari keluaran model ACD pasangannya (absa-mbert-acd).
Cara Penggunaan
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("loudersyoakim/absa-mbert-asc")
model = AutoModelForSequenceClassification.from_pretrained("loudersyoakim/absa-mbert-asc")
sentiment_labels = ["Negatif", "Netral", "Positif"]
aspect_code = "C2" # contoh: hasil deteksi dari model ACD, misal "Harga & Nilai"
text = "Warnanya akurat banget, tapi harganya agak mahal dibanding toko sebelah."
asc_input = f"{aspect_code} {text}"
inputs = tokenizer(asc_input, return_tensors="pt", truncation=True, max_length=128)
with torch.no_grad():
logits = model(**inputs).logits
pred_idx = int(torch.argmax(logits, dim=1).item())
print(sentiment_labels[pred_idx]) # -> "Negatif"
Model ini tidak mendeteksi aspek mana yang dibahas β itu tugas model pasangannya. Untuk pipeline lengkap, jalankan
absa-mbert-acdterlebih dahulu untuk mendapatkan daftar aspek, baru masukkan tiap aspek ke model ini.
Pipeline Lengkap
teks ulasan β [ACD: absa-mbert-acd] β daftar aspek yang terdeteksi
β [ASC: model ini] β sentimen (Positif/Netral/Negatif) per aspek
Data Pelatihan
Model dilatih pada pasangan (ulasan, aspek, sentimen) dari ulasan produk monitor berbahasa Indonesia yang identik dengan varian IndoBERT (5.985 pasangan berlabel, split β80:10:10 per-ulasan), untuk menjaga konsistensi perbandingan performa antar arsitektur dasar.
Hyperparameter terbaik hasil grid search: batch 16, learning rate 2e-5, 5 epoch (identik dengan IndoBERT-ASC). Kombinasi ekstrem (batch 16, lr 5e-5) menurunkan F1-Macro drastis dari 0,8864 menjadi 0,7231, mengonfirmasi tugas ASC sangat sensitif terhadap hyperparameter pada kedua arsitektur.
Evaluasi β Skenario 1: Ground-Truth Aspect (Data Uji)
| Metrik | Skor |
|---|---|
| Accuracy | 0,8963 |
| F1-Macro | 0,8956 |
| F1-Micro | 0,8963 |
| Sentimen | Precision | Recall | F1 |
|---|---|---|---|
| Negatif | 0,93 | 0,92 | 0,93 |
| Netral | 0,83 | 0,92 | 0,87 |
| Positif | 0,92 | 0,86 | 0,89 |
Sama seperti IndoBERT, model paling andal mendeteksi sentimen Negatif (F1 0,93), dengan kesalahan klasifikasi terbanyak pada batas NetralβPositif.
Evaluasi β Skenario 2: End-to-End (ACD β ASC berantai)
| Metrik | Skor |
|---|---|
| Accuracy | 0,5676 |
| F1-Macro | 0,7645 |
| F1-Micro | 0,7883 |
Penurunan F1-Macro sebesar 14,6% dibanding Skenario 1 (dari 0,8956 β 0,7645) β sedikit lebih besar dari penurunan pada IndoBERT (12,8%), mengindikasikan mBERT sedikit kurang tangguh terhadap efek cascading error dari tahap ACD.
Metrik lengkap lainnya (confusion matrix, interval kepercayaan bootstrap, uji McNemar vs IndoBERT) tersedia pada folder evaluation/ di repositori penelitian.
Model Terkait
| Model | Task |
|---|---|
absa-indobert-acd |
Aspect Category Detection β basis IndoBERT |
absa-indobert-asc |
Aspect Sentiment Classification β basis IndoBERT |
absa-mbert-acd |
Aspect Category Detection β basis mBERT |
absa-mbert-asc (model ini) |
Aspect Sentiment Classification β basis mBERT |
Sitasi
@misc{telaumbanua2026absa,
author = {Telaumbanua, Louders Yoakim},
title = {Implementasi Aspect-Based Sentiment Analysis (ABSA) Berbasis IndoBERT untuk Pemetaan Keluhan pada Ulasan Produk Monitor},
year = {2026},
note = {Skripsi}
}
- Downloads last month
- 11
Model tree for loudersyoakim/absa-mbert-asc
Base model
google-bert/bert-base-multilingual-uncased