| import gradio as gr |
| import pandas as pd |
| from sklearn.feature_extraction.text import TfidfVectorizer |
| from sklearn.linear_model import LogisticRegression |
|
|
| |
| df = pd.read_csv("spam.csv", encoding="latin1") |
|
|
| |
| df = df[['v1', 'v2']] |
| df.columns = ['label', 'message'] |
|
|
| |
| df['label'] = df['label'].map({'ham': 0, 'spam': 1}) |
|
|
| |
| vectorizer = TfidfVectorizer() |
| X = vectorizer.fit_transform(df['message']) |
| y = df['label'] |
|
|
| model = LogisticRegression() |
| model.fit(X, y) |
|
|
| |
| def predict_spam(message): |
| msg_vector = vectorizer.transform([message]) |
| prediction = model.predict(msg_vector)[0] |
|
|
| if prediction == 1: |
| return "🚨 Spam" |
| else: |
| return "✅ Not Spam" |
|
|
| |
| 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() |