tomaarsen/setfit-absa-semeval-laptops
Dataset Card for "tomaarsen/setfit-absa-semeval-laptops" Dataset Summary This dataset contains the manually annotated laptop reviews from SemEval-2014 Task 4, in the format as understood by SetFit ABSA. For more details, see https://aclanthology.org/S14-2004/ Data Instances An example of "train" looks as follows. {"text": "I charge it at night and skip taking the cord with me because of the good battery life.", "span": "cord", "label": "neutral"… See the full description on the dataset page: https://huggingface.co/datasets/tomaarsen/setfit-absa-semeval-laptops.
Dataset Card for "tomaarsen/setfit-absa-semeval-laptops"
Dataset Summary
This dataset contains the manually annotated laptop reviews from SemEval-2014 Task 4, in the format as understood by SetFit ABSA.
For more details, see https://aclanthology.org/S14-2004/
Data Instances
An example of "train" looks as follows.
{"text": "I charge it at night and skip taking the cord with me because of the good battery life.", "span": "cord", "label": "neutral", "ordinal": 0}
{"text": "I charge it at night and skip taking the cord with me because of the good battery life.", "span": "battery life", "label": "positive", "ordinal": 0}
{"text": "The tech guy then said the service center does not do 1-to-1 exchange and I have to direct my concern to the \"sales\" team, which is the retail shop which I bought my netbook from.", "span": "service center", "label": "negative", "ordinal": 0}
{"text": "The tech guy then said the service center does not do 1-to-1 exchange and I have to direct my concern to the \"sales\" team, which is the retail shop which I bought my netbook from.", "span": "\"sales\" team", "label": "negative", "ordinal": 0}
{"text": "The tech guy then said the service center does not do 1-to-1 exchange and I have to direct my concern to the \"sales\" team, which is the retail shop which I bought my netbook from.", "span": "tech guy", "label": "neutral", "ordinal": 0}Data Fields
The data fields are the same among all splits.
text: astringfeature.span: astringfeature showing the aspect span from the text.label: astringfeature showing the polarity of the aspect span.ordinal: anint64feature showing the n-th occurrence of the span in the text. This is useful for if the span occurs within the same text multiple times.
Data Splits
Training ABSA models using SetFit ABSA
To train using this dataset, first install the SetFit library:
pip install setfitAnd then you can use the following script as a guideline of how to train an ABSA model on this dataset:
from setfit import AbsaModel, AbsaTrainer, TrainingArguments
from datasets import load_dataset
from transformers import EarlyStoppingCallback
# You can initialize a AbsaModel using one or two SentenceTransformer models, or two ABSA models
model = AbsaModel.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
# The training/eval dataset must have `text`, `span`, `polarity`, and `ordinal` columns
dataset = load_dataset("tomaarsen/setfit-absa-semeval-laptops")
train_dataset = dataset["train"]
eval_dataset = dataset["test"]
args = TrainingArguments(
output_dir="models",
use_amp=True,
batch_size=256,
eval_steps=50,
save_steps=50,
load_best_model_at_end=True,
)
trainer = AbsaTrainer(
model,
args=args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
callbacks=[EarlyStoppingCallback(early_stopping_patience=5)],
)
trainer.train()
metrics = trainer.evaluate(eval_dataset)
print(metrics)
trainer.push_to_hub("tomaarsen/setfit-absa-laptops")You can then run inference like so:
from setfit import AbsaModel
# Download from Hub and run inference
model = AbsaModel.from_pretrained(
"tomaarsen/setfit-absa-laptops-aspect",
"tomaarsen/setfit-absa-laptops-polarity",
)
# Run inference
preds = model([
"Boots up fast and runs great!",
"The screen shows great colors.",
])Citation Information
@inproceedings{pontiki-etal-2014-semeval,
title = "{S}em{E}val-2014 Task 4: Aspect Based Sentiment Analysis",
author = "Pontiki, Maria and
Galanis, Dimitris and
Pavlopoulos, John and
Papageorgiou, Harris and
Androutsopoulos, Ion and
Manandhar, Suresh",
editor = "Nakov, Preslav and
Zesch, Torsten",
booktitle = "Proceedings of the 8th International Workshop on Semantic Evaluation ({S}em{E}val 2014)",
month = aug,
year = "2014",
address = "Dublin, Ireland",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/S14-2004",
doi = "10.3115/v1/S14-2004",
pages = "27--35",
}