Turkish Social Media Emotion Classifier (BERTurk fine-tuned)
A fine-tuned version of dbmdz/bert-base-turkish-128k-uncased for 7-class emotion classification of Turkish (and mixed Turkish/English) social media text.
Labels
The model predicts one of 7 basic emotion categories (Ekman's basic emotions + neutrality):
| Label | Description |
|---|---|
happiness |
Joy, gratitude, positive appreciation |
surprise |
Shock, disbelief, unexpectedness |
sadness |
Grief, sorrow |
anger |
Frustration, criticism, hostility |
fear |
Anxiety, worry, distress |
disgust |
Revulsion, contempt |
neutral |
No dominant emotional content |
Training Data
The model was fine-tuned on a semi-supervised training set of Turkish/English social media messages (brand posts and user comments), weakly labeled via emoji co-occurrence with emotion lexicons (Turkish Emotion Lexicon and NRC Emotion Lexicon). The training corpus is heavily imbalanced toward happiness, reflecting the natural distribution of emoji-labeled social media content:
| Label | N | % |
|---|---|---|
| Happiness | 68,977 | 66.5 |
| Anger | 11,156 | 10.8 |
| Surprise | 7,349 | 7.1 |
| Fear | 6,279 | 6.0 |
| Sadness | 5,785 | 5.6 |
| Disgust | 3,322 | 3.2 |
| Neutrality | 919 | 0.9 |
| Total | 103,787 | 100.0 |
Training Procedure
Fine-tuned for 5 epochs with a 15% held-out validation split.
| Epoch | Training Loss | Validation Loss | Accuracy | Macro F1 |
|---|---|---|---|---|
| 1 | 0.6537 | 0.5061 | 0.8307 | 0.7377 |
| 2 | 0.4716 | 0.4775 | 0.8370 | 0.7487 |
| 3 | 0.4251 | 0.4842 | 0.8354 | 0.7492 |
| 4 | 0.3907 | 0.4846 | 0.8372 | 0.7568 |
| 5 | 0.3674 | 0.4937 | 0.8352 | 0.7547 |
Evaluation Results
Evaluated on a held-out 15% test split (n=15,569):
| Label | Precision | Recall | F1-score | Support |
|---|---|---|---|---|
| Anger | 0.61 | 0.72 | 0.66 | 1,674 |
| Disgust | 0.97 | 0.83 | 0.90 | 498 |
| Fear | 0.79 | 0.55 | 0.65 | 942 |
| Happy | 0.88 | 0.94 | 0.91 | 10,347 |
| Neutral | 0.90 | 0.94 | 0.92 | 138 |
| Sad | 0.87 | 0.67 | 0.76 | 867 |
| Surprise | 0.75 | 0.45 | 0.56 | 1,103 |
| Accuracy | 0.84 | 15,569 | ||
| Macro avg | 0.82 | 0.73 | 0.77 | 15,569 |
| Weighted avg | 0.84 | 0.84 | 0.83 | 15,569 |
Model performance is strongest on the majority happy class and the (small-support) disgust and neutral classes, and weaker on surprise and fear, largely reflecting class imbalance in the weakly-labeled training data.
Intended Use
This model classifies the dominant emotion in Turkish-language social media text, including brand posts and user replies/comments. It may generalize to other Turkish social media sentiment/emotion tasks depending on domain similarity.
Limitations: Training labels were derived automatically from emoji co-occurrence rather than human annotation, so label noise is present. Performance on minority classes (fear, surprise) is comparatively weaker.
How to Use
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
model_name = "<your-username>/<model-repo-name>"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)
classifier("Bugün harika bir gün geçirdim, çok mutluyum 😊")
Base Model
This model was fine-tuned from dbmdz/bert-base-turkish-128k-uncased (BERTurk), a Turkish BERT model trained by MDZ Digital Library team at the Bavarian State Library.
- Downloads last month
- -
Model tree for atanaltay/brands_emotion_textual_v1
Base model
dbmdz/bert-base-turkish-128k-uncased