|
|
--- |
|
|
library_name: transformers |
|
|
tags: |
|
|
- Dissonant Detection |
|
|
- transformers |
|
|
- bert |
|
|
language: |
|
|
- tr |
|
|
metrics: |
|
|
- accuracy |
|
|
base_model: |
|
|
- ytu-ce-cosmos/turkish-base-bert-uncased |
|
|
pipeline_tag: text-classification |
|
|
--- |
|
|
# **Sengil/ytu-bert-base-dissonance-tr** 🇹🇷 |
|
|
|
|
|
A Turkish BERT-based model fine-tuned for three-way sentiment classification on single-sentence discourse. |
|
|
This model categorizes input sentences into one of the following classes: |
|
|
|
|
|
**Dissonance:** The sentence contains conflicting or contradictory sentiments |
|
|
_e.g.,_ "Telefon çok kaliteli ve hızlı bitiyor şarjı" |
|
|
**Consonance:** The sentence expresses harmonizing or mutually reinforcing sentiments |
|
|
_e.g.,_ "Yemeklerde çok güzel manzarada mükemmel" |
|
|
**Neither:** The sentence is neutral or does not clearly reflect either dissonance or consonance |
|
|
_e.g.,_ "Bu gün hava çok güzel" |
|
|
|
|
|
|
|
|
The model was trained on 37,368 Turkish samples and evaluated on two separate sets of 4,671 samples each. |
|
|
It achieved 97.5% accuracy and 97.5% macro-F1 score on the test set, demonstrating strong performance in distinguishing subtle semantic contrasts in Turkish sentences. |
|
|
|
|
|
|**Model Details** | | |
|
|
| -------------------- | ----------------------------------------------------- | |
|
|
| **Developed by** | Mert Şengil | |
|
|
| **Model type** | `BertForSequenceClassification` | |
|
|
| **Base model** | `ytu-ce-cosmos/turkish-base-bert-uncased` | |
|
|
| **Languages** | `tr` (Turkish) | |
|
|
| **License** | Apache-2.0 | |
|
|
| **Fine-tuning task** | 3-class sentiment (dissonance / consonance / neither) | |
|
|
|
|
|
## Uses |
|
|
|
|
|
```python |
|
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
|
import torch |
|
|
|
|
|
model_id = "Sengil/ytu-bert-base-dissonance-tr" |
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id) |
|
|
model = AutoModelForSequenceClassification.from_pretrained(model_id) |
|
|
|
|
|
text = "onu çok seviyorum ve güvenmiyorum." |
|
|
text = text.replace("I", "ı").lower() |
|
|
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding="max_length", max_length=128) |
|
|
with torch.no_grad(): |
|
|
logits = model(**inputs).logits |
|
|
|
|
|
label_id = int(logits.argmax()) |
|
|
id2label = {0: "Dissonance", 1: "Consonance", 2: "Neither"} |
|
|
|
|
|
print(f"{{'label': '{id2label[label_id]}','score':{logits.argmax()}}}") |
|
|
``` |
|
|
output: |
|
|
``` |
|
|
{'label': 'Dissonance','score':0} |
|
|
``` |
|
|
|**Training Details** | | |
|
|
| ---------------------- | ---------------------------------------------- | |
|
|
| **Training samples** | 37 368 | |
|
|
| **Validation samples** | 4 671 | |
|
|
| **Test samples** | 4 671 | |
|
|
| **Epochs** | 4 | |
|
|
| **Batch size** | 32 (train) / 16 (eval) | |
|
|
| **Optimizer** | `AdamW` (lr = 2 × 10⁻⁵, weight\_decay = 0.005) | |
|
|
| **Scheduler** | Linear with 10 % warm-up | |
|
|
| **Precision** | FP32 | |
|
|
| **Hardware** | 1× GPU P100 | |
|
|
|
|
|
### Training Loss Progression |
|
|
| Epoch | Train Loss | Val Loss | |
|
|
| ----: | ---------: | ---------: | |
|
|
| 1 | 0.2661 | 0.0912 | |
|
|
| 2 | 0.0784 | 0.0812 | |
|
|
| 3 | 0.0520 | 0.0859 | |
|
|
| 4 | **0.0419** | **0.0859** | |
|
|
|
|
|
## Evaluation |
|
|
|
|
|
| Metric | Value | |
|
|
| ------------------- | ---------: | |
|
|
| **Accuracy (test)** | **0.9750** | |
|
|
| **Macro-F1 (test)** | **0.9749** | |
|
|
|
|
|
|**Environmental Impact** | | |
|
|
| ----------------------- | -------------------- | |
|
|
| **Hardware** | 1× A100-40 GB | |
|
|
| **Training time** | ≈ 4 × 7 min ≈ 0.47 h | |
|
|
|
|
|
|
|
|
## Citation |
|
|
|
|
|
``` |
|
|
@misc{Sengil2025DisConBERT, |
|
|
title = {Sengil/ytu-bert-base-dissonance-tr: A Three-way Dissonance/Consonance Classifier}, |
|
|
author = {Şengil, Mert}, |
|
|
year = {2025}, |
|
|
url = {https://huggingface.co/Sengil/ytu-bert-base-dissonance-tr} |
|
|
} |
|
|
``` |
|
|
|
|
|
--- |
|
|
I would like to thank YTU for their open-source contributions that supported the development of this model. |
|
|
For issues or questions, please open an issue on the Hub repo or contact **[mert sengil](https://www.linkedin.com/in/mertsengil/)**. |