What Is Aspect-Based Sentiment Analysis?

What Is Aspect-Based Sentiment Analysis?

Aspect-based sentiment analysis goes one step further than sentiment analysis by automatically assigning sentiments to specific features or topics. It involves breaking down text data into smaller fragments, allowing you to obtain more granular and accurate insights from your data. 

Take this restaurant review, for example: “The food was great but the service was poor.” 

In cases like this, there is more than one sentiment and more than one topic in a single sentence, so to label the whole review as either positive or negative would be incorrect.

Cue aspect-based sentiment analysis, which extracts and separates each aspect and sentiment polarity in the sentence. In this instance, the aspects are Food and Service, resulting in the following sentiment attribution:

The food was great = Food → Positive

The service was poor = Service → Negative

To make sense of the human language, aspect-based sentiment analysis uses Natural Language Processing to sort unstructured data and turn it into manageable information that’s ready to analyze. For example, some of the processes involved in NLP include simplifying words (lemmatization and stemming), analyzing grammar (parsing), and giving meaning to a word based on context. 

The Importance of Aspect-Based Sentiment Analysis

In a nutshell, aspect-based sentiment analysis is one of the best tools to use if you want to become customer-centric and provide a positive experience throughout the customer journey. And that’s where aspect-based sentiment analysis can help – by analyzing customer interactions at every level, you can find out what makes your customers tick and what causes customer churn. 

With aspect-based sentiment analysis, companies can capture the nuances of specific attributes, components, or entities, making it easier to pinpoint exactly what customers like and dislike. For example, you might have an app with great usability but your customer support is slow, and that’s just the type of fine-grained insight that you can gain by analyzing customer feedback with aspect-based sentiment analysis models.

Take this review of Postman for example:

Easy to use and friendly UI. The interface is a big win for me but I still haven’t received an answer from customer support about a payment question I sent over 2 weeks ago.”

Feedback like this can help companies improve their product, service, and strategies by taking on board what their customers are saying and making adjustments to improve their experience. In this case, the customer is happy (sentiment) with the user interface (aspect), but would be happier (sentiment) if customer service (aspect) responded faster.

Whether analyzing product reviews, customer surveys, or social media interactions, aspect-based sentiment analysis enables you to dissect texts, and detect sentiments and topics, to deliver granular insights that will help improve your business.

Challenges of Aspect-Based Sentiment Analysis

Techniques for implementing aspect-based sentiment analysis have been improving over the years, and experts in the field have overcome many challenges associated with language, tone, context, and more. Some of the most common challenges that are still relevant today include:

Sensitivity to Context

Machines need to learn how to differentiate contexts to be able to effectively attribute sentiments in text. Other elements to consider are affirmative and negative responses. Let’s take these words for example:

Response 1: “Absolutely”

Response 2: “Not a chance”

These responses might answer the question: Would you shop with us again? In this context, the first response would be positive and the second negative. Now, consider the responses as answers to this question: Would you shop from a competitor instead of shopping with us again? The sentiment changes drastically. The first response would be deemed negative and the second positive, the complete opposite of the first example.

Subjectivity and Tone

Text is inherently open to subjectivity, as it can convey different things to different people, and machines might struggle to detect ambiguities in the human language. Just as important is the analysis of tone in texts. For example, the sentences below show how similar words can convey different sentiments depending on their subjectivity:

The laptop is great

The laptop is black 

In these examples, the first text is positive and more subjective, while the second is considered neutral. It’s important to remember that adjectives, verbs and some nouns should be treated separately when it comes to attaching sentiment.


It is often hard to attribute sentiment to comparisons, since context is often needed to understand the elements that affect the comparison. Take this review for example:

“This update is faster than the last one”

Without context, it’s unclear if the customer was happy with the last update and, although faster, if it’s still lacking the speed expected by the customer. With contextual clues, machines would be able to classify comparisons like this one more easily. However, some comparisons, like the one below, don’t need context and can easily be categorized into Positive, Neutral, or Negative.

This tool is way better than I was expecting” → Positive

Irony and Sarcasm

Sarcasm and irony are often used to say the opposite of what’s true, which can be hard for a machine to understand, for example:

“This is great, the software is acting up again and I need to reboot my machine...AGAIN.

This sentence includes the expression ‘this is great’ which, to an untrained model, might appear positive. But, by training sentiment analysis models to detect irony and sarcasm, you can show them how to categorize these types of comments accordingly.

Defining Neutral

Not everybody agrees on what’s considered neutral since we all process information differently. What may be a neutral comment to you may be a negative comment to someone else. 

So, it’s important to define what neutral means when training a sentiment analysis model, to ensure your criteria and results are as accurate as possible. Here are some examples of what you might consider as neutral: 

  • Objective texts: texts that don’t include explicit emotions, so you can categorize these as neutral.
  • Irrelevant information: we recommend pre-processing the data you feed your model, to remove all irrelevant information. However, if not, you can mark all irrelevant information as neutral. 
  • Texts that contain wishes: most texts that contain a wish, e.g. I wish the laptop came with more RAM, are generally neutral because the customer is neither happy, nor unhappy.

How to Get Started with Aspect-Based Sentiment Analysis

Now, you may be wondering, how to get started with aspect-based sentiment analysis? 

The answer is, with text analysis models powered by machine learning.

Do you need to be an expert in machine learning? Most definitely not! MonkeyLearn, for example, is a machine learning platform that analyzes text with machine learning. You can try out pre-trained models to carry out aspect-based sentiment analysis, or you can create your own models and tailor them to your unique data.

For aspect-based sentiment analysis, the process starts with breaking down text into smaller fragments called opinion units. For example, this text review: “The app is so slow but it delivers amazing results.” would be broken down into two opinion units: “The app is so slow” and “It delivers amazing results.” As you can see, both opinion units hold different sentiments and, as separate entities, it will be easier for a sentiment analysis model to identify them. Use MonkeyLearn’s pre-trained opinion unit extractor to separate your texts, or customize your own model.

Now that you’ve broken down your text data, you can analyze it with a sentiment analysis model. Here’s a pre-trained sentiment analysis model, or you can easily create a tailor-made model.

Along with sentiment, you’ll need to analyze text with a topic analysis model. For example, if you’re examining NPS feedback, you can use MonkeyLearn’s public NPS SaaS Feedback Classifier. Or you can build a custom classifier model that is specifically designed to meet your needs.

Quick Guide to Creating Your Own Classifiers

If you are interested in training your own custom classifiers for aspect-based sentiment analysis, you can follow these simple steps:

Step 1

Sign up to MonkeyLearn for free, then click on ‘Create Model’ and choose ‘Classifier’.

Step 2

For aspect-based sentiment analysis, first choose ‘sentiment classification’ then, once you’ve finished this model, create another and choose ‘topic classification’.

Step 3

Upload data from CSV or Excel files, or from Twitter, Gmail, Zendesk, Freshdesk and other third-party integrations offered by MonkeyLearn.

Step 4

The sentiment classifier is already populated with the tags Positive, Neutral and Negative, so you’ll just need to define tags (a minimum of three) for your topic classifier. These need to be relevant to your dataset and the insights you’re hoping to achieve.

Step 5

Start training your model by using your predefined tags, and tagging texts manually. It’s simple – just assign the appropriate tag to each piece of text.

Step 6

Test your models by going to the ‘Run’ tab, write new data samples, and see how your text analysis model analyzes and classifies the text. If you’re happy with the results of the analysis, your model is ready to use! If not, you can keep training your models.

Step 7

Put your models to work. You can use MonkeyLearn models to analyze text by:

  • uploading a CSV or Excel file to analyze data in a batch

  • using one of the available integrations (such as Google Sheets or Zapier), 

  • or integrating the API with your favorite programming language. You can call a model API with Python, Ruby, PHP, Javascript, and Java.

Wrapping up

Aspect-based sentiment analysis is instrumental to becoming more customer-centric. By dissecting product reviews, survey responses, or social media comments to make it easier for machines to attribute aspects and sentiments, you can better understand your customers and create strategies based on valuable insights.

In a culture where customers are front and center, it’s more important than ever to make use of smart technologies that automate the process of extracting insights about your customers.

Sign up for free and be surprised at how easy it is to get started with aspect-based sentiment analysis.

Inés Roldós

December 6th, 2019

Posts you might like...

MonkeyLearn Logo

Text Analysis with Machine Learning

Turn tweets, emails, documents, webpages and more into actionable data. Automate business processes and save hours of manual data processing.

Try MonkeyLearn
Clearbit LogoSegment LogoPubnub LogoProtagonist Logo