email spam or not

PHOTO EMBED

Fri Oct 11 2024 03:10:33 GMT+0000 (Coordinated Universal Time)

Saved by @wayneinvein

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report, confusion_matrix

data = pd.read_csv('email.csv')
data['Message'] = data['Message'].str.lower()
data['Category'] = data['Category'].map({'spam': 1, 'ham': 0})
data = data.dropna(subset=['Category'])

X_train, X_test, y_train, y_test = train_test_split(data['Message'], data['Category'], test_size=0.2, random_state=42)

vectorizer = TfidfVectorizer(stop_words='english')
X_train_tfidf = vectorizer.fit_transform(X_train)
X_test_tfidf = vectorizer.transform(X_test)

model = MultinomialNB()
model.fit(X_train_tfidf, y_train)
y_pred = model.predict(X_test_tfidf)

print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
content_copyCOPY