SetFit Polarity Model with sentence-transformers/all-mpnet-base-v2
This is a SetFit model that can be used for Aspect Based Sentiment Analysis (ABSA). This SetFit model uses sentence-transformers/all-mpnet-base-v2 as the Sentence Transformer embedding model. A LogisticRegression instance is used for classification. In particular, this model is in charge of classifying aspect polarities.
The model has been trained using an efficient few-shot learning technique that involves:
- Fine-tuning a Sentence Transformer with contrastive learning.
- Training a classification head with features from the fine-tuned Sentence Transformer.
This model was trained within the context of a larger system for ABSA, which looks like so:
- Use a spaCy model to select possible aspect span candidates.
- Use a SetFit model to filter these possible aspect span candidates.
- Use this SetFit model to classify the filtered aspect span candidates.
Model Details
Model Description
Model Sources
Model Labels
Label |
Examples |
negative |
- 'into more American food, added burgers:They made it into more American food, added burgers and ribs and got rid of the tequila selection. We were so bummed. Used to be one of our favorite places to go for good Mexican food. The owner said the new direction was to appeal to more tourists.'
|
positive |
- "was great and seating was comfortable.:Such a cute little spot for desserts! I'm so glad we had time on our short visit to Santa Barbara to grab a slice of cake from here. My husband and I each got our own to slice to share of course. He said we didn't come all this way just to get one so we chose a slice of the berry cake and chocolate decadence. The berry cake was nice and fluffy without being too sweet. The acidity from the fruits balanced the sweetest of the cake wonderfully. If you're up for something rich then the chocolate decadence will not disappoint. Service was great and seating was comfortable. Order your sweet treats at the counter then a number will be given to you. Pick a table and get ready to enjoy because your sweets will be brought out to your table when ready."
- 'Soon, our food was delivered,:One brisk Saturday morning after asking workers during a stop for tylenol from the Hotel California Boutique the best breakfast place, they recommended Goat Tree. We crossed the busy street and greeted the hostess. The very kind young lady walked us to our table on the sunny patio. We skimmed the menu and decided on the chicken and waffle and a chocolate croissant. The wait was quite short and we spent it discussing the beautiful surrounding area. Soon, our food was delivered, and let me tell you, it was beautiful. On top of that, it was scrumptious. The fried chicken was perfect and tender. The waffle had the perfect balance of crunch and fluff. And how dare I forget the exquisite honey. Now this honey was the best I have ever tasted. It was topped with chia and pumpkin seeds. My daughter asked for her croissant warmed, and once again it was marvelous. After paying, I told our waitress how amazing the honey was. Next thing we knew, she brought out two large to go cups full of it! \n\nAbsolutely loved this place and everything about it. 100% recommend! I strongly award them 5 stars!'
- ". \n\nThe service was impeccable,:Man! I was so drunk when I ate here last weekend. \n\nI came up from LA to celebrate my boyfriend's best friend's graduation. So after the commencement ceremony a bunch of us went to a friend's house and had Vodka tonics. He made them great and I was drunk. So we went to dinner at this beautiful hotel overlooking the beach. \n\nThe best friend's parents bought us (about 20 people) dinner at Rodney's Steakhouse. There was a pre-set menu with different choices for us. \n\nFor the appetizer, I ordered the Sea Scallops. These were the best damn sea scallops I've ever had. They literally melted in my mouth and were so delicious. They came in a white wine and garlic butter onion tartlet with truffle vinaigrette.\n\nPlease keep in mind that the wine kept flowing and continued to get very giggly and drunk. So fun!\n\nFor the main course, I ordered the Roasted Dover Sole Fillet which had lump crab meat stuffing and lemon butter. It was good but it wasn't great. \n\nFor dessert I had the creme brulee which was strange tasting. I would have much rather had the chocolate mousse. \n\nThe service was impeccable, the bathrooms were very nice and clean and I met a lot of great people. Or so I think so. =)"
|
mixed |
- "is because the food was inedible.:I rarely ever give anything less than a 2 star and if I do, it is because the food was inedible. Literally, we paid so much for our entrees and tried to force ourselves to eat it because we hate to waste food but we couldn't even do that. Maybe we ordered the wrong dish. We had the ramen and the risotto- and we've had these type of dishes many times before. In fact, it's one of our favorite dishes normally. But the ramen was sooo disappointing. It was just watered down soy sauce. Imagine how salty that is. I've never had anything like this and was completely shocked. And the risotto was so undercooked. I am okay with al dente but I am saying this was borderline raw, hard, and was hard to digest. BUT- the BONE MARROW was AMAZING. Do order this. And maybe only this. It was perfectly balanced and savory and aromatic and presented beautifully. That was the only good tapas that we ordered and why I will give it a 2 star instead of a 1 star. Also, we spoke to the manager about our food and we discounted us and was really nice about it. I felt pretty bad but I also thought they should know- maybe we just came on a bad day? I am just really surprised that this place had such a high rating. I took my mom here for her birthday and we left this restaurant hungry and disappointed"
|
neutral |
- "limited amount of seating for the long:If you're ever missing LA street tacos, Lilly's is the closest you're gonna get. Without taking that into consideration, Lilly's is without a doubt one of the cheapest places to get a filling and delicious meal along the Pacific Coast, and you will love it.\n\nThe $1.80 tacos come out before you're even done ordering, which is wild considering that while they have a bunch of meats already prepped, there's still a constant rotation of beef, pork, and chicken on the grill. All tacos come double-wrapped, and if you eat in, on a Styrofoam plate that might betray the county's love for eco-friendly packaging, but it certainly cuts down on the costs.\n\nThe salsa bar is never consistent; while all the fixings are always well-stocked, how spicy each salsa is changes from day to day. Sometimes, it'll be the dark brown one that'll cause you to start crying; other days, it's the green one that packs a punch. Taste test each one before you squirt it on. Old Yelp reviews suggest their grilled onions and jalapenos used to be free, but it costs $1 for a small plate of them nowadays.\n\nBeing next to the 101 isn't ideal, nor is the limited amount of seating for the long line that builds up outside the store. But these are the kinds of things you get saddled with, not quite the stuff you can choose or imagine happening when you first start out.\n\nYou'll incur a $0.50 charge for credit cards if you spend less than $5 here. You're going to want so many tacos that you won't even think about it."
|
Evaluation
Metrics
Uses
Direct Use for Inference
First install the SetFit library:
pip install setfit
Then you can load this model and run inference.
from setfit import AbsaModel
model = AbsaModel.from_pretrained(
"ginkgogo/setfit-absa-bge-small-en-v1.5-restaurants-aspect",
"ginkgogo/setfit-absa-bge-small-en-v1.5-restaurants-polarity",
)
preds = model("The food was great, but the venue is just way too busy.")
Training Details
Training Set Metrics
Training set |
Min |
Median |
Max |
Word count |
25 |
123.9048 |
272 |
Label |
Training Sample Count |
mixed |
1 |
negative |
1 |
neutral |
1 |
positive |
18 |
Training Hyperparameters
- batch_size: (50, 50)
- num_epochs: (5, 5)
- max_steps: -1
- sampling_strategy: oversampling
- body_learning_rate: (2e-05, 1e-05)
- head_learning_rate: 0.01
- loss: CosineSimilarityLoss
- distance_metric: cosine_distance
- margin: 0.25
- end_to_end: False
- use_amp: True
- warmup_proportion: 0.1
- seed: 42
- eval_max_steps: -1
- load_best_model_at_end: True
Training Results
Epoch |
Step |
Training Loss |
Validation Loss |
0.1429 |
1 |
0.2034 |
- |
Framework Versions
- Python: 3.10.12
- SetFit: 1.0.3
- Sentence Transformers: 2.6.0
- spaCy: 3.7.4
- Transformers: 4.38.2
- PyTorch: 2.2.1+cu121
- Datasets: 2.18.0
- Tokenizers: 0.15.2
Citation
BibTeX
@article{https://doi.org/10.48550/arxiv.2209.11055,
doi = {10.48550/ARXIV.2209.11055},
url = {https://arxiv.org/abs/2209.11055},
author = {Tunstall, Lewis and Reimers, Nils and Jo, Unso Eun Seo and Bates, Luke and Korat, Daniel and Wasserblat, Moshe and Pereg, Oren},
keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Efficient Few-Shot Learning Without Prompts},
publisher = {arXiv},
year = {2022},
copyright = {Creative Commons Attribution 4.0 International}
}