Sentiment analysis has become a popular topic in recent years both in academic as well as in commercial sectors. It allows you to learn opinions of customers about your product and services.
It is essentially mining for data which are then evaluated for subjective opinions or sentiments.
Valuable information can come from websites selling products and services, e.g. reviews on Amazon or Tripadvisor. Even larger data sets of sentiment data can be obtained from analysing data produced on social media platforms like Twitter, Instagram and others.
Historically, the first phase of sentiment analysis focused on determining the overall sentiment or sentiment polarity of sentences, paragraphs or entire documents.
More recently, increasing number of companies are not only interested in overall sentiment polarities of texts published about them and their products and services. They want to know the granular details:
- which products and services are mentioned in texts about them
- what aspects of these products and services are described (e.g. for laptop product, possible aspects can be battery life, screen resolution, hard disk)
- what are the sentiment on these aspects as expressed by opinions in customer reviews
This latter approach is also known as Aspect Based Sentiment Analysis (ABSA).
ABSA looks at different aspects (e.g. location, food, room service ) of a product (e.g. hotel). ABSA requires implementation of several methods:
- identification of relevant entities
- extraction of their features and aspects
- using aspect terms to determine the sentiment or opinion expressed about a particular feature or aspect (with contextual sentiment polarity of positive, neutral and negative class)
Identification of aspects can be determined with various approaches, including deep learning. Although deep learning is often more associated with computer vision consulting tasks, such as identification of image classes, face recognition, it is however used in similar intensity for text related tasks, some of the more known examples of applying deep learning to natural language processing are the following models:
Sentiment analysis, i.e. determining sentiment of aspects or whole sentences can be done by using various machine learning or natural language processing (NLP) models. Or one can train the models themselves, e.g. by using a deep learning neural net.
Deep learning approach of training sentiment classifier involves:
- preparing a suitable labelled data set (a good one is Stanford labelled data set of tweets)
- building a neural net model
- training it
- evaluating the results (in terms of precision, recall, f-score and accuracy)
- deploying the model in production, e.g. as part of a data pipeline in Apache Airflow
There are companies that offer machine learning consulting and can build you an end to end product like this.
Sentiment analysis allows you to extract sentiment from a wide array of possible texts:
- instagram posts
- product reviews
- restaurant reviews
- hotel reviews
- tickets (support)
Sentiment analysis or opinion mining is a great solution for companies that have big data in form of unstructured texts, e.g. email communications with customers. It allows them to gain valuable information and actionable insights from this repositories of data.
It can also be helpful as part of their online reputation management which is becoming increasingly important.
Companies can thus see which products and services are mentioned in a positive way and which in a negative tone. This enables them to sometimes proactively react to the negative opinions or use this feedback to improve their services and products.