Building a Sentiment Analysis App with Python and Hugging Face Transformers
Code_Jedi
Posted on September 24, 2023
Sentiment analysis, also known as opinion mining, is a natural language processing (NLP) task that involves determining the sentiment or emotional tone expressed in a piece of text. With the help of Hugging Face Transformers, a popular library for NLP, we can easily create a sentiment analysis app that can classify text as positive, negative, or neutral. In this tutorial, we'll walk through the steps to build a sentiment analysis app using Python and Hugging Face Transformers.
Before we get into this article, if you want to learn more on NLP and Hugging face, I would recommend the tutorials over at Educative, who I chose to partner with for this tutorial.
Prerequisites
Before we begin, make sure you have the following prerequisites:
- Python 3 installed on your system.
- Basic knowledge of Python programming.
- An understanding of natural language processing (NLP) concepts.
Step 1: Installing the Required Libraries
First, we need to install the necessary Python libraries, including Hugging Face Transformers and Flask, a web framework for building web applications.
pip install transformers
pip install flask
Step 2: Creating a Sentiment Analysis Flask App
Now, let's create a Flask app that performs sentiment analysis using a pre-trained model from Hugging Face Transformers.
# app.py
import torch
from transformers import pipeline
from flask import Flask, request, jsonify
app = Flask(__name__)
# Load the sentiment analysis model
sentiment_analysis = pipeline("sentiment-analysis")
@app.route("/analyze", methods=["POST"])
def analyze_sentiment():
try:
data = request.json
text = data["text"]
# Perform sentiment analysis
result = sentiment_analysis(text)
return jsonify({"sentiment": result[0]["label"], "score": result[0]["score"]})
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == "__main__":
app.run(debug=True)
In this code, we create a Flask app with a single route /analyze
that accepts a JSON payload with a "text" field and returns the sentiment analysis result as JSON.
Step 3: Running the Flask App
Now, let's run our Flask app:
python app.py
Your Flask app should start running on http://127.0.0.1:5000/
.
Step 4: Testing the Sentiment Analysis API
You can test the sentiment analysis API using a tool like curl
or by creating a simple client application. Here's an example using Python's requests
library:
# client.py
import requests
url = "http://127.0.0.1:5000/analyze"
data = {"text": "I love this product! It's amazing!"}
response = requests.post(url, json=data)
if response.status_code == 200:
result = response.json()
print(f"Sentiment: {result['sentiment']}")
print(f"Sentiment Score: {result['score']}")
else:
print(f"Error: {response.text}")
Run the client script:
python client.py
You should see the sentiment analysis result for the provided text.
Conclusion
Congratulations! You've built a simple sentiment analysis app using Hugging Face Transformers and Flask. This app can classify text as positive, negative, or neutral. You can extend this project by improving the user interface, integrating it with a front-end framework, or deploying it to a web server to make it accessible from anywhere. Sentiment analysis has numerous applications, including social media monitoring, customer feedback analysis, and more.
Posted on September 24, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
September 14, 2024
September 24, 2023