--- license: apache-2.0 datasets: - MidhunKanadan/logical-fallacy-classification language: - en metrics: - accuracy - precision - recall - f1 base_model: - roberta-large pipeline_tag: text-classification library_name: transformers tags: - fallacy-detection - logical-fallacies - text-classification - transformers - roberta - fallacy-classification --- # roberta-large-fallacy-classification This model is a fine-tuned version of `roberta-large` trained on the [Logical Fallacy Classification Dataset](https://huggingface.co/datasets/MidhunKanadan/logical-fallacy-classification). It is capable of classifying various types of logical fallacies in text. ## Model Details - **Base Model**: `roberta-large` - **Dataset**: Logical Fallacy Dataset - **Number of Classes**: 13 - **Training Parameters**: - **Learning Rate**: 2e-6 - **Batch Size**: 8 (gradient accumulation for an effective batch size of 16) - **Weight Decay**: 0.01 - **Training Epochs**: 15 - **Mixed Precision (FP16)**: Enabled - **Features**: - Class weights to handle dataset imbalance - Tokenization with truncation and padding (maximum length: 128) ## Supported Fallacies The model can classify the following types of logical fallacies: 1. **Equivocation** 2. **Faulty Generalization** 3. **Fallacy of Logic** 4. **Ad Populum** 5. **Circular Reasoning** 6. **False Dilemma** 7. **False Causality** 8. **Fallacy of Extension** 9. **Fallacy of Credibility** 10. **Fallacy of Relevance** 11. **Intentional** 12. **Appeal to Emotion** 13. **Ad Hominem** ## Text Classification Pipeline To use the model for quick classification with a text pipeline: ```python from transformers import pipeline pipe = pipeline("text-classification", model="MidhunKanadan/roberta-large-fallacy-classification", device=0) text = "The rooster crows always before the sun rises, therefore the crowing rooster causes the sun to rise." result = pipe(text)[0] print(f"Predicted Label: {result['label']}, Score: {result['score']:.4f}") ``` Expected Output: ``` Predicted Label: false causality, Score: 0.9632 ``` ## Advanced Usage: Predict Scores for All Labels ```python import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch.nn.functional as F model_path = "MidhunKanadan/roberta-large-fallacy-classification" text = "The rooster crows always before the sun rises, therefore the crowing rooster causes the sun to rise." tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForSequenceClassification.from_pretrained(model_path).to("cuda") inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=128).to("cuda") with torch.no_grad(): probs = F.softmax(model(**inputs).logits, dim=-1) results = {model.config.id2label[i]: score.item() for i, score in enumerate(probs[0])} # Print scores for all labels for label, score in sorted(results.items(), key=lambda x: x[1], reverse=True): print(f"{label}: {score:.4f}") ``` Expected Output: ``` false causality: 0.9632 fallacy of logic: 0.0139 faulty generalization: 0.0054 intentional: 0.0029 fallacy of credibility: 0.0023 equivocation: 0.0022 fallacy of extension: 0.0020 ad hominem: 0.0019 circular reasoning: 0.0016 false dilemma: 0.0015 fallacy of relevance: 0.0013 ad populum: 0.0009 appeal to emotion: 0.0009 ``` ## Dataset - **Dataset Name**: Logical Fallacy Classification Dataset - **Source**: [Logical Fallacy Classification Dataset](https://huggingface.co/datasets/MidhunKanadan/logical-fallacy-classification) - **Number of Classes**: 13 fallacies (e.g., ad hominem, appeal to emotion, faulty generalization, etc.) ## Applications - **Education**: Teach logical reasoning and critical thinking by identifying common fallacies. - **Argumentation Analysis**: Evaluate the validity of arguments in debates, essays, and articles. - **AI Assistants**: Enhance conversational AI systems with critical reasoning capabilities. - **Content Moderation**: Identify logical flaws in online debates or social media discussions. ## License The model is licensed under the Apache 2.0 License.