Downloads · 30 days
4
4% of all-time downloads
Faisaljabir/sentiment-bert
sentiment-bert is a text classification model from Faisaljabir. Use it when you need a label for a piece of text. The card lists the license as mit.
Model ini adalah BERT yang di-fine-tune untuk mengklasifikasikan sentimen ulasan film berbahasa Indonesia menjadi dua kategori: Positif (LABEL1) atau Negatif (LABEL0).
Downloads · 30 days
4
4% of all-time downloads
All-time downloads
104
Public
Parameters
109M
876 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors438 MB · 100%
From the Hugging Face model README
Model ini adalah BERT yang di-fine-tune untuk mengklasifikasikan sentimen ulasan film berbahasa Indonesia menjadi dua kategori: Positif (LABEL_1) atau Negatif (LABEL_0).
Model ini dibuat sebagai bahan pembelajaran bagi pemula yang ingin memahami proses fine-tuning model bahasa (Language Model) dari awal hingga publikasi di HuggingFace.
bert-base-uncased (Google, 2019)Model ini dapat langsung digunakan untuk mengklasifikasikan sentimen teks ulasan film berbahasa Indonesia tanpa training tambahan.
from transformers import pipeline
nlp = pipeline("text-classification", model="Faisaljabir/sentiment-bert")
hasil = nlp("Film ini sangat bagus dan menghibur!")
print(hasil)
# Output: [{'label': 'LABEL_1', 'score': 0.92}]
# LABEL_1 = Positif, LABEL_0 = Negatif
Model ini dapat di-fine-tune lebih lanjut untuk:
Model ini tidak cocok untuk:
Untuk penggunaan serius, disarankan:
indobenchmark/indobert-base-p1from transformers import pipeline
# Load model
nlp = pipeline("text-classification", model="username_kamu/sentiment-bert")
# Prediksi satu teks
hasil = nlp("Film ini sangat menghibur!")
print(hasil)
# [{'label': 'LABEL_1', 'score': 0.89}]
# Prediksi banyak teks sekaligus
ulasan_list = [
"Ceritanya bagus dan akting pemainnya luar biasa",
"Membosankan dan tidak ada yang menarik",
"Biasa saja, tidak istimewa",
]
hasil_list = nlp(ulasan_list)
for ulasan, hasil in zip(ulasan_list, hasil_list):
label = "POSITIF" if hasil["label"] == "LABEL_1" else "NEGATIF"
print(f"{label} ({hasil['score']:.2f}): {ulasan}")
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained("Faisaljabir/sentiment-bert")
model = BertForSequenceClassification.from_pretrained("Faisaljabir/sentiment-bert")
teks = "Film yang sangat bagus!"
inputs = tokenizer(teks, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
outputs = model(**inputs)
pred = torch.argmax(outputs.logits).item()
print("POSITIF" if pred == 1 else "NEGATIF")
Faisaljabir/ulasan-film-indonesiaBertTokenizer (bert-base-uncased)| Parameter | Nilai |
|---|---|
| Base model | bert-base-uncased |
| Learning rate | 2e-5 |
| Epochs | 3 |
| Batch size | 8 |
| Optimizer | AdamW |
| Epsilon | 1e-8 |
| Max sequence length | 64 |
| Frozen layers | Layer 0–9 (10 layer pertama di-freeze) |
| Trainable layers | Layer 10–11 + classifier head |
Menggunakan teknik partial freezing:
Evaluasi dilakukan pada test set yang terpisah (3 data, tidak pernah dilihat selama training).
| Metrik | Penjelasan |
|---|---|
| Accuracy | Proporsi prediksi yang benar |
| F1-Score | Rata-rata harmonis Precision dan Recall |
| AUC-ROC | Area under ROC curve (0.5=random, 1=sempurna) |
⚠️ Catatan: Hasil sangat bervariasi karena data test hanya 3 sampel. Ini adalah model tutorial, bukan model produksi.
| Model | Accuracy | F1-Score | AUC-ROC |
|---|---|---|---|
| MLP (tabular) | ~0.67 | ~0.67 | ~0.70 |
| BERT (teks) | ~0.67 | ~0.67 | ~0.75 |
Hasil aktual bisa berbeda setiap run karena data sangat kecil.
Model berhasil menyelesaikan proses fine-tuning BERT end-to-end dari data mentah hingga publikasi di HuggingFace. Untuk tujuan pembelajaran, proses ini sudah mendemonstrasikan semua konsep penting: tokenisasi, fine-tuning, evaluasi, dan deployment.
Estimasi menggunakan Machine Learning Impact Calculator.
| Parameter | Nilai |
|---|---|
| Hardware type | Google Colab (CPU/T4 GPU) |
| Hours used | < 0.5 jam |
| Cloud provider | Google Cloud Platform |
| Compute region | us-central1 (Iowa, USA) |
| Carbon emitted | ~0.001 kg CO₂eq (sangat kecil) |
BertForSequenceClassification
├── BertModel (bert-base-uncased)
│ ├── BertEmbeddings
│ ├── BertEncoder (12 layers)
│ │ ├── Layer 0–9 : FROZEN (tidak dilatih)
│ │ └── Layer 10–11: TRAINABLE
│ └── BertPooler : TRAINABLE
└── Classifier
├── Linear(768 → 2)
└── Softmax
Jika menggunakan model atau tutorial ini, silakan kutip sebagai:
BibTeX:
@misc{Faisaljabir-sentimentbert,
author = {Faisal Jabir},
title = {Sentiment BERT: Tutorial Fine-tuning BERT untuk Pemula},
year = {2026},
publisher = {HuggingFace},
url = {https://huggingface.co/Faisaljabir/sentiment-bert}
}
APA: Faisal Jabir. (2026). Sentiment BERT: Tutorial Fine-tuning BERT untuk Pemula. HuggingFace. https://huggingface.co/Faisaljabir/sentiment-bert
| Istilah | Penjelasan |
|---|---|
| Fine-tuning | Melatih ulang model pre-trained pada data spesifik |
| Tokenisasi | Mengubah teks menjadi token (angka) yang bisa dibaca model |
| Epoch | Satu putaran training melewati semua data |
| Batch | Kelompok data yang diproses sekaligus |
| Frozen layer | Layer yang tidak diubah parameternya saat training |
| BERT | Bidirectional Encoder Representations from Transformers |
| F1-Score | Metrik yang menyeimbangkan Precision dan Recall |
| Overfitting | Model hafal data training tapi buruk di data baru |
Untuk pertanyaan atau laporan masalah, hubungi melalui:
Model card ini dibuat sebagai bagian dari tutorial pembelajaran Machine Learning untuk pemula. Semua konsep dijelaskan dengan bahasa yang mudah dipahami.