I am currently building a Farsi dictionary-based sentiment analysis model, based on thousands of Farsi tweets. Our team's approach has been as follows:

1- generate a list of the top 8000 used phrases and words,
2- identify whether a given word/phrase is negative or positive,
3- and finally predict sentiment in each tweet based on our generated list of sentiment dictionary.

We made a mistake initially in that we started labelling words without conducting word_stemming. In other words, the dictionary currently contains the same labelling for the same word but just written differently. For example,

wait (infinitive)
wait (imperative)
waits (present, 3rd person, singular)
wait (present, other persons and/or plural)
waited (simple past)
waited (past participle)
waiting (progressive)

However, I wanted to make sure that I correctly understand the impact of word stemming, now that we have started the stemming process.

Is it correct to say that one effect of word stemming is that the accuracy increases of sentiment predictions per post, but the number of words that our dictionary recognizes decreases?

Before word stemming, if a tweet has the word wait & waiting, and both are labelled as negative, then we are essentially overestimating negativity in a single tweet yet if we only look at one metric for dictionary-sentiment models: number of words recognized per tweet, then our model currently looks good. However, it's likely due to our inaccurate approach that we used to build the sentiment dictionary, rather than the explanatory power of our model, correct?

  • $\begingroup$ Thanks, I explain it with an example in the last part in the post, "Before word stemming, ....." Without stemming, we run the risk of artificially overestimating how negative or a positive a given post is. This is specifically the case with dictionary sentiment models where a 0-1 score is derived based on the number of negative vs. positive words in a post. $\endgroup$ Jul 25 at 15:56
  • $\begingroup$ you can use parts of speech to only keep sentences with noun, proper nouns, verbs and adjectives. Using spacy you can parse for valid sentence by grammer then use sentiment TextBlob to return subjective and sentiment. $\endgroup$ Jul 25 at 20:46
  • $\begingroup$ Thanks, but several languages are still not supported by spacey, including Farsi: spacy.io/usage/models $\endgroup$ Jul 26 at 9:32


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.