|
|
--- |
|
|
license: mit |
|
|
language: |
|
|
- id |
|
|
library_name: transformers |
|
|
pipeline_tag: text-classification |
|
|
tags: |
|
|
- indonesian |
|
|
- indonesia |
|
|
- topic-classification |
|
|
- bert |
|
|
- text-classification |
|
|
datasets: |
|
|
- custom |
|
|
inference: true |
|
|
model-index: |
|
|
- name: BERT Indonesian Topic Classification (15 labels) |
|
|
results: |
|
|
- task: |
|
|
type: text-classification |
|
|
name: Topic Classification |
|
|
dataset: |
|
|
name: Custom Indonesian Dataset |
|
|
type: custom |
|
|
split: validation |
|
|
metrics: |
|
|
- type: accuracy |
|
|
value: 0.92 |
|
|
- type: f1 |
|
|
name: f1_macro |
|
|
value: 0.89 |
|
|
- type: f1 |
|
|
name: f1_micro |
|
|
value: 0.91 |
|
|
--- |
|
|
|
|
|
# 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 |
|
|
|
|
|
```python |
|
|
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: |
|
|
|
|
|
```bibtex |
|
|
@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} |
|
|
} |
|
|
``` |
|
|
|