Sentiment Analysis with Python & NLP

1. Project Overview

Natural Language Processing (NLP) is one of the most exciting fields in Data Science. In this project, I utilize the NLTK (Natural Language Toolkit) library to build a Sentiment Analyzer.

While advanced Transformer models like Cardiff's Twitter-RoBERTa offer state-of-the-art accuracy, they require heavy computational resources (GPUs) and large download sizes. For rapid analysis of social media text or customer reviews where speed is critical, rule-based models like VADER (Valence Aware Dictionary and sEntiment Reasoner) remain highly effective.

2. The Logic: How VADER Works

VADER is a lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media. It doesn't just look at "good" or "bad" words; it understands the context:

  • Polarity: Every word in the lexicon is rated between -4 (Negative) and +4 (Positive).
  • Intensity: It accounts for boosters (e.g., "really good" is stronger than "good").
  • Negation: It understands that "not bad" is actually positive.
  • Punctuation: "Great!!!" scores higher than "Great".

3. Python Implementation

Below is the Python code used to implement this analysis in a production environment (e.g., a Jupyter Notebook or Backend Server).

import nltk
from nltk.sentiment import SentimentIntensityAnalyzer

# Download the VADER lexicon (Run once)
nltk.download('vader_lexicon')

# Initialize the Analyzer
sia = SentimentIntensityAnalyzer()

def get_sentiment(text):
    scores = sia.polarity_scores(text)
    compound = scores['compound']
    
    if compound >= 0.05:
        return "Positive 😊"
    elif compound <= -0.05:
        return "Negative 😠"
    else:
        return "Neutral 😐"

# Example Usage
sample_text = "I absolutely love this new feature! It's amazing."
print(get_sentiment(sample_text))

4. Live Interactive Demo

Since this portfolio is hosted on GitHub Pages (a static environment), we cannot run the Python server above. However, I have implemented a Custom JavaScript Logic that mimics the VADER algorithm right here in your browser.

Type any sentence below to test the model's logic in real-time. Try "TERRIBLE", "Amazing", or "Not bad".


Waiting for input...
← Return to All Projects