Sentiment analysis is the application of natural language processing to determine whether a given text conveys either positive, negative, or neutral sentiment. It is also known as opinion mining. This kind of data combined with analytics can be used to determine product affinity in the market, mass opinion on the certain topic (especially on twitter data), or can be leveraged by customer support services to identify and improve the experience. In our application in chatbots, when user enters a query mentioning all search criteria, we extract the words indicating search feature, and use them to form search query. But we need to know the attitude of user towards these search criteria to avoid giving wrong results. We use sentiment analysis to do this.
User: I am looking for house in ___ region which has garage and pool but it should not have high HIA fees Bot: Sure, I found these results for you. User: Hmm, I don't like any of these. Can you check in ___ region
In the first query, user mentions features which he wants or does not want in a house.
Wants: __ region, garage, pool Does not want: High HIA fees
In second user query, he changes the search criteria because he does not like the results. This can be achieved by using sentiment analysis to detect user attitude towards various house features. This sentiment data can be combined other text features like the word vector and intent to train machine learning model.
There are various technique for sentiment analysis, you can view these here Sentiment analysis algorithms and applications: A survey
In our application, we explored the tree lstm and Stanford sentiment analysis in the coreNLP package. The Stanford’s sentiment analysis is also based on tree lstm.
The tree lstm model was proposed by Richard Socher et al. The model is based on the Recursive neural network. The Recursive neural network works by recursively applying same weight on input, forming a hierarchical structure. Recurrent neural network work by applying same weights in linear order over input and are therefore considered a variant of the Recursive neural network. Both are confusingly abbreviated as RNN. When we use lstm gating mechanism to preserve the gradient we call it the tree lstm model.
The input needs to be fed in form of dependency tree. When we train this kind of model it learns to detect sentiment of words and phrases which are formed by these words which at end form the final sentence.
Sentiment Analysis using recursive neural networks. Richard Socher, et al., “Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank”, https://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf
Text can be converted to tree using Stanford dependency parser. The Stanford sentiment treebank provides the statement, their parsed forms and labels. The network can be constructed using tensorflow or pytorch. The Stanford coreNLP package also has an implementation of sentiment analysis.
Botsplash, is an innovative, digital messaging software with the ability to connect agents and customers across any digital platform. In order to win and keep a customer’s business, businesses must be able to connect with customers in a meaningful way using websites, social media, text and email. Botsplash helps businesses adopt digital strategy with right balance on Live Chat and Automation.