A Beginner’s Guide to Sentiment Analysis with Python(textblob)

Sentiment Analysis:

The process of computationally identifying and categorizing opinions expressed in a piece of text, especially in order to determine whether the writer’s attitude towards a particular topic, product, etc. is positive, negative, or neutral.

ex-Great-Positive, Not great-Negative

Why sentiment analysis?

  • In Business: In marketing field companies use it to develop their strategies, to understand customers’ feelings towards products or brand, how people respond to their campaigns or product launches and why consumers don’t buy some
    products.
  • In Politics: In political field, it is used to keep track of political view, to detect consistency and inconsistency between statements and actions at the government level. It can be used to predict election results as well!
  • In Public Actions: Sentiment analysis also is used to monitor and analyse social phenomena, for the spotting of potentially dangerous situations and determining the general mood of the blogosphere.

What is TextBlob?

pip install textblob

Sentiment Labels:

Each word in a corpus is labeled in terms of polarity and subjectivity (there are more labels as well, but we’re going to ignore them for now). A corpus sentiment is the average of these.

  • Polarity: How positive or negative a word is. -1 is very negative. +1 is very positive.
  • Subjectivity: How subjective, or opinionated a word is. 0 is fact. +1 is very much an opinion.

For more info on how TextBlob coded up its sentiment function.

code:

1. TextBlob(“great”).sentiment

Sentiment(polarity=0.8, subjectivity=0.75)

~TextBlob doesn’t not handle negation

2.TextBlob(“not great”).sentiment

Sentiment(polarity=-0.4, subjectivity=0.75)

Negation multiplies the polarity by -0.5, and doesn’t affect subjectivity.

polarity of “great”=.8,so polarity of “not great”=-0.4 (.8*-0.5=-0.4)

3.TextBlob(“very great”).sentiment

Sentiment(polarity=1.0, subjectivity=0.9750000000000001)

when very take before any word then The polarity gets maxed out at 1.0, but you can see that subjectivity is also modified by “very” to become 0.75⋅1.3=0.9750.75⋅1.3=0.975.

4.TextBlob(“i am great”).sentiment

Sentiment(polarity=0.8, subjectivity=0.75)

##sentiment not change when added stopwords##

How to find Polarity and Subjectivity of document?

textblob finds all of the words and phrase, than it can assign a polarity and subjectivity to all words ,average all of them together and return final polarity, subjectivity.

Conclusion:

Let’s take a look at the sentiment of the various transcripts, both overall and throughout the comedy routine.

notebook-link:

https://github.com/mahima-c/Text-Mining/blob/master/3-Sentiment-Analysis.ipynb

python developer