BERTurk — Türkçe Duygu Analizi
dbmdz/bert-base-turkish-cased modeli üzerine Türkçe ürün yorumları ile fine-tune edilmiş bir duygu analizi (sentiment analysis) modelidir.
Model Detayları
| Özellik | Değer |
|---|---|
| Temel model | dbmdz/bert-base-turkish-cased |
| Görev | İkili sınıflandırma (Pozitif / Negatif) |
| Dil | Türkçe |
| Doğruluk | %96.12 |
| F1 Skoru | 0.9598 |
| Parametre | ~110M |
| Max token | 128 |
Kullanım
Transformers Pipeline
from transformers import pipeline
sentiment = pipeline(
"text-classification",
model="DexopT/BERTURK"
)
sonuc = sentiment("Ürün gerçekten harika, çok memnun kaldım!")
print(sonuc)
# [{'label': 'positive', 'score': 0.9934}]
Manuel Kullanım
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "DexopT/BERTURK"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
model.eval()
metin = "Berbat bir ürün, para israfı."
inputs = tokenizer(metin, return_tensors="pt", truncation=True, max_length=128)
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.softmax(logits, dim=-1)[0]
label_id = probs.argmax().item()
label = model.config.id2label[label_id]
guven = probs[label_id].item()
print(f"Sonuç : {label}")
print(f"Güven : {guven:.4f}")
print(f"Pozitif : {probs[1].item():.4f}")
print(f"Negatif : {probs[0].item():.4f}")
Toplu Tahmin
yorumlar = [
"Harika ürün, kesinlikle tavsiye ederim!",
"Çok kötü, hiç memnun kalmadım.",
"Fiyatına göre gayet iyi.",
"Kargo geç geldi ama ürün kaliteliydi.",
]
for yorum in yorumlar:
r = sentiment(yorum, truncation=True, max_length=128)[0]
print(f"[{r['label'].upper():8}] {r['score']:.2%} → {yorum[:50]}")
Eğitim
Veri Seti
Turkish Product Reviews veri seti kullanılmıştır.
- Toplam: ~235.000 Türkçe e-ticaret yorumu
- Eğitim: 18.000 örnek
- Test: 2.000 örnek
- Etiketler:
positive(1),negative(0)
Hiperparametreler
TrainingArguments(
num_train_epochs = 3,
per_device_train_batch_size = 32,
per_device_eval_batch_size = 64,
learning_rate = 2e-5,
warmup_steps = 200,
weight_decay = 0.01,
fp16 = True, # T4 GPU
evaluation_strategy = "epoch",
load_best_model_at_end = True,
metric_for_best_model = "f1",
)
Eğitim Sonuçları
| Epoch | Train Loss | Val Loss | Doğruluk | F1 |
|---|---|---|---|---|
| 1 | 0.1303 | 0.1664 | 95.40% | 94.56% |
| 2 | 0.1001 | 0.1555 | 95.80% | 95.63% |
| 3 | 0.0812 | 0.1489 | 96.12% | 95.98% |
Eğitim Ortamı
- GPU: NVIDIA T4 (Google Colab)
- Süre: ~20 dakika
- Framework: PyTorch + Hugging Face Transformers
Etiketler
| ID | Label | Açıklama |
|---|---|---|
| 0 | negative |
Negatif yorum |
| 1 | positive |
Pozitif yorum |
Sınırlılıklar
- Maksimum token uzunluğu 128 olarak ayarlanmıştır, uzun metinler kırpılır.
- Model yalnızca Türkçe üzerinde eğitilmiştir; diğer dillerde güvenilir sonuç vermez.
- Nötr veya karma duygular içeren yorumlarda doğruluk düşebilir.
- Ürün yorumları dışındaki metin türleri (haber, akademik metin vb.) için optimize edilmemiştir.
Lisans
MIT License
Atıf
@misc{berturk2025,
author = {Yılmaz KARAAĞAÇ (DexopT)},
title = {BERTurk: Turkish Sentiment Analysis},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/DexopT/BERTURK}
}
Yılmaz KARAAĞAÇ · GitHub
- Downloads last month
- 41
Model tree for DexopT/BERTURK
Base model
dbmdz/bert-base-turkish-casedDataset used to train DexopT/BERTURK
Evaluation results
- Accuracy on Turkish Product Reviewsself-reported0.961
- F1 (weighted) on Turkish Product Reviewsself-reported0.960