Indonesian Sentiment Analysis
Model klasifikasi sentimen untuk teks berbahasa Indonesia menggunakan fine-tuning IndoBERT. Model ini mampu mengklasifikasikan teks ke dalam tiga kelas sentimen: Positif, Negatif, dan Netral.
Model Description
Model ini merupakan hasil fine-tuning dari indobenchmark/indobert-base-p1 (IndoBERT) untuk tugas Text Classification — khususnya analisis sentimen teks berbahasa Indonesia. IndoBERT adalah model BERT yang dilatih dengan corpus bahasa Indonesia berskala besar, sehingga sangat cocok untuk NLP tasks dalam bahasa Indonesia.
- Developed by: Hadisawara
- Model type: BERT-based Text Classifier (Fine-tuned)
- Language: Indonesian (id)
- License: MIT
- Base model:
indobenchmark/indobert-base-p1 - Task: Sentiment Analysis (Text Classification)
- Labels: POSITIVE, NEGATIVE, NEUTRAL
Intended Uses & Limitations
Intended Uses
- Analisis sentimen ulasan produk berbahasa Indonesia
- Analisis sentimen media sosial (Twitter, Instagram, dll.)
- Monitoring opini publik berbahasa Indonesia
- Analisis sentimen pengaduan/keluhan masyarakat
- Penelitian NLP bahasa Indonesia
Limitations
- Model dioptimalkan untuk teks bahasa Indonesia formal dan informal
- Performa mungkin menurun pada teks dengan banyak kosakata daerah/slang yang tidak umum
- Tidak dirancang untuk teks multibahasa (campur kode berat)
How to Use
Installation
pip install transformers torch
Quick Start
from transformers import pipeline
# Load model langsung dari Hugging Face Hub
sentiment_analyzer = pipeline(
"text-classification",
model="Hadisawara/indonesian-sentiment-analysis"
)
# Contoh penggunaan
texts = [
"Produk ini sangat bagus dan berkualitas tinggi!",
"Pelayanan sangat buruk, saya kecewa.",
"Barang sudah diterima dengan kondisi baik."
]
for text in texts:
result = sentiment_analyzer(text)
print(f"Teks: {text}")
print(f"Sentimen: {result[0]['label']} (score: {result[0]['score']:.4f})")
print()
Manual Usage
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "Hadisawara/indonesian-sentiment-analysis"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def predict_sentiment(text):
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
max_length=512,
padding=True
)
with torch.no_grad():
outputs = model(**inputs)
predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
labels = ["NEGATIVE", "NEUTRAL", "POSITIVE"]
predicted_label = labels[predictions.argmax().item()]
confidence = predictions.max().item()
return {"label": predicted_label, "confidence": confidence}
# Test
result = predict_sentiment("Aplikasi ini sangat membantu pekerjaan saya!")
print(result) # {"label": "POSITIVE", "confidence": 0.98}
Training Details
Training Data
Model dilatih menggunakan dataset sentimen bahasa Indonesia yang mencakup:
- Ulasan e-commerce (Tokopedia, Shopee, dll.)
- Tweet dan posting media sosial berbahasa Indonesia
- Ulasan aplikasi mobile
- Data pengaduan publik
Total dataset: ~10.000 sampel terlabel
- POSITIVE: ~35%
- NEGATIVE: ~35%
- NEUTRAL: ~30%
Training Procedure
Hyperparameters
| Parameter | Value |
|---|---|
| Base model | indobenchmark/indobert-base-p1 |
| Learning rate | 2e-5 |
| Batch size | 16 |
| Epochs | 5 |
| Max sequence length | 512 |
| Optimizer | AdamW |
| Warmup steps | 500 |
| Weight decay | 0.01 |
Training Framework
- Framework: PyTorch + Hugging Face Transformers
- Hardware: GPU (CUDA)
- Training time: ~2 jam
Evaluation Results
Metrics on Test Set
| Metric | Score |
|---|---|
| Accuracy | 87.3% |
| F1-Score (macro) | 86.1% |
| Precision (macro) | 86.5% |
| Recall (macro) | 85.8% |
Per-class Results
| Label | Precision | Recall | F1 |
|---|---|---|---|
| POSITIVE | 89.2% | 91.0% | 90.1% |
| NEGATIVE | 88.7% | 87.3% | 88.0% |
| NEUTRAL | 81.5% | 79.1% | 80.3% |
Citation
Jika Anda menggunakan model ini dalam penelitian Anda, silakan kutip:
@misc{hadisawara2026indonesian,
title={Indonesian Sentiment Analysis: Fine-tuned IndoBERT for Indonesian Text Classification},
author={Hadisawara},
year={2026},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/Hadisawara/indonesian-sentiment-analysis}}
}
Acknowledgements
- IndoBERT oleh IndoNLU Benchmark
- Hugging Face Transformers
- Komunitas NLP Indonesia
Contact
Untuk pertanyaan dan kolaborasi, silakan hubungi melalui Hugging Face Community tab atau buka issue di repository ini.
- Downloads last month
- 24
Model tree for Hadisawara/indonesian-sentiment-analysis
Base model
indobenchmark/indobert-base-p1