How to Perform Sentiment Analysis in Python using NTLK

Alexandros Pappas
3 min readDec 2, 2022

--

Sentiment analysis is a common task in natural language processing that involves classifying text as positive, negative, or neutral. It is often used to identify and extract opinions from text, which can be useful for a wide range of applications, such as analyzing customer feedback and identifying trends in social media.

In this blog post, we will show you how to perform sentiment analysis in Python using the Natural Language Toolkit (NTLK) library. We will cover how to install NTLK, import the required modules, create a sentiment analyzer, and use it to classify text as positive, negative, or neutral.

Install NTLK

Before we get started, we need to install NTLK. To do this, open a terminal window and run the following command:

pip install nltk

This will install NTLK and all of its dependencies.

Import Required Modules

Next, we need to import the modules that we will be using in our script. To do this, add the following lines at the top of your Python script:

import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer

The first line imports the NTLK library, while the second line imports the SentimentIntensityAnalyzer class from NTLK's vader sentiment analysis module. This class is used to classify text as positive, negative, or neutral.

Download Required Data

Before we can use the SentimentIntensityAnalyzer class, we need to download the vader_lexicon data that it uses. To do this, run the following command in a terminal window:

python -m nltk.downloader vader_lexicon

This will download the required data and make it available for use in your script.

Create a Sentiment Analyzer

To use the SentimentIntensityAnalyzer class, we need to create an instance of it. Add the following line to your script to do this:

analyzer = SentimentIntensityAnalyzer()

Analyze Text

Now that we have a sentiment analyzer, we can use it to classify text as positive, negative, or neutral. The SentimentIntensityAnalyzer class has a polarity_scores method that takes a string of text as an input and returns a dictionary containing the calculated positive, negative, and neutral scores.

Here’s an example of how to use the polarity_scores method:

text = "I love NTLK! It's a great library for working with text data."
scores = analyzer.polarity_scores(text)

print(scores)

This code will print the following dictionary:

{'neg': 0.0, 'neu': 0.482, 'pos': 0.518, 'compound': 0.8622}

The neg, neu, and pos keys represent the negative, neutral, and positive scores, respectively. The compound key is a normalized score that ranges from -1 (most negative) to 1 (most positive).

To determine the overall sentiment of the text, we can check which score is the highest and use that to classify the text as positive, negative, or neutral. For example, we can add the following code to our script to classify the text as positive, neutral, or negative:

if scores['compound'] >= 0.5:
print("Positive")
elif scores['compound'] > -0.5:
print("Neutral")
else:
print("Negative")

This code will print “Positive” for the text we used in the previous example.

Here’s the full code for performing sentiment analysis in Python using NTLK:

import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer

# Download the vader_lexicon data
nltk.download("vader_lexicon")
# Create a sentiment analyzer
analyzer = SentimentIntensityAnalyzer()
# Analyze some text
text = "I love NTLK! It's a great library for working with text data."
scores = analyzer.polarity_scores(text)
print(scores)

# Classify the text as positive, neutral, or negative
if scores['compound'] >= 0.5:
print("Positive")
elif scores['compound'] > -0.5:
print("Neutral")
else:
print("Negative")

Conclusion

In this blog post, we showed you how to use NTLK to perform sentiment analysis in Python. We covered how to install NTLK, import the required modules, download the required data, create a sentiment analyzer, and use it to classify text as positive, negative, or neutral. With a few lines of code, you can quickly and easily extract sentiments from text data using NTLK.

--

--

Alexandros Pappas

A software engineer passionate about Graph Theory and its applications.