Spaces:
Sleeping
Sleeping
| # 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() | |