Downloads · 30 days
19
2% of all-time downloads
SteadyHands/climate-fallacy-roberta
climate-fallacy-roberta is a text classification model from SteadyHands. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as apache-2.0.
This model is a DistilRoBERTa–based text classification model fine-tuned to detect logical fallacies in climate-related text. It predicts one of 11 logical fallacy labels (including “NOFALLACY”) for a given sentence o…
Downloads · 30 days
19
2% of all-time downloads
All-time downloads
855
Public
Parameters
82.1M
329 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors329 MB · 99%
From the Hugging Face model README
This model is a DistilRoBERTa–based text classification model fine-tuned to detect logical fallacies in climate-related text.
It predicts one of 11 logical fallacy labels (including “NO_FALLACY”) for a given sentence or short paragraph.
The model was trained as part of an academic NLP project on “Automated Detection of Logical Fallacies in Climate Change Social Media Posts using Small Language Models (SLMs)”.
distilroberta-baseThe model is trained to predict the following labels:
CHERRY_PICKINGEVADING_THE_BURDEN_OF_PROOFFALSE_ANALOGYFALSE_AUTHORITYFALSE_CAUSEHASTY_GENERALISATIONNO_FALLACYPOST_HOCRED_HERRINGSSTRAWMANVAGUENESSid2label / label2id mappings are stored in the model config and are consistent with the training code.
The model was fine-tuned on the climate subset of the open-source dataset from:
Tariq60 – fallacy-detection repository
https://github.com/Tariq60/fallacy-detection
Only the climate portion of the dataset was used, with the standard split:
train/ – training examplesdev/ – validation examplestest/ – held-out evaluation setEach example includes:
No fallacy)basic_clean function:
distilroberta-baseTrainer)AutoTokenizerAutoModelForSequenceClassificationTrainingArgumentsTrainerfrom the Transformers library.
Evaluation was done on the held-out climate test set from the dataset.
Metrics (multi-class):
These values are baseline experimental results on a relatively small and imbalanced dataset. They should be interpreted as preliminary research numbers, not as production-ready performance.
Different random seeds, data balancing strategies, or more aggressive hyperparameter tuning can change these numbers.
In the associated project, this classifier is combined with a small language model (e.g., google/flan-t5-small) to generate natural-language explanations of the predicted fallacy label:
What the fallacy means in simple terms
Why the input text might be an example
This setup is used in a Streamlit app:
Users enter a climate-related argument
The model predicts a fallacy label
FLAN-T5 generates a short explanation
If you use this model in academic work, you can cite it as:
Kyeremeh, F. (2025). Climate Logical Fallacy Classifier (DistilRoBERTa). Hugging Face. Model: SteadyHands/climate-fallacy-roberta.
And also consider citing the original dataset author(s):
Tariq60. fallacy-detection GitHub repository. https://github.com/Tariq60/fallacy-detection
Base model: distilroberta-base by Hugging Face
Dataset: Climate subset from Tariq60’s fallacy-detection repository
Transformers
Datasets
scikit-learn
Master ’s-level NLP / Data Science coursework on Small Language Models and explainable NLP.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_id = "SteadyHands/climate-fallacy-roberta"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSequenceClassification.from_pretrained(model_id)
text = "Climate has always changed in the past, so current warming can't be caused by humans."
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
padding="max_length",
max_length=256,
)
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probs = torch.softmax(logits, dim=-1)[0].tolist()
pred_id = int(torch.argmax(logits, dim=-1).item())
id2label = model.config.id2label
pred_label = id2label[str(pred_id)] if isinstance(id2label, dict) else id2label[pred_id]
print("Text:", text)
print("Predicted label:", pred_label)
print("Probabilities:", probs)
Using the Transformers Pipeline
```python
from transformers import pipeline
clf = pipeline(
"text-classification",
model="SteadyHands/climate-fallacy-roberta",
top_k=None, # set top_k=3 to see top-3 fallacies
)
text = "Temperatures dropped this winter, so global warming must be a hoax."
outputs = clf(text)
print(outputs)