Trashika112's picture
Update app.py
234529f verified
import gradio as gr
import joblib
# Load vectorizer and models
vectorizer = joblib.load("tfidf_vectorizer.pkl")
log_model = joblib.load("logistic_model.pkl")
nb_model = joblib.load("naive_bayes_model.pkl")
svm_model = joblib.load("svm_model.pkl")
# Prediction function
def predict_spam(message, model_name):
if not message.strip():
return "⚠️ Please enter a message."
X_input = vectorizer.transform([message])
model = {
"Logistic Regression": log_model,
"Naive Bayes": nb_model,
"SVM": svm_model
}[model_name]
prediction = model.predict(X_input)[0]
return "🟢 Ham" if prediction == 0 else "🔴 Spam"
# Create Gradio Interface
app = gr.Interface(
fn=predict_spam,
inputs=[
gr.Textbox(label="Enter your message"),
gr.Radio(["Logistic Regression", "Naive Bayes", "SVM"], label="Choose a Model")
],
outputs="text",
title="📧 Spam Message Detector",
description="Classify text messages as spam or ham using ML models"
)
# Run the app
if __name__ == "__main__":
app.launch()