Isabelbinu/roberta-large-argumentscheme-fallacy-classifier
05
ArgueBot — Argument Scheme & Fallacy Classifier
This model is a fine-tuned version of roberta-large trained on a combined dataset of argument schemes and logical fallacies. It classifies any input text into one of 24 categories — either a valid argument scheme type or a logical fallacy type — in a single inference pass.
Model Details
Training Parameters
These are the exact parameters used to train this model:
Early Stopping
The best model checkpoint is saved automatically whenever validation loss improves. When early stopping triggers, the best weights are restored before evaluation.
Data Preprocessing
Supported Labels
✅ Argument Schemes (valid arguments)
- Argument from Analogy
- Argument from Alternatives
- Argument from Cause to Effect
- Argument from Commitment
- Argument from Example
- Argument from Expert Opinion
- Argument from Negative Consequences
- Argument from Positive Consequences
- Argument from Practical Reasoning
- Argument from Sign
- Argument from Values
⚡ Fallacy Types
- Ad Hominem
- Ad Populum
- Appeal to Emotion
- Circular Reasoning
- Equivocation
- Fallacy of Credibility
- Fallacy of Extension
- Fallacy of Logic
- Fallacy of Relevance
- False Causality
- False Dilemma
- Faulty Generalization
- Intentional
Dataset
- Text column:
Argument - Label column:
Label - Both datasets combined into a single CSV before training
Results
How to Load and Use the Model
Step 1 — Install
pip install transformers torchStep 2 — Load from Hugging Face
import json, torch, requests
from transformers import AutoTokenizer, AutoModelForSequenceClassification
MODEL_PATH = "Isabelbinu/roberta-large-argumentscheme-fallacy-classifier"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_PATH)
model.eval()
meta = requests.get(f"https://huggingface.co/{MODEL_PATH}/resolve/main/metadata.json").json()
label_map = {int(k): v for k, v in meta["label_map"].items()}
scheme_ids = set(meta["scheme_ids"])
def predict(text):
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128)
with torch.no_grad():
probs = torch.softmax(model(**inputs).logits, dim=-1).squeeze()
pred_id = int(probs.argmax())
return {
"verdict": "✅ Valid Argument" if pred_id in scheme_ids else "⚡ Fallacy",
"label": label_map[pred_id],
"confidence": f"{probs[pred_id]:.1%}",
}
# Test 1
print(predict("Introducing a four-day work week will boost employee wellbeing, reduce burnout, and ultimately increase overall productivity."))
# Test 2
print(predict("Don't trust him — he was caught lying before, so everything he says is wrong."))
Applications
- Education: Teach critical thinking by identifying argument types in real texts
- Debate Analysis: Evaluate the quality of reasoning in speeches and essays
- Fact-checking: Flag logically flawed reasoning in news and social media
- Media Literacy: Help readers identify manipulation tactics in persuasive content
- AI Assistants: Add argumentation reasoning to conversational AI systems
License
This model is licensed under the MIT License.
