File size: 1,031 Bytes
8fe0ada
33dee5a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8fe0ada
 
33dee5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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()