Question

while performing sentiment analysis, how can I make the machine understand that I'm referring apple (the iphone), instead of apple (the fruit)?

Thanks for the advise !

Was it helpful?

Solution

Well, there are several methods,

I would start with checking Capital letter, usually, when referring to a name, first letter is capitalized.

Before doing sentiment analysis, I would use some Part-of-speech and Named Entity Recognition to tag the relevant words.

Stanford CoreNLP is a good text analysis project to start with, it will teach you the basic concepts.

Example from CoreNLP:

enter image description here

You can see how the tags can help you.

And check out more info

OTHER TIPS

As described by Ofiris, NER is only one way to do solve your problem. I feel it's more effective to use word embedding to represent your words. In that way machine automatically recognize the context of the word. As an example "Apple" is mostly coming together with "eat" and But if the given input "Apple" is present with "mobile" or any other word in that domain, Machine will understand it's "iPhone apple" instead of "apple fruit". There are 2 popular ways to generate word embeddings such as word2vec and fasttext. Gensim provides more reliable implementations for both word2vec and fasttext.

https://radimrehurek.com/gensim/models/word2vec.html https://radimrehurek.com/gensim/models/fasttext.html

In presence of dates, famous brands, vip or historical figures you can use a NER (named entity recognition) algorithm; in such case, as suggested by Ofiris, the Stanford CoreNLP offers a good Named entity recognizer.

For a more general disambiguation of polysemous words (i.e., words having more than one sense, such as "good") you could use a POS tagger coupled with a Word Sense Disambiguation (WSD) algorithm. An example of the latter can be found HERE, but I do not know any freely downloadable library for this purpose.

This problem has already been solved by many open source pre-trained NER models. Anyways you can try retraining an existing NER models to finetune them to solve this issue. You can find an demo of NER results as done by Spacy NER here.

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top