ginkgogo's picture
Add SetFit ABSA model
1500cf5 verified
metadata
library_name: setfit
tags:
  - setfit
  - absa
  - sentence-transformers
  - text-classification
  - generated_from_setfit_trainer
metrics:
  - accuracy
widget:
  - text: >-
      ordered, great atmosphere, excellent service:FINALLY tried Mizza and
      wasn't disappointed. Loved (almost) everything we ordered, great
      atmosphere, excellent service, and the perfect setting for a lovely bday
      Sunday. The burrata & heirloom tomatoes app was scrumptious, the salmon
      pasta, very flavorful and the salmon perfectly cooked, I liked the
      toppings of the veggie pizza but wasn't a super fan of the crust (doesn't
      mean I won't come back and try another pizza on their menu ) and the
      cannoli was good although that dessert in general isn't my fave (it was my
      bf's bday so had to get what he wanted ). The flourless chocolate cake and
      limoncello cake are what I'll try next time. Had a great time and will be
      back. Gave it 4 stars just cuz I wasn't that excited about the pizza and
      that's something they're supposed to so well. Would recommend the
      restaurant though!
  - text: >-
      is because the food was decent,:Three reasons why it gets three stars:


      1. The crab cakes were good and is a definitely must try!

      2. The shrimp scampi was actually amazing in the sauce that it comes with,
      so that's another must try!

      3. The real reason why it is getting three stars is because service is
      everything in ANY restaurant you go to. Service started off great,
      waitress was attentive, but once we paid the bill and left a 20% tip, my
      guests and I, which was only three of us, stayed at the table to finish
      our drinks and we're looking at funny videos from a trip we went to. Point
      is the waitress rudely told my friend to lower the volume on his phone,
      yet other guests were just as loud and we  were sitting OUTSIDE...where it
      is already a loud environment! 


      I really want to give it 4 stars, but if I give 4 stars it changes it to,
      "Yay! I'm a fan", but I am not. The only reason why it's not getting 1
      star, is because the food was decent, the view is nice and also the
      manager was extremely empathetic to the situation and it wasn't her fault
      at all that her waitress was obviously having an off day. I have never met
      a manager that attentive and she was incredible at handling and diffusing
      the situation. I cannot thank her enough for salvaging the rest of our
      evening for how poor the waitress treated paying customers.
  - text: >-
      and the perfect setting for a lovely:FINALLY tried Mizza and wasn't
      disappointed. Loved (almost) everything we ordered, great atmosphere,
      excellent service, and the perfect setting for a lovely bday Sunday. The
      burrata & heirloom tomatoes app was scrumptious, the salmon pasta, very
      flavorful and the salmon perfectly cooked, I liked the toppings of the
      veggie pizza but wasn't a super fan of the crust (doesn't mean I won't
      come back and try another pizza on their menu ) and the cannoli was good
      although that dessert in general isn't my fave (it was my bf's bday so had
      to get what he wanted ). The flourless chocolate cake and limoncello cake
      are what I'll try next time. Had a great time and will be back. Gave it 4
      stars just cuz I wasn't that excited about the pizza and that's something
      they're supposed to so well. Would recommend the restaurant though!
  - text: >-
      ) and the service is friendly and:I'm not sure what what I would do if I'd
      never discovered Nikka, since it's the definitely the most authentic ramen
      one can get in the area. Prices are standard for ramen (especially in SB)
      and the service is friendly and efficient. Not only is Nikka's ramen
      amazing, their variety of appetizers is also great. I've yet to try one
      that I don't like. Definitely come here if you're looking to satisfy your
      ramen craving!
  - text: >-
      Overall an excellent experience and the friendly:I got a to-go order for
      empanadas on the lunch menu and it was fantastic. The dish was incredibly
      flavorful and the Kombucha the owner recommended was amazing. Overall an
      excellent experience and the friendly owner, waiters, and waitresses are
      just the cherry on top. I would highly recommend any vegetarians to try
      out this spot!
pipeline_tag: text-classification
inference: false
base_model: sentence-transformers/all-mpnet-base-v2
model-index:
  - name: SetFit Polarity Model with sentence-transformers/all-mpnet-base-v2
    results:
      - task:
          type: text-classification
          name: Text Classification
        dataset:
          name: Unknown
          type: unknown
          split: test
        metrics:
          - type: accuracy
            value: 0.65
            name: Accuracy

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:

  1. Fine-tuning a Sentence Transformer with contrastive learning.
  2. 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:

  1. Use a spaCy model to select possible aspect span candidates.
  2. Use a SetFit model to filter these possible aspect span candidates.
  3. 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

Label Accuracy
all 0.65

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

# Download from the 🤗 Hub
model = AbsaModel.from_pretrained(
    "ginkgogo/setfit-absa-bge-small-en-v1.5-restaurants-aspect",
    "ginkgogo/setfit-absa-bge-small-en-v1.5-restaurants-polarity",
)
# Run inference
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}
}