Views
No views yet
1from transformers import AutoTokenizer, AutoModelForTokenClassification
2from peft import PeftModel
3
4# preparing the labels
5labels = {"B-neu": 1, "I-neu": 2, "O": 0, "B-neg": 3, "B-con": 4, "I-pos": 5, "B-pos": 6, "I-con": 7, "I-neg": 8, "X": -100}
6id2labels = {k:lab for lab, k in labels.items()}
7labels2ids = {k:lab for lab, k in id2labels.items()}
8
9# loading tokenizer and base_model
10base_id = 'microsoft/deberta-v3-large'
11tokenizer = AutoTokenizer.from_pretrained(base_id)
12base_model = AutoModelForTokenClassification.from_pretrained(base_id, num_labels=len(labels), id2label=id2labels, label2id=labels2ids)
13
14# using this adapter with base model
15model = PeftModel.from_pretrained(base_model, 'gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter', is_trainable=False)1from transformers import pipeline
2ate_sent_pipeline = pipeline(task='ner',
3 aggregation_strategy='simple',
4 model=model,
5 tokenizer=tokenizer)
6
7text_input = "Been here a few times and food has always been good but service really suffers when it gets crowded."
8ate_sent_pipeline(text_input)1[{'entity_group': 'pos',
2 'score': 0.89315575,
3 'word': 'food',
4 'start': 25,
5 'end': 30},
6 {'entity_group': 'neg',
7 'score': 0.9100719,
8 'word': 'service',
9 'start': 55,
10 'end': 63}]1# making one prediction at a time (should be padded/batched and truncated for efficiency)
2text_input = "Been here a few times and food has always been good but service really suffers when it gets crowded."
3tok_inputs = tokenizer(text_input, return_tensors="pt")
4
5
6y_pred = model(**tok_inputs) # predicting the logits
7
8# since first and the last tokens are excluded ([CLS] and [SEP]) they have to be removed before decoding
9y_pred_fin = y_pred.logits.argmax(dim=-1)[0][1:-1] # selecting the most favoured labels for each token from the logits
10
11
12decoded_pred = [id2lab[logx.item()] for logx in y_pred_fin]
13
14
15## displaying the input tokens with predictions and skipping [CLS] and [SEP] tokens at the beginning and the end respectively
16decoded_toks = tok_inputs['input_ids'][0][1:-1]
17tok_levl_pred = list(zip(tokenizer.convert_ids_to_tokens(decoded_toks), decoded_pred))1[('▁Been', 'O'),
2 ('▁here', 'O'),
3 ('▁a', 'O'),
4 ('▁few', 'O'),
5 ('▁times', 'O'),
6 ('▁and', 'O'),
7 ('▁food', 'B-pos'),
8 ('▁has', 'O'),
9 ('▁always', 'O'),
10 ('▁been', 'O'),
11 ('▁good', 'O'),
12 ('▁but', 'O'),
13 ('▁service', 'B-neg'),
14 ('▁really', 'O'),
15 ('▁suffers', 'O'),
16 ('▁when', 'O'),
17 ('▁it', 'O'),
18 ('▁gets', 'O'),
19 ('▁crowded', 'O'),
20 ('.', 'O')]| Test Dataset | Base Model | Fine-tuned Model | Precision | Recall | F1 Score |
|---|---|---|---|---|---|
| hotel reviews (SemEval 2015) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 71.16 | 73.92 | 71.6 |
| hotel reviews (SemEval 2015) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 70.92 | 72.28 | 71.07 |
| hotel reviews (SemEval 2015) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 64.05 | 79.69 | 70.0 |
| hotel reviews (SemEval 2015) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 66.29 | 72.78 | 68.92 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| laptop reviews (SemEval 2014) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 70.58 | 61.52 | 64.21 |
| laptop reviews (SemEval 2014) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 66.38 | 50.62 | 54.31 |
| laptop reviews (SemEval 2014) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 70.82 | 48.97 | 52.08 |
| laptop reviews (SemEval 2014) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 73.61 | 46.38 | 49.87 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| MAMS-ATE (2019) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 81.07 | 79.66 | 80.35 |
| MAMS-ATE (2019) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 79.91 | 78.95 | 79.39 |
| MAMS-ATE (2019) | microsoft/deberta-v3-large | (this)gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 74.46 | 84.5 | 78.75 |
| MAMS-ATE (2019) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 77.8 | 79.81 | 78.75 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| restaurant reviews (SemEval 2014) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 88.59 | 87.0 | 87.45 |
| restaurant reviews (SemEval 2014) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 92.26 | 82.95 | 86.57 |
| restaurant reviews (SemEval 2014) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 93.07 | 81.95 | 86.32 |
| restaurant reviews (SemEval 2014) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 92.94 | 81.71 | 86.01 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| restaurant reviews (SemEval 2015) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 72.91 | 75.4 | 72.74 |
| restaurant reviews (SemEval 2015) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 70.54 | 77.48 | 72.63 |
| restaurant reviews (SemEval 2015) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 68.32 | 79.84 | 72.28 |
| restaurant reviews (SemEval 2015) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 71.94 | 74.75 | 71.84 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| restaurant reviews (SemEval 2016) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 70.22 | 75.83 | 71.84 |
| restaurant reviews (SemEval 2016) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 71.54 | 73.38 | 71.2 |
| restaurant reviews (SemEval 2016) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 71.35 | 72.78 | 70.85 |
| restaurant reviews (SemEval 2016) | microsoft/deberta-v3-large | (this)gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 66.68 | 77.97 | 70.79 |
| Test Dataset | Base Model | Fine-tuned Model | Precision | Recall | F1 Score |
|---|---|---|---|---|---|
| hotel reviews (SemEval 2015) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 51.92 | 65.55 | 54.94 |
| hotel reviews (SemEval 2015) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 54.62 | 53.65 | 54.08 |
| hotel reviews (SemEval 2015) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 55.43 | 56.53 | 54.03 |
| hotel reviews (SemEval 2015) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 52.88 | 55.19 | 53.85 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| laptop reviews (SemEval 2014) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 44.25 | 41.55 | 42.81 |
| laptop reviews (SemEval 2014) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 46.15 | 33.23 | 37.09 |
| laptop reviews (SemEval 2014) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 41.7 | 34.38 | 36.93 |
| laptop reviews (SemEval 2014) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 44.98 | 31.87 | 35.67 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| MAMS-ATE (2019) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 72.06 | 72.98 | 72.49 |
| MAMS-ATE (2019) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 72.97 | 71.63 | 72.26 |
| MAMS-ATE (2019) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 69.34 | 73.3 | 71.07 |
| MAMS-ATE (2019) | microsoft/deberta-v3-large | (this)gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 65.74 | 75.11 | 69.77 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| restaurant reviews (SemEval 2014) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 61.15 | 58.46 | 59.74 |
| restaurant reviews (SemEval 2014) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 60.13 | 56.81 | 58.13 |
| restaurant reviews (SemEval 2014) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 56.79 | 59.3 | 57.93 |
| restaurant reviews (SemEval 2014) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 58.99 | 54.76 | 56.45 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| restaurant reviews (SemEval 2015) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 53.89 | 55.7 | 54.11 |
| restaurant reviews (SemEval 2015) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 54.36 | 55.38 | 53.6 |
| restaurant reviews (SemEval 2015) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 51.67 | 56.58 | 53.29 |
| restaurant reviews (SemEval 2015) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 54.55 | 53.68 | 53.12 |
| ------------ | ---------- | ---------------- | --------- | ------ | -------- |
| restaurant reviews (SemEval 2016) | FacebookAI/roberta-large | gauneg/roberta-large-absa-ate-sentiment-lora-adapter | 53.7 | 60.49 | 55.05 |
| restaurant reviews (SemEval 2016) | FacebookAI/roberta-base | gauneg/roberta-base-absa-ate-sentiment | 52.31 | 54.58 | 52.33 |
| restaurant reviews (SemEval 2016) | microsoft/deberta-v3-base | gauneg/deberta-v3-base-absa-ate-sentiment | 52.07 | 54.58 | 52.15 |
| restaurant reviews (SemEval 2016) | microsoft/deberta-v3-large | (this) gauneg/deberta-v3-large-absa-ate-sentiment-lora-adapter | 49.07 | 56.5 | 51.25 |