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

Confusion Matrix

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:

  1. Olahraga - Berita dan informasi seputar dunia olahraga
  2. Kecelakaan - Laporan kecelakaan dan insiden
  3. Pendidikan - Topik seputar pendidikan dan pembelajaran
  4. Politik - Berita politik, pemerintahan, dan kebijakan
  5. Judi Online - Konten terkait perjudian online
  6. Teknologi - Perkembangan teknologi dan inovasi
  7. Kriminalitas - Berita kriminal dan hukum
  8. Infrastruktur - Pembangunan dan infrastruktur
  9. Kesehatan - Topik kesehatan dan medis
  10. Lalu Lintas - Informasi transportasi dan lalu lintas
  11. Bencana Alam - Laporan bencana dan cuaca
  12. Ekonomi - Berita ekonomi dan bisnis
  13. Keuangan - Topik keuangan dan investasi
  14. Kemiskinan - Isu sosial dan kemiskinan
  15. 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
Safetensors
Model size
111M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Collection including nahiar/BERT-topic-modelling-v1

Evaluation results