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