--- language: en license: mit tags: - text-classification - argumentation - fallacy-detection - argument-scheme - roberta - pytorch datasets: - EthiX - Macagno metrics: - f1 - accuracy model-index: - name: ArgueBot Unified Argument & Fallacy Classifier results: - task: type: text-classification metrics: - type: f1 value: 1.8465 name: Macro F1 --- # ArgueBot — Unified Argument Scheme & Fallacy Classifier A fine-tuned **RoBERTa-large** model that classifies text into one of **24 categories**: - **11 argument scheme types** (valid argumentative patterns from Walton's taxonomy) - **13 logical fallacy types** (common informal fallacies) The model determines both *whether* an argument is valid or fallacious *and* which specific type it is — in a single inference pass. --- ## Model Details | Property | Value | |---|---| | Base model | `roberta-large` | | Task | 24-class text classification | | Scheme classes | 11 | | Fallacy classes | 13 | | Datasets | EthiX + Macagno (argument schemes), Fallacy dataset (13 types) | | Epochs trained | 5 (early stopping) | | Best val metric | 1.8465 (val_loss) | --- ## Labels ### ✅ Argument Schemes (valid arguments) - `argument from alternatives` - `argument from analogy` - `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` --- ## How to Use ```python from transformers import RobertaTokenizer, RobertaForSequenceClassification import torch, json model_id = "your-username/arguebot-argument-fallacy-classifier" tokenizer = RobertaTokenizer.from_pretrained(model_id) model = RobertaForSequenceClassification.from_pretrained(model_id) model.eval() # Load label metadata import requests meta = requests.get( f"https://huggingface.co/{model_id}/resolve/main/metadata.json" ).json() label_map = {int(k): v for k, v in meta["label_map"].items()} scheme_ids = set(meta["scheme_ids"]) fallacy_ids = set(meta["fallacy_ids"]) def predict(text): enc = tokenizer(text, return_tensors="pt", truncation=True, max_length=128) with torch.no_grad(): logits = model(**enc).logits probs = torch.softmax(logits, dim=1).squeeze() pred_id = int(probs.argmax()) label = label_map[pred_id] verdict = "Valid Argument" if pred_id in scheme_ids else "Fallacy" return { "verdict": verdict, "label": label, "confidence": float(round(probs[pred_id].item(), 4)), } print(predict("According to NASA, global temperatures will rise 2°C by 2050.")) # {'verdict': 'Valid Argument', 'label': 'argument from expert opinion', 'confidence': 0.94} print(predict("Don't trust him — he was caught lying before.")) # {'verdict': 'Fallacy', 'label': 'ad hominem', 'confidence': 0.88} ``` --- ## Training Details - **Deduplication**: exact + near-duplicate removal, min 5 words per sample - **Class balancing**: `sklearn compute_class_weight("balanced")` + weighted cross-entropy loss - **Batch strategy**: custom `InterleavedSampler` alternates scheme/fallacy samples per batch - **Early stopping**: patience=3, min_delta=0.001, monitor=`val_loss` - **Optimiser**: AdamW, lr=3e-05, weight_decay=0.01 - **Scheduler**: linear warmup (15% of steps) --- ## Intended Uses - Debate analysis and argumentation quality assessment - Educational tools for teaching critical thinking and informal logic - AI-assisted fact-checking and media literacy tools - Research in computational argumentation ## Limitations - Trained on English text only - Short texts (< 5 words) may produce unreliable predictions - Some fallacy types (e.g. `intentional`, `equivocation`) are harder to distinguish without broader context - Not suitable for legal or medical decision-making --- ## Citation If you use this model in your research, please cite: ``` @misc{arguebot2025, title = {ArgueBot: Unified Argument Scheme and Fallacy Classification}, author = {Isabel}, year = {2025}, url = {https://huggingface.co/your-username/arguebot-argument-fallacy-classifier} } ``` --- *Built with RoBERTa-large · EthiX + Macagno datasets · Walton's Argumentation Schemes*