| --- |
| language: |
| - tr |
| license: mit |
| tags: |
| - bert |
| - text-classification |
| - sentiment-analysis |
| - turkish |
| - pytorch |
| - transformers |
| datasets: |
| - turkish_product_reviews |
| base_model: dbmdz/bert-base-turkish-cased |
| model-index: |
| - name: DexopT/BERTURK |
| results: |
| - task: |
| type: text-classification |
| name: Sentiment Analysis |
| dataset: |
| name: Turkish Product Reviews |
| type: turkish_product_reviews |
| metrics: |
| - type: accuracy |
| value: 0.9612 |
| name: Accuracy |
| - type: f1 |
| value: 0.9598 |
| name: F1 (weighted) |
| --- |
| |
| # 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 |
|
|
| ```python |
| 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 |
|
|
| ```python |
| 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 |
|
|
| ```python |
| 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](https://huggingface.co/datasets/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 |
|
|
| ```python |
| 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 |
|
|
| ```bibtex |
| @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](https://github.com/DexopT) |
|
|