Day 19: Sentiment Analysis in NLP - Notebook Implementation

Day 19: Sentiment Analysis in NLP - Notebook Implementation

Hey everyone! ??

Welcome back to our NLP journey! ??

Today is a Coding Day where we will dive into practical implementations of Natural Language Processing (NLP) using popular libraries like Hugging Face Transformers. We’ll cover how to implement code for sentiment analysis. Let’s get coding!

Problem Statement:

Sentiment analysis is the process of determining the emotional tone behind a series of words. It is widely used to understand opinions, sentiments, and emotions expressed in text data. The goal of this notebook is to implement a sentiment analysis model that can accurately classify text as positive, negative, or neutral based on the emotions conveyed in the sentences.

Objectives:

  • To create a sentiment analysis model using the Hugging Face Transformers library.
  • To evaluate the model's performance on various sample texts.
  • To enable user input for real-time sentiment analysis.

Code Implementation

Step 1: Install Required Libraries

If you haven't already installed the Hugging Face Transformers library, you can do so using pip. Uncomment the following line to install it:

!pip install transformers torch        

Step 2: Import Required Libraries

Import the necessary libraries for sentiment analysis:

import torch
from transformers import pipeline        

Step 3: Load the Sentiment Analysis Pipeline

Initialize the sentiment analysis pipeline, which uses a pre-trained model to analyze text:

sentiment_pipeline = pipeline("sentiment-analysis")        

Step 4: Define a Function for Sentiment Analysis

Create a function that takes a string input, runs it through the sentiment analysis pipeline, and returns the sentiment label (e.g., POSITIVE or NEGATIVE) along with a confidence score:

def analyze_sentiment(text):
    """
    Analyzes the sentiment of the given text and returns the sentiment label and score.

    Parameters:
    text (str): The input text to analyze.

    Returns:
    dict: A dictionary containing the sentiment label and score.
    """

    # Get the sentiment analysis result
    result = sentiment_pipeline(text)[0]
    return result        

Step 5: Test the Function with Sample Sentences

Define a list of sample sentences to test the sentiment analysis function:

sample_texts = [
    "I love this product! It works great and has changed my life for the better.",
    "This is the worst experience I've ever had. I'm very disappointed.",
    "The movie was okay, but it could have been better.",
    "I'm so happy with the service I received!",
    "This is absolutely terrible. I will never come back here again."
]        

Step 6: Analyze Sentiments of Sample Texts

Loop through the sample sentences, call the analyze_sentiment function for each sentence, and print the sentiment results:

for text in sample_texts:
    sentiment_result = analyze_sentiment(text)
    print(f"Text: {text}")
    print(f"Sentiment: {sentiment_result['label']}, Score: {sentiment_result['score']:.2f}\n")        

Output:

Text: I love this product! It works great and has changed my life for the better.
Sentiment: POSITIVE, Score: 1.00

Text: This is the worst experience I've ever had. I'm very disappointed.
Sentiment: NEGATIVE, Score: 1.00

Text: The movie was okay, but it could have been better.
Sentiment: NEGATIVE, Score: 0.99

Text: I'm so happy with the service I received!
Sentiment: POSITIVE, Score: 1.00

Text: This is absolutely terrible. I will never come back here again.
Sentiment: NEGATIVE, Score: 1.00        

Step 7: Analyze User Input (Optional)

Uncomment the following lines to allow users to input their own sentences for sentiment analysis. The program will continue to analyze until the user types 'exit':

while True:
    user_input = input("Enter a sentence to analyze sentiment (or type 'exit' to quit): ")
    if user_input.lower() == 'exit':
        break
    sentiment_result = analyze_sentiment(user_input)
    print(f"Sentiment: {sentiment_result['label']}, Score: {sentiment_result['score']:.2f}\n")        

Output:

Enter a sentence to analyze sentiment (or type 'exit' to quit): movie is not good 
Sentiment: NEGATIVE, Score: 1.00

Enter a sentence to analyze sentiment (or type 'exit' to quit): i love you
Sentiment: POSITIVE, Score: 1.00

Enter a sentence to analyze sentiment (or type 'exit' to quit): i hate you
Sentiment: NEGATIVE, Score: 1.00

Enter a sentence to analyze sentiment (or type 'exit' to quit): exit        

This notebook implementation provides a straightforward way to perform sentiment analysis using the Hugging Face Transformers library. By following the steps outlined above, you can accurately analyze the sentiment of various texts and even extend the functionality to include user input.


In our next post, we will dive into a Notebook Implementation of Named Entity Recognition (NER). We will explore how to use NLP libraries to identify and classify named entities in text, such as people, organizations, locations, and more. Stay tuned for this exciting discussion!

要查看或添加评论,请登录

Vinod Kumar GR的更多文章

社区洞察

其他会员也浏览了