Spaces:
Sleeping
Sleeping
| # Your Gradio app code here | |
| import gradio as gr | |
| import joblib | |
| import numpy as np | |
| from scipy.sparse import hstack | |
| # Load your model and vectorizer | |
| model = joblib.load("spam_classifier_model.joblib") | |
| vectorizer = joblib.load("vectorizer.joblib") | |
| def predict_spam(clean_body, num_urls, has_attachment): | |
| X_text = vectorizer.transform([clean_body]) | |
| X_combined = hstack([ | |
| X_text, | |
| np.array([num_urls]).reshape(-1, 1), | |
| np.array([has_attachment]).reshape(-1, 1) | |
| ]) | |
| prediction = model.predict(X_combined)[0] | |
| return "Spam" if prediction == 1 else "Not Spam" | |
| interface = gr.Interface( | |
| fn=predict_spam, | |
| inputs=[ | |
| gr.Textbox(lines=5, label="Email Body"), | |
| gr.Slider(0, 50, step=1, label="Number of URLs"), | |
| gr.Radio([0, 1], label="Has Attachment (0 = No, 1 = Yes)") | |
| ], | |
| outputs=gr.Text(label="Prediction"), | |
| title="Spam Email Classifier", | |
| description="Classify emails as Spam or Not Spam." | |
| ) | |
| interface.launch() | |