import gradio as gr import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.linear_model import LogisticRegression # Load dataset df = pd.read_csv("spam.csv", encoding="latin1") # Select required columns df = df[['v1', 'v2']] df.columns = ['label', 'message'] # Convert labels df['label'] = df['label'].map({'ham': 0, 'spam': 1}) # Train model vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(df['message']) y = df['label'] model = LogisticRegression() model.fit(X, y) # Prediction function def predict_spam(message): msg_vector = vectorizer.transform([message]) prediction = model.predict(msg_vector)[0] if prediction == 1: return "🚨 Spam" else: return "✅ Not Spam" # Gradio Interface iface = gr.Interface( fn=predict_spam, inputs=gr.Textbox(lines=3, placeholder="Enter your message"), outputs="text", title="Email Spam Detection System", description="Check whether an email/message is spam or not." ) iface.launch()