Jigyasa-panwar's picture
app.py
33dee5a verified
Raw
History Blame Contribute Delete
1.03 kB
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()