TACO / README.md
TomatenMarc's picture
Update README.md
7f5c5da verified
---
license: cc-by-nc-4.0
language:
- en
metrics:
- f1
pipeline_tag: text-classification
tags:
- transformers
- argument-mining
- opinion-mining
- information-extraction
- inference-extraction
- Twitter
widget:
- text: 'Men shouldn’t be making laws about women’s bodies #abortion #Texas'
example_title: Statement
- text: >-
’Bitter truth’: EU chief pours cold water on idea of Brits keeping EU
citizenship after #Brexit HTTPURL via @USER
example_title: Notification
- text: >-
Opinion: As the draconian (and then some) abortion law takes effect in
#Texas, this is not an idle question for millions of Americans. A slippery
slope towards more like-minded Republican state legislatures to try to
follow suit. #abortion #F24 HTTPURL
example_title: Reason
- text: '@USER Blah blah blah blah blah blah'
example_title: None
- text: republican men and karens make me sick
example_title: Unlabeled 1
- text: No empire lives forever! Historical fact! GodWins! 🙏💪🇺🇲
example_title: Unlabeled 2
- text: >-
Further author information regarding registration and visa support letters
will be sent to the authors soon. #CIKM2023
example_title: Unlabeled 3
- text: Ummmmmm
example_title: Unlabeled 4
- text: >-
whoever says that The Last Jedi is a good movie is lying or trolling
everyone
example_title: Unlabeled 5
- text: >-
I don’t think people realize how big this story is GBI Strategies, the group
paid $11M+ by Biden PACs to harvest fraudulent voter registrations in *20
states*, may be the root source of Democrat election rigging @USER may have
just exposed their entire fraud machine HTTPURL
example_tite: Unlabeled 6
base_model:
- vinai/bertweet-base
---
# TACO -- Twitter Arguments from COnversations
Introducing TACO, a baseline classification model built upon `AutoModelForSequenceClassification`, designed to identify tweets belonging to four distinct
classes: Reason, Statement, Notification, and None. Tailored specifically for argument mining on Twitter, this baseline model is an evolution of the
[BERTweet-base](https://huggingface.co/vinai/bertweet-base) architecture, which was originally pre-trained on Twitter data.
Through fine-tuning with the [TACO dataset](https://github.com/TomatenMarc/TACO), the baseline model acquires its name and excels in the
extraction of *Twitter Arguments from COnversations*.
## Class Semantics
The TACO framework revolves around the two key elements of an argument, as defined by the [Cambridge Dictionary](https://dictionary.cambridge.org).
It encodes *inference* as *a guess that you make or an opinion that you form based on the information that you have*, and it also leverages the
definition of *information* as *facts or details about a person, company, product, etc.*.
Taken together, the following classes of tweets can be identified by TACO:
* *Statement*, which refers to unique cases where only the *inference* is presented as *something that someone says or writes officially, or an action
done to express an opinion*.
* *Reason*, which represents a full argument where the *inference* is based on direct *information* mentioned in the tweet, such as a source-reference
or quotation, and thus reveals the author’s motivation *to try to understand and to make judgments based on practical facts*.
* *Notification*, which refers to a tweet that limits itself to providing *information*, such as media channels promoting their latest articles.
* *None*, a tweet that provides neither *inference* nor *information*.
In its entirety, TACO can classify the following hierarchy for tweets:
<div align="center">
<img src="https://github.com/TomatenMarc/public-images/raw/main/Argument_Tree.svg" alt="Argument Tree" width="100%">
</div>
## Usage
Using this model becomes easy when you have `transformers` installed:
```python
pip install - U transformers
```
Then you can use the model to generate tweet classifications like this:
```python
from transformers import pipeline
pipe = pipeline("text-classification", model="TomatenMarc/TACO")
prediction = pipe("Huggingface is awesome")
print(prediction)
```
<a href="https://github.com/TomatenMarc/TACO/blob/main/notebooks/classifier_cv.ipynb">
<blockquote style="border-left: 5px solid grey; background-color: #f0f5ff; padding: 10px;">
Notice: The tweets need to undergo preprocessing before classification.
</blockquote>
</a>
## Training
The final model underwent training using the entire shuffled ground truth dataset known as TACO, encompassing a total of 1734 tweets.
This dataset showcases the distribution of topics as: #abortion (25.9%), #brexit (29.0%), #got (11.0%), #lotrrop (12.1%), #squidgame (12.7%), and
#twittertakeover (9.3%). For training, we utilized [SimpleTransformers](https://simpletransformers.ai).
Additionally, the category and class distribution of the dataset TACO is as follows:
| Argument | No-Argument |
|--------------|------------------|
| 865 (49.88%) | 869 (50.12%) |
| Reason | Statement | Notification | None |
|--------------|--------------|--------------|--------------|
| 581 (33.50%) | 284 (16.38%) | 500 (28.84%) | 369 (21.28%) |
<p>
<blockquote style="border-left: 5px solid grey; background-color: #f0f5ff; padding: 10px;">
Notice: Our training involved TACO to forecast class predictions, where the categories (Argument/No-Argument) represent class aggregations
based on the inference component.
</blockquote>
<p>
### Dataloader
```
"data_loader": {
"type": "torch.utils.data.dataloader.DataLoader",
"args": {
"batch_size": 8,
"sampler": "torch.utils.data.sampler.RandomSampler"
}
}
```
Parameters of the fit()-Method:
```
{
"epochs": 5,
"max_grad_norm": 1,
"optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
"optimizer_params": {
"lr": 4e-05
},
"scheduler": "WarmupLinear",
"warmup_steps": 66,
"weight_decay": 0.06
}
```
## Evaluation
We utilized a stratified 10-fold cross-validation approach to present TACO's performance. In doing so, we employed the identical data and parameters
as outlined in the *Training* section. This involved training on k-1 splits and utilizing the kth split for making predictions.
In total, the TACO classifier performs as follows:
### Classification
| | Precision | Recall | F1-Score | Support |
|-------------|-----------|---------|----------|---------|
| Reason | 73.69% | 75.22% | 74.45% | 581 |
| Statement | 54.37% | 59.15% | 56.66% | 284 |
| Notification| 79.02% | 77.60% | 78.30% | 500 |
| None | 83.87% | 77.51% | 80.56% | 369 |
|-------------|-----------|---------|----------|---------|
| Accuracy | | | 73.76% | 1734 |
| Macro Avg | 72.74% | 72.37% | 72.49% | 1734 |
| Weighted Avg| 74.23% | 73.76% | 73.95% | 1734 |
### Categorization
| | Precision | Recall | F1-Score | Support |
|-------------|-----------|---------|----------|---------|
| No-Argument | 86.66% | 82.97% | 84.77% | 869 |
| Argument | 83.59% | 87.17% | 85.34% | 865 |
|-------------|-----------|---------|----------|---------|
| Accuracy | | | 85.06% | 1734 |
| Macro Avg | 85.13% | 85.07% | 85.06% | 1734 |
| Weighted Avg| 85.13% | 85.06% | 85.06% | 1734 |
# Environmental Impact
- **Hardware Type:** A100 PCIe 40GB
- **Hours used:** 10 min
- **Cloud Provider:** [Google Cloud Platform](https://colab.research.google.com)
- **Compute Region:** [asia-southeast1](https://cloud.google.com/compute/docs/gpus/gpu-regions-zones?hl=en) (Singapore)
- **Carbon Emitted:** 0.02kg CO2
# Licensing
[TACO](https://huggingface.co/TomatenMarc/TACO) © 2023 is licensed under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1)
# Citation
```
@inproceedings{feger-dietze-2024-taco,
title = "{TACO} {--} {T}witter Arguments from {CO}nversations",
author = "Feger, Marc and
Dietze, Stefan",
editor = "Calzolari, Nicoletta and
Kan, Min-Yen and
Hoste, Veronique and
Lenci, Alessandro and
Sakti, Sakriani and
Xue, Nianwen",
booktitle = "Proceedings of the 2024 Joint International Conference on Computational Linguistics, Language Resources and Evaluation (LREC-COLING 2024)",
month = may,
year = "2024",
address = "Torino, Italia",
publisher = "ELRA and ICCL",
url = "https://aclanthology.org/2024.lrec-main.1349",
pages = "15522--15529"
}
```