ro-political-fake-news-v2
Fine-tuned dumitrescustefan/bert-base-romanian-cased-v1 for Romanian fake-news / misinformation scoring (v2).
Unlike v1 (manuelraileanu/ro-political-fake-news, XLM-RoBERTa, output normalized to [0, 1]),
this model uses a single regression head trained on the raw 0-100 labeling scale
(v2 labeling pipeline, combined ground-truth + gemma2:9b labeled data, all 4 training sources).
Output
A single regression value on the 0-100 scale:
- 0 = factual, verifiable, truthful
- 50 = questionable claims, exaggerations
- 100 = blatant disinformation, conspiracy
Outputs can slightly fall outside [0, 100] (regression head); clamp if needed.
For binary classification, threshold at 50.
This measures misinformation truthfulness of the claims in the text,
independent of whether the text is human- or AI-written.
Training
- Base model:
dumitrescustefan/bert-base-romanian-cased-v1 - Dataset 3 (all sources): ClickbaitSciTechRO + SaRoCo (ground-truth binary 0/100 labels)
ro-news-offense+ro-political(labeled withgemma2:9bvia Ollama)
- Labeled rows: 159266 (train), 17697 (test, 10% split, seed 42)
- fp16, batch_size=16, grad_accum=2, max_length=512, weight_decay=0.01
- learning_rate=2e-05, 7 epochs, MSE loss, early stopping on
mae(patience=2)
Dataset sources
| source | link | labels |
|---|---|---|
| ro-political (~120k social-media texts about the 2024-2025 RO presidential elections) | petrematei/ro-political | gemma2:9b |
| news-ro-offense (Romanian reader comments on news articles) | readerbench/news-ro-offense | gemma2:9b |
| SaRoCo (Romanian sarcasm detection corpus, news articles) | MihaelaGaman/SaRoCo | ground truth |
| ClickbaitSciTechRO (Romanian clickbait vs. science/tech headlines) | ralucaginga/ClickbaitSciTechRO | ground truth |
Results (test set, 0-100 scale)
- MAE: 9.34
- RMSE: 19.41
- Binary accuracy @ threshold 50: 0.833
- Macro F1 @ threshold 50: 0.833
Cross-dataset evaluation (same model, tested on the other curated datasets):
| eval dataset | accuracy | macro F1 | MAE |
|---|---|---|---|
| ds1 (clickbait + SaRoCo) | 0.993 | 0.993 | 0.99 |
| ds2 (news-ro-offense + ro-political) | 0.865 | 0.863 | 4.81 |
| ds3 (all sources, in-domain) | 0.833 | 0.833 | 9.34 |
Usage
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
model_id = "manuelraileanu/ro-political-fake-news-v2"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSequenceClassification.from_pretrained(model_id).eval()
inputs = tok("Vaccinurile conțin cipuri 5G iar guvernul ascunde adevărul.", return_tensors="pt")
with torch.no_grad():
score = model(**inputs).logits.reshape(-1)[0].item() # 0 (truthful) .. 100 (disinformation)