Best practice for: Aspect level sentiment analysis

I got interested in this thread as I’m looking at similar scenarios myself. Reading this I got an idea of an approach. I don’t have the code solution, but just a theory.

If you map the text “Although the price is high they do what they promise. Got an answer in 5 minutes after contacting support, couldn’t be better.” in displaCy, you get this graph

The idea I got is this:

In both your examples, splitting the text into sentences somewhat works to keep the sentiment and the subject together and separate them from the other statement.

Example 1:

  • Delivery was very fast.
  • But they wont reply to my questions.

Example 2:

  • Although the price is high they do what they promise.
  • Got an answer in 5 minutes after contacting support, couldn’t be better.

But in reality, it’s probably not going to be that cleanly defined. I can really see people writing the first example as one sentence, which gives this graph

So I came up with this theoretical method:

  1. Break this into two unit of texts - one per sentence.
  2. Break each sentences into verb groups.
  • Although the price is high
  • they do what they promise
  • Got an answer in 5 minutes after contacting support
  • couldn’t be better
  1. You can classify each as for subject - support, price, etc.
  2. Analyze sentiment on each.

This also extracts one new sentiment - the phrase they do what they promise could be considered a positive feedback on your service.

It’s not perfect, and this “complex” statement is probably a typical feedback text, unfortunately.

1 Like