BERT Indonesian Topic Classification (15 labels)
Base model: cahya/bert-base-indonesian-1.5G
Task: Topic classification (single-label)
Labels (15): Olahraga, Kecelakaan, Pendidikan, Politik, Judi Online, Teknologi, Kriminalitas, Infrastruktur, Kesehatan, Lalu Lintas, Bencana Alam, Ekonomi, Keuangan, Kemiskinan, Pariwisata
Intended use
Model ini digunakan untuk klasifikasi topik teks berbahasa Indonesia pada 15 kategori utama. Model dapat mengklasifikasikan artikel berita, postingan media sosial, dan dokumen teks lainnya ke dalam kategori yang sesuai seperti politik, ekonomi, olahraga, teknologi, dan sebagainya.
Limitations
- Performa model bergantung pada distribusi label dataset yang digunakan
- Teks di luar domain (OOD) yang tidak serupa dengan data training dapat mengalami penurunan akurasi
- Model dilatih khusus untuk bahasa Indonesia dan mungkin tidak optimal untuk bahasa lain
- Performa dapat bervariasi tergantung pada panjang dan kompleksitas teks input
Training details
- Framework: ๐ค Transformers (PyTorch)
- Base model: cahya/bert-base-indonesian-1.5G
- Max length: 512 tokens
- Batch size: 16
- Epochs: 3
- Learning rate: 2e-5
- Weight decay: 0.01
- Warmup ratio: 0.1
- Scheduler: Linear
- Mixed precision: Enabled
- Optimizer: AdamW
Evaluation
- Data split: 80/20 stratified split
- Accuracy (validation): 92.1%
- F1 Macro (validation): 89.3%
- F1 Micro (validation): 91.2%
Model menunjukkan performa yang baik dan seimbang di semua kategori. Detail evaluasi per label tersedia dalam file eval_results.json
.
How to use
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# Load model dan tokenizer
repo_id = "your-username/bert-indonesian-topic-classification"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForSequenceClassification.from_pretrained(repo_id).eval()
# Contoh penggunaan
text = "Pemerintah Indonesia mengumumkan kebijakan ekonomi baru untuk mendorong pertumbuhan UMKM di tengah situasi global yang menantang."
# Tokenize dan prediksi
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
logits = model(**inputs).logits
# Dapatkan prediksi
pred_id = logits.argmax(-1).item()
confidence = torch.softmax(logits, dim=-1).max().item()
label = model.config.id2label[pred_id]
print(f"Predicted topic: {label}")
print(f"Confidence: {confidence:.4f}")
Additional Information
Label Categories
Model ini dapat mengklasifikasikan teks ke dalam 15 kategori berikut:
- Olahraga - Berita dan informasi seputar dunia olahraga
- Kecelakaan - Laporan kecelakaan dan insiden
- Pendidikan - Topik seputar pendidikan dan pembelajaran
- Politik - Berita politik, pemerintahan, dan kebijakan
- Judi Online - Konten terkait perjudian online
- Teknologi - Perkembangan teknologi dan inovasi
- Kriminalitas - Berita kriminal dan hukum
- Infrastruktur - Pembangunan dan infrastruktur
- Kesehatan - Topik kesehatan dan medis
- Lalu Lintas - Informasi transportasi dan lalu lintas
- Bencana Alam - Laporan bencana dan cuaca
- Ekonomi - Berita ekonomi dan bisnis
- Keuangan - Topik keuangan dan investasi
- Kemiskinan - Isu sosial dan kemiskinan
- Pariwisata - Informasi wisata dan travel
Citation
Jika menggunakan model ini dalam penelitian atau proyek, mohon cantumkan referensi:
@misc{bert-indonesian-topic-classification-2025,
title={BERT Indonesian Topic Classification (15 labels)},
author={Your Name},
year={2025},
url={https://huggingface.co/your-username/bert-indonesian-topic-classification}
}
- Downloads last month
- 73
Collection including nahiar/BERT-topic-modelling-v1
Evaluation results
- accuracy on Custom Indonesian Datasetvalidation set self-reported0.920
- f1_macro on Custom Indonesian Datasetvalidation set self-reported0.890
- f1_micro on Custom Indonesian Datasetvalidation set self-reported0.910