DEV Community

Dhiraj Patra
Dhiraj Patra

Posted on

21

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.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay