DEV Community

Dhiraj Patra
Dhiraj Patra

Posted on

Sentiment Analysis with LangChain and LLM

Here's a quick guide on how to perform sentiment analysis and other tasks using LangChain, LLM (Large Language Models), NLP (Natural Language Processing), and statistical analytics.

Sentiment Analysis with LangChain and LLM

  1. Install Required Libraries:

   pip install langchain openai transformers

Enter fullscreen mode Exit fullscreen mode
  1. Set Up OpenAI API:

   import openai



   openai.api_key = 'your_openai_api_key'

Enter fullscreen mode Exit fullscreen mode
  1. LangChain for Sentiment Analysis:

   from langchain.llms import OpenAI

   from langchain import Chain



   # Initialize OpenAI LLM

   llm = OpenAI(model="text-davinci-003")



   # Define a function for sentiment analysis

   def analyze_sentiment(text):

       response = llm.completion(

           prompt=f"Analyze the sentiment of the following text: {text}",

           max_tokens=60

       )

       return response.choices[0].text.strip()



   # Example usage

   text = "I love the new design of the website!"

   sentiment = analyze_sentiment(text)

   print(f"Sentiment: {sentiment}")

Enter fullscreen mode Exit fullscreen mode

Additional NLP Tasks with LangChain and LLM

Text Summarization


def summarize_text(text):

    response = llm.completion(

        prompt=f"Summarize the following text: {text}",

        max_tokens=150

    )

    return response.choices[0].text.strip()



# Example usage

text = "Your detailed article or document here."

summary = summarize_text(text)

print(f"Summary: {summary}")

Enter fullscreen mode Exit fullscreen mode

Named Entity Recognition (NER)


def extract_entities(text):

    response = llm.completion(

        prompt=f"Extract the named entities from the following text: {text}",

        max_tokens=100

    )

    return response.choices[0].text.strip()



# Example usage

text = "OpenAI, founded in San Francisco, is a leading AI research institute."

entities = extract_entities(text)

print(f"Entities: {entities}")

Enter fullscreen mode Exit fullscreen mode

Statistical Analytics with NLP

Word Frequency Analysis


from collections import Counter

import re



def word_frequency_analysis(text):

    words = re.findall(r'\w+', text.lower())

    frequency = Counter(words)

    return frequency



# Example usage

text = "This is a sample text with several words. This text is for testing."

frequency = word_frequency_analysis(text)

print(f"Word Frequency: {frequency}")

Enter fullscreen mode Exit fullscreen mode

Sentiment Score Aggregation


def sentiment_score(text):

    sentiment = analyze_sentiment(text)

    if "positive" in sentiment.lower():

        return 1

    elif "negative" in sentiment.lower():

        return -1

    else:

        return 0



# Example usage

texts = ["I love this!", "This is bad.", "It's okay."]

scores = [sentiment_score(t) for t in texts]

average_score = sum(scores) / len(scores)

print(f"Average Sentiment Score: {average_score}")

Enter fullscreen mode Exit fullscreen mode

For more advanced uses and customization, refer to the LangChain documentation and the OpenAI API documentation.

Top comments (0)