A Comprehensive Guide to Aspect-based Sentiment Analysis

Aspect-based sentiment analysis is a text analysis technique that breaks down text into aspects (attributes or components of a product or service), and then allocates each one a sentiment level (positive, negative or neutral).

If you thought sentiment analysis was pretty neat, then prepare to be blown away by this advanced text analysis technique, aspect-based sentiment analysis helps you get the most out of your data.

Imagine you have a large dataset of customer feedback from different sources such as NPS, customer satisfaction surveys, social media, and online reviews. Some positive, some negative and others that contain mixed feelings. You’d use sentiment analysis to automatically classify the polarity of each text, right? After all, it’s already proven to be a highly efficient tool.

But, what if you wanted to pick customer feedback apart, hone in on the details, get down to the nitty-gritty of each feedback for a more complete picture of your customers’ opinions?

Cue aspect-based sentiment analysis (ABSA). This technique can help businesses become customer-centric and place their customers at the heart of everything they do. It’s about listening to their customers, understanding their voice, analyzing their feedback and learning more about customer experiences, as well as their expectations for products or services.

But how can you get started with aspect-based sentiment analysis?

First, you’ll need to gather data, such as customer feedback, reviews, survey responses, social media and more. Next, you’ll need to analyze the information using aspect-based sentiment analysis. There are often hundreds or thousands of text entries from each source, so it would be far too time-consuming and repetitive to analyze them manually. And if you want to analyze information on a granular level, in the same way an aspect-based sentiment analysis does, it would be near impossible without machine learning.

Below, we’ll go into more detail about what aspect-based sentiment analysis is, how it works, and how you can use it within your business. Then you’ll be able to create your own aspect-based sentiment analysis model – yes, even if you’ve never written a line of code!

If there’s something in particular you want to know about aspect-based sentiment analysis, click on the content links below and we’ll take you straight there:

  1. What is Aspect-Based Sentiment Analysis?
  2. Why is it Important?
  3. How To do Aspect-Based Sentiment Analysis?
  4. Use Cases & Applications

It’s time to learn more about aspect-based sentiment analysis. Let's get started!

1. What is Aspect-Based Sentiment Analysis?

The big difference between sentiment analysis and aspect-based sentiment analysis is that the former only detects the sentiment of an overall text, while the latter analyzes each text to identify various aspects and determine the corresponding sentiment for each one.

In other words, instead of classifying the overall sentiment of a text into positive or negative, aspect-based analysis allows us to associate specific sentiments with different aspects of a product or service. The results are more detailed, interesting and accurate because aspect-based analysis looks more closely at the information behind a text. Scientists, for example, analyze cells under a microscope so that they can better visualize their components, and aspect-based sentiment analysis follows this principle.

When we talk about aspects, we mean the attributes or components of a product or service e.g. 'the user experience of a new product', 'the response time for a query or complaint' or 'the ease of integration of new software'.

Here’s a breakdown of what aspect-based sentiment analysis can extract:

  • Sentiments: positive or negative opinions about a particular aspect.
  • Aspects: the thing or topic that is being talked about.

Take a look at the following aspect and sentiment models and try adding your own text to see how aspect-based sentiment analysis works:

Here, we’ve used the following aspect classifier alongside a review about Slack to detect topics that a customer has mentioned:

Example of an Aspect Classifier on MonkeyLearn

In this pretrained text classifier, we’ve predefined a set of tags that are relevant to software like Slack: Ease of use, Features, Pricing, Customer Support. The model detected that the review was talking about Ease of Use and Features, and gave each prediction a confidence above 50%.

Now, let’s see what happens when we run the same text through a sentiment analysis model. We’ve used the predefined tags Negative, Neutral and Positive:

Example of an Aspect Classifier on MonkeyLearn

In this example, you’ll see that the sentiment model has classified the review as positive, with a high-confidence rating of 99.8%. If we combine both aspect and sentiment analysis results to create an aspect-based analysis, we’ll be able to receive a more detailed analysis of the text.

2. Why is Aspect-Based Sentiment Analysis Important?

Customers are more vocal than ever. They love leaving feedback – good and bad – making them a valuable resource for businesses. A huge 95% of adults between the ages of 18 and 34 are likely to follow a brand on social media, and each time they interact with the brand, whether it’s a mention or comment, brands are receiving valuable insights.

Now, imagine all that data customer support, product and analytics teams have to deal with, and we’ve only touched upon the one data source (social media)! We’ll go into more detail about the different data sources that exist later on. There’s also the added pressure of dealing with customer demands as quickly as possible. Did you know that 72% of customers who complain to a brand on Twitter expect a response within an hour?

It all boils down to customer experience. If customers are unhappy with the way you handle queries and complaints, or finds the user experience of your software clunky and inefficient, they’ll simply look elsewhere for an alternative. American Express found that customers are willing to spend more money with a company that delivers an excellent service, which goes to show that people are less price conscious these days, and more focused on a premium customer experience.

Aspect-based sentiment analysis works in the same way as sentiment analysis. It takes all that data – emails, chats, customer surveys, social media posts, customer support tickets etc – and automatically structures it so that companies are able to interpret text entries from customers and gain meaningful insights. Not only does this help managers make key decisions based on insights from their customers, it also helps employees become more efficient and less frustrated with time-consuming, monotonous tasks.

Aspect-based sentiment analysis is particularly relevant at the moment because companies need to be more customer-centric than ever. This text analysis model lets businesses read between the lines, and hone in on the specific aspects that make their customers happy or unhappy. By gaining a deeper understanding, businesses are then able to create a seamless customer experience and increase customer retention.

Let’s take a look at some of the advantages in more detail:


It’s impossible for teams to manually sift through thousands of tweets, customer support conversations, or customer reviews, especially if you want to analyze information on a granular level. Aspect-based sentiment analysis allows businesses to automatically analyze large amounts of data in detail, which saves money, time and means teams can focus on more important tasks.

Real-Time Analysis

Aspect-based sentiment analysis allows businesses to hone in on aspects of a product or service that customers are complaining about, and make amends in real-time. Is there a glitch in an app? Is there a major bug in some new software? Are customers getting angry about one particular service or product feature? Aspect-based sentiment analysis can help you immediately identify these kinds of situations and take action.

Consistent Criteria

While we’re able to differentiate between different aspects and sentiments within a text, we’re not always objective. We’re influenced by our personal experiences, thoughts, and beliefs and only agree around 60-65% of the times when determining sentiments for pieces of text. By using a centralized aspect-based sentiment analysis model, businesses can apply the same criteria to all texts meaning results will be more consistent and accurate.

Deeper customer understanding

It’s easier to scan and categorize text as positive or negative than it is to spend time analyzing each sentence of a text. But by using an automated aspect-based sentiment analysis system, companies can gain a deeper understanding about specific products and services quickly and easily, and really focus on their customers’ needs and expectations. It means businesses take into account everything a customer says and can create a customer-centric experience.

3. How to do Aspect-Based Sentiment Analysis

a. Gathering data

Before we can start any kind of text analysis, we need to gather information. But where does all the data come from and how can businesses gather it? Below, we’ll outline the different types of internal and external data that you can use with aspect-based sentiment analysis:

Internal Data

Businesses have been collecting colossal amounts of data for years, but have only just started to realize the importance of all this data. The only problem now is that there’s too much – there are 2.7 zetabytes of data in the digital universe today, which is enough to fill just over half of Manhattan!

Internal data is the information that you already have in your company database, or that’s collected from incoming communication, such as emails, social media, reviews, surveys, and customer support tickets.

Once you know where to find your data, you’ll need to export it as a CSV file or retrieve the data with an API.

Here are some examples of internal data sources that you can use alongside an aspect-based sentiment analysis models:


These can be paid or unpaid, and you’ll find many online survey tools that you can use to capture the voices and opinions of your customers such as SurveyMonkey, Typeform, and Google Forms. Open-ended question surveys are a great source of text data to run with an aspect-based analysis model, for example a survey might reveal what a customer thinks about different aspects of their user experience – 'simple to use and easy user interface (positive), although there are constant bugs'.

Before, surveys consisted mainly of closed or scale-based questions because they were easier to analyze e.g. a strongly agree to strongly disagree scale.

Now with text analysis models, open-ended questions are proving to be more popular, because they allow businesses to gain better insights.

NPS (Net Promoter Score)

Many companies use NPS software, such as Delighted, Promoter.io and Satismeter, to collect and analyze feedback from their customers. Using an aspect-based sentiment analysis model, you’ll be able to sort data automatically and gain insights about specific aspects or features about your product or service.


Spreadsheets in Excel, Google Sheets or Airtable are always a good place to start looking for data. Companies have been using them to organize data, whether alphabetically or numerically, for many years now.

Instead of analyzing this data or creating reports and budgets manually, an aspect-based sentiment analysis model can quickly scan the data to understand sentiments toward specific details about products or services, for example: 'quick delivery but poor customer service' or 'design is excellent, but the battery doesn’t last long'. And automatically create a report using data visualization tools.

Customer Service Software

This is the software businesses use to communicate with customers, for example Zendesk, Freshdesk, and Help Scout. They’re full of unstructured data – just think about all the queries you deal with, all from different channels.

That’s a lot of useful information that can be classified with an aspect-based sentiment analysis model, whether to quickly identify aspects of a product or service your customers are unhappy with, or direct specific problems to the correct customer service team.

External Data

External data is any data that’s been made public by other organizations. The web is a hub of external information, and more and more companies are making their datasets public, as well as combining both internal and external data sources to optimize their business processes and influence key business decisions. Text analysis models, like aspect-based sentiment analysis, are intrinsic to handling large amounts of public data since they’re able to automatically interpret data easily and quickly at a granular level, and help businesses solve problems. But how do you find and collect relevant data from different websites?

There are several tools that you can use to collect external data, a few of which we’ve listed below:

Web Scraping Tools

Web scraping tools, otherwise known as harvesting or web data extraction tools, are essential when it comes to collecting external data. They were specifically developed for automatically extracting information from websites and were designed for both non-coders and seasoned coders.

  • Visual Web Scraping Tools (for non-coders)

You can build a visual web scraping tool without entering a single line of code. We recommend Dexi.io, Portia, and ParseHub as a starting point.

  • Web Scraping Frameworks (for coders)

Create your own scraper using various powerful, open-source frameworks. We recommend Scrapy, written in Python, or Wombat, written in Ruby.


These allow applications to communicate with one another, so if you want to extract useful data from websites or social media platforms, you can connect them with an API. Large companies like Facebook, Twitter, and Instagram have their own APIs and allow you to extract data from their platforms, so you can gather comments from social media platforms about specific product features using aspect-based analysis.

b. Creating the Models

Now that you know how to gather data, we’re going to teach you how to create your own models – both sentiment and aspect models – to tag and classify the information that is most relevant to your business. At MonkeyLearn, we give you the chance to build your own, without having to code. Our platform is super simple to use and perfect for anyone who’s new to machine learning, as well as for those who like to dabble in code.

i. Preprocessing Data With Opinion Units

Before learning to build your own models, it’s important to understand the mighty process of preprocessing data with opinion units. What are they? Fragments of text that usually contain one sentiment and multiple aspects. Open-ended survey responses or product reviews, long or short, are likely to contain multiple opinions.

Here’s an example of a short review: "I love Slack UX but I wish the pricing was more accessible to small startups."

Here, we have multiple aspects and sentiments. A perfect opportunity to use your aspect-based model. But, before you start training your machine learning model, it’s a good idea to preprocess data to analyze new data.

Here’s how. First, you’ll need to separate texts into smaller units, otherwise known as opinion units. The Slack review we used above can be separated into two opinion units:

"I love Slack UX" – this opinion unit is 'Positive' (sentiment) and is about 'UX' (aspect)

"but I wish the pricing was more accessible to small startups" – this opinion unit is 'Negative' (sentiment) and is about 'Pricing' (aspect)

Machine models that have been trained to detect opinion units are much more precise when it comes to analyzing data. Why? Well, it’s a lot easier for a machine to understand a simple sentence, “I love Slack”, which has one sentiment, than a more complex sentence, “I love Slack UX but I wish the pricing was more accessible to small startups”, which has multiple sentiments. Heck, even humans will struggle with this; some will classify this sentence as positive, others will tag it as neutral, and others will even say its a negative expression.

To summarize, opinion units break down 'several problems' into more manageable tasks that a machine can resolve faster and more accurately, for example tagging training data and connecting sentiments to specific aspects to gain better insights.

You can use this pretrained extractor for retrieving opinion units from text using MonkeyLearn:

Opinion units extractor

Eventually, if you want to use your own criteria for splitting text into opinion units, you can build a custom extractor for this task.

It’s time for you to have a go at creating your machine learning models. Follow our step-by-step tutorial below on how to build sentiment and aspect models. Once you’ve finished, you’ll be able to test them and put them to work with your data.

ii. How to Create a Sentiment Analysis Model:

1. Go to your dashboard and click on 'Create Model' then choose 'Classifier':

Creating the machine learning model

2. Choose 'Sentiment Analysis' from the list:

Choosing the classification type

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

Uploading data for the sentiment classifier

4. Start training your model by using the predefined tags (positive, neutral, negative) and tagging texts manually. Just assign the appropriate tag to each piece of text, like in the example below:

Tagging data for the sentiment classifier

Around four samples per tag are needed for your model to have a very basic understanding of the information it needs to classify. Having said this, the more time you spend training it and the more data you tag, the more accurate your model will be. Notice that some examples are already tagged? That’s machine learning making predictions!

5. Test your sentiment analysis model

The last step is to test your text classifier. Once you’ve finished tagging your text data, you’ll be able to test your model. Just go to the 'Run' tab, write new data samples, and see how your text analysis model analyzes and classifies the text.

testing the sentiment classifier

If you’re happy with the results of the analysis, your model is ready to use!

MonkeyLearn give you the flexibility of uploading your data in various formats. Upload CSV and Excel files or use one of our integrations:

Using the sentiment classifier with third-party integrations

Or, if you’re a master of code then use MonkeyLearn’s API to import data to your model. As you can see below we understand various languages, including Curl, Python, Ruby, PHP, Javascript, and Java:

Using the sentiment classifier via the API

In this guide, you can learn more about how sentiment analysis works, including different methods and algorithms used to implement systems, as well as metrics used to evaluate the performance of classification models.

iii. How to Create an Aspect Model:

Creating an aspect-based model is similar to creating a sentiment model. The only difference is that when you create an aspect-based model, you’ll need to define a set of tags that are relevant to your business and needs. Let’s take a look:

1. Go to your dashboard and click on 'Create Model', then choose 'Classifier':

Creating a machine learning model

2. Choose 'Topic Classification' from the list:

Choosing the classification type

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

Uploading data to the aspect classifier

4. Define tags that are relevant to your business and requirements, for example 'Performance', 'Updates', 'Accounts', etc:

defining tags for the aspect classifier

5. Start training your model by using the tags you previously defined (performance, updates, accounts) and tagging texts manually. Like with the sentiment classifier, this means to just assign the appropriate tag to each piece of text, like in the example below:

Tag data for your classifier

You’ll need around four text samples per tag, before your model starts learning by itself. Remember, the more you train your model, the better it will be at extracting aspects within a text.

6.Test your aspect-based model

Now it’s time to see if your text classifier can work autonomously! You’ll need to go to the 'Run' tab and write some new data samples to see if your model can accurately analyze the given text. If your model is tagging aspects accurately, then you know it’s working!

testing the aspect classifier

Want to carry on training your model, or check to see if your model’s working? Simply import your data-packed CSV and Excel files or use one of our integrations. If you’re familiar with Python, Ruby, PHP, Javascript, or Java, you might want to use MonkeyLearn’s API to run your model and import data:


c. Data Visualization of the Results

What happens next with all your analyzed text?

Let’s say you’ve used MonkeyLearn to run aspect-based analysis on text imported from an Excel spreadsheet, as well as via an API and our Google Sheets integration. That’s a lot of information from different sources, each one giving different results.

Well, data visualization can either combine these results or create a separate visualization for each data source, and interpret data in a way that everyone in the company can understand.

Let’s say Slack updates its software and wants to know which new features are receiving negative feedback from customers from various demographics. An API connected to social media platforms might deliver feedback from a younger demographic, while a CSV file containing data from a survey might represent a more varied demographic. Once Slack has analyzed customer feedback from different data sources with aspect-based analysis, it will be able to create an easy-to-understand visual report and send it to its product teams.

Here’s an example of a data visualization that shows the results from an aspect-based analysis of Slack reviews:

Aspect-based sentiment analysis visualization of Slack reviews

Let’s take a look at some data visualization tools in more detail:

Google Data Studio

Google Data Studio is Google’s free and easy-to-use visualization tool allows you to create engaging reports by connecting and importing your data. The great thing about Google Data Studio is that you can easily share results, so that everyone in your team has access to valuable insights.


Looker is a business data analytics platform that easily allows teams to keep on top of what’s happening in their company, in real-time. Once you’ve connected it to different data sources and customized it to your business’ needs, you’ll be able to see your visual data in real-time. This guide will help you get started with Looker.


Tableau is a business intelligence tool helps people understand and visualize data. It’s easy to use and allows organizations to import data from almost any source. The Tableau suite offers products for both developers and beginners.

Check out how to get started with Tableau in this video tutorial.

We’ve only mentioned a few data visualization tools that can add value to results obtained from aspect-based sentiment analysis models. You might also want to create customized dashboards and reports using other tools like Klipfolio and Mode Analytics.
Remember, once you’ve run data through a text analysis model, you’ll still be left with raw results that are hard to interpret, for example if you want to detect trends. That’s why data visualization tools transform this often complex raw data into simple, visual information, like graphs, scatter diagrams and pie charts – making it easier for teams to observe patterns and make better decisions.

Just imagine if Zoom, which has experienced triple-digit growth, had to analyze one million reviews about its video conferencing software. Instead of trying to interpret raw results classified by an aspect-based sentiment analysis model in a CSV or Excel file, wouldn’t it be easier if product teams were able to analyze trends from visual data?

4. Use Cases and Applications

Aspect-based sentiment analysis is a very versatile text analysis model that can be used across all industries and departments, to automate business processes and gain more accurate insights to make better decisions.

In this section, we’re going to focus on how aspect-based sentiment analysis is being used to analyze customer feedback (VoC) and improve customer service.

Product Feedback

Today, there’s an abundance of feedback on social media, your Net Promoter Score (NPS), websites and much more, and all this textual customer feedback is key to discovering and solving customer problems.

Here’s how aspect-based sentiment analysis can be used to make sense of all this customer feedback:

  • Understand specific aspects that customers like and dislike about your brand.
  • Get valuable, granular-level insights from customer feedback.
  • Analyze service and product reviews to discover the successes and failures of your brand, and compare them to your competitor’s.
  • Track how customer sentiment changes toward specific features and attributes of a service or product.
  • Determine if customer segments feel more strongly about a specific feature, for example an older demographic might find a travel website harder to navigate than a younger demographic.

Customer Support

Customers don’t like waiting for a solution to their problems, which means customer support teams need to respond quickly and effectively. If not, chances are customers will look elsewhere. That’s why businesses need high-quality machine learning software like aspect-based sentiment analysis to:

  • Automate tagging of all incoming customer support queries.
  • Quickly find out why customers are unhappy.
  • Send queries and complaints to team members that are best equipped to respond.
  • Gain insights into how your customer support team handles customers.

Final Words

The customer experience is top priority among businesses. It will rise to the top of the marketing agenda and continue to be one of the best investments a company can make. For consumers, the customer experience will become more important than price and product by 2020.

Machine learning is at the forefront of this movement. It can help businesses become customer-centric by listening to them, understanding their voice and analyzing their feedback. Sentiment analysis is already being used to automate processes, but it only determines polarities of a text – negative/positive, good/bad, beautiful/ugly. Aspect-based sentiment analysis, on the other hand, is able to gain a much deeper understanding of textual data.

For example, a software company might want to understand the specific sentiments towards different aspects of its product. A review might say: "support were great but UI is confusing”, which contains a positive sentiment towards 'aspect customer support' but a negative sentiment towards 'aspect user experience'. A sentiment analysis model might classify the overall sentiment as negative, and ignore the fact that the staff did a good job, or vice versa. Whereas an aspect-based analysis model would differentiate between aspects and allocate a sentiment to each one.

Once data has been imported, either from internal or external sources, aspect-based analysis tools are able to classify sentiments towards specific product features or services. And this is where it gets interesting for organizations. Customers want to feel like they’re being listened to, and by using deeper machine learning models like aspect-based sentiment analysis, businesses can send quick, efficient and personalized responses. And for customer support teams it means streamlining processes and gaining more valuable insights.

Request a demo here and get a personalized demo from one of our experts on how to start using aspect-based sentiment analysis in your business.

You can also sign up for free and get started with aspect-based sentiment analysis by creating your own models with MonkeyLearn, and discover how you’ll be able to make smarter business decisions in the future.

Federico Pascual

March 8th, 2019