Arvind111's picture
Upload 4 files
6492fb5 verified
raw
history blame
1.55 kB
# app.py
import gradio as gr
import joblib
# --- 1. Load the Model and Vectorizer ---
# Load the trained model and the TF-IDF vectorizer from disk.
try:
model = joblib.load('logistic_regression_model.joblib')
vectorizer = joblib.load('tfidf_vectorizer.joblib')
print("Model and vectorizer loaded successfully.")
except FileNotFoundError:
print("Error: Model or vectorizer files not found. Make sure they are in the same directory.")
# We'll let the app crash if files aren't found, as it can't run without them.
raise
# --- 2. Define the Prediction Function ---
# This function will take a text input and return the predicted sentiment.
def predict_sentiment(text):
# Transform the input text using the loaded vectorizer.
vectorized_text = vectorizer.transform([text])
# Make a prediction using the loaded model.
prediction = model.predict(vectorized_text)
# Return the first element of the prediction array.
return prediction[0]
# --- 3. Create and Launch the Gradio Interface ---
# Define the user interface for the app.
iface = gr.Interface(
fn=predict_sentiment,
inputs=gr.Textbox(lines=5, label="Enter a sentence to classify"),
outputs=gr.Label(label="Predicted Sentiment"),
title="Simple Sentiment Analysis",
description="A simple sentiment analysis model that classifies text as positive, negative, or neutral (depending on your training).",
allow_flagging="never"
)
# Launch the app. This will start a web server.
iface.launch()