Build sentiment classifiers in 10 minutes using textblob and python.

It seems like making sentiment classifier for your self is tough but trust me its not so. With so much libraries present now a days its not at all tough to make these. You just need to know about the libraries you will need.

Today we will see how to build a sentiment classifier in 10 min. For this you need to know simple python programming and what are sentiment classifiers. Lets start

Let’s build sentiment classifiers  in 10 minutes

For this we will be using textblob, a library for simple text processing. It provides a simple API for diving into common natural language processing (NLP) tasks such as part-of-speech tagging, noun phrase extraction, sentiment analysis, classification, translation, and more.

We will do this in separate python environment for this we need virtualenv. How to install virtualenv.

sudo pip install virtualenv

Now we have installed virtualenv next step is to create virtaul environment for our little project. Run the below command to create virtualenv.

virtualenv sent

sent is the name of the environment. Now we have created an environment. The above command will create an environment and install setup tools in it. Now we need to launch the environment. For this, run the below command

. sent/bin/activate

Now for installing textblob use below commands

pip install textblob
python -m textblob.download_corpora

The second command will download the data files that textblob uses for its functionality and for nltk. Now look at the below script which will do the sentiment classification for you.

from textblob import TextBlob
testimonial = TextBlob("What a wonderful day.")
print testimonial.sentiment.polarity

The result of the above script will be as below

Sentiment(polarity = 1.0, subjectivity = 1.0)

Here if polarity is less than 0 the sentence is of negative sentiment other wise the sentence holds the positive sentiment.

So it was really simple to make a sentiment classifier. Now lets say you want a customized classifier, means you want to train the classifier yourself. You can do the below.

train = [
     ('What an amazing weather.', 'pos'),
     ('this is an amazing idea!', 'pos'),
     ('I feel very good about these ideas.', 'pos'),
     ('this is my best performance.', 'pos'),
     ("what an awesome view", 'pos'),
     ('I do not like this place', 'neg'),
     ('I am tired of this stuff.', 'neg'),
     ("I can't deal with all this tension", 'neg'),
     ('he is my sworn enemy!', 'neg'),
     ('my friends is horrible.', 'neg')
 ]
test = [
     ('the food was great.', 'pos'),
     ('I do not want to live anymore', 'neg'),
     ("I ain't feeling dandy today.", 'neg'),
     ("I feel amazing!", 'pos'),
     ('Ramesh is a friend of mine.', 'pos'),
     ("I can't believe I'm doing this.", 'neg')
 ]
from textblob.classifiers import NaiveBayesClassifier
cl = NaiveBayesClassifier(train)
print cl.classify("This is an amazing library!")
# Lets test the accuracy of the classifier
print cl.accuracy(test)

Here we trained the classifier with our own data to make a modified classifier and then tested the accuracy of the classifier

Thus we build  sentiment classifiers in very small time and tested the accuracy of these classifiers.

Wanna read more about python stuff read the below articles.

Increasing Python Code performance

Python dependency security vulnerability checker


Gaurav Yadav

Gaurav is cloud infrastructure engineer and a full stack web developer and blogger. Sportsperson by heart and loves football. Scale is something he loves to work for and always keen to learn new tech. Experienced with CI/CD, distributed cloud infrastructure, build systems and lot of SRE Stuff.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.