|
--- |
|
language: eng |
|
license: mit |
|
dataset: Logical Fallacy Dataset |
|
--- |
|
|
|
# distilbert-base-fallacy-classification |
|
|
|
This model is a fine-tuned version of [distilbert-base-uncased](https://huggingface.co/distilbert-base-uncased) on the [Logical Fallacy Dataset](https://github.com/causalNLP/logical-fallacy). |
|
|
|
## Model description |
|
|
|
The model is fine-tuned for text classification of logical fallacies. There are a total of 14 classes: 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, and miscellaneous. |
|
|
|
## Example Pipeline |
|
|
|
```python |
|
from transformers import pipeline |
|
|
|
text = "We know that the earth is flat because it looks and feels flat." |
|
model_path = "q3fer/distilbert-base-fallacy-classification" |
|
pipe = pipeline("text-classification", model=model_path, tokenizer=model_path) |
|
pipe(text) |
|
``` |
|
|
|
``` |
|
[{'label': 'circular reasoning', 'score': 0.951125979423523}] |
|
``` |
|
|
|
## Full Classification Example |
|
|
|
```python |
|
import torch |
|
from transformers import AutoTokenizer |
|
from transformers import AutoModelForSequenceClassification |
|
|
|
model = AutoModelForSequenceClassification.from_pretrained("q3fer/distilbert-base-fallacy-classification") |
|
tokenizer = AutoTokenizer.from_pretrained("q3fer/distilbert-base-fallacy-classification") |
|
|
|
text = "We know that the earth is flat because it looks and feels flat." |
|
inputs = tokenizer(text, return_tensors='pt') |
|
|
|
with torch.no_grad(): |
|
logits = model(**inputs) |
|
scores = logits[0][0] |
|
scores = torch.nn.Softmax(dim=0)(scores) |
|
|
|
_, ranking = torch.topk(scores, k=scores.shape[0]) |
|
ranking = ranking.tolist() |
|
|
|
results = [f"{i+1}) {model.config.id2label[ranking[i]]} {scores[ranking[i]]:.4f}" for i in range(scores.shape[0])] |
|
print('\n'.join(results)) |
|
``` |
|
|
|
``` |
|
1) circular reasoning 0.9511 |
|
2) fallacy of logic 0.0154 |
|
3) equivocation 0.0080 |
|
4) fallacy of credibility 0.0069 |
|
5) ad populum 0.0028 |
|
6) fallacy of extension 0.0025 |
|
7) intentional 0.0024 |
|
8) faulty generalization 0.0021 |
|
9) appeal to emotion 0.0021 |
|
10) fallacy of relevance 0.0019 |
|
11) false dilemma 0.0017 |
|
12) ad hominem 0.0013 |
|
13) false causality 0.0012 |
|
14) miscellaneous 0.0004 |
|
``` |
|
|
|
## Training and evaluation data |
|
|
|
The [Logical Fallacy Dataset](https://github.com/causalNLP/logical-fallacy) is used for training and evaluation. |
|
|
|
Jin, Z., Lalwani, A., Vaidhya, T., Shen, X., Ding, Y., Lyu, Z., ... Schölkopf, B. (2022). Logical Fallacy Detection. arXiv. https://doi.org/10.48550/arxiv.2202.13758 |
|
|
|
## Training procedure |
|
|
|
The following hyperparameters were used during fine-tuning: |
|
|
|
- learning_rate : 2e-5 |
|
- warmup steps : 0 |
|
- batch_size: 16 |
|
- num_epochs: 8 |
|
- batches_per_epoch: 122 |
|
- total_train_steps: 976 |