CoolFace
Apppublic

GaneshMaile3/Email_Spam_Ham_Classifier

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py47 linesDownload Raw Back to root
1import streamlit as st2import pandas as pd3from sklearn.feature_extraction.text import CountVectorizer4from sklearn.model_selection import train_test_split5from sklearn.metrics import accuracy_score6from sklearn.naive_bayes import MultinomialNB7 8# Load dataset9df = pd.read_csv("spam (1).csv")10 11# Streamlit title12st.title('📩 Email Spam or Ham Classification')13 14# Prepare data15x = df['Message']16y = df['Category']17bow = CountVectorizer(stop_words='english')18final_data = pd.DataFrame(bow.fit_transform(x).toarray(), columns=bow.get_feature_names_out())19 20# Split data21x_train, x_test, y_train, y_test = train_test_split(final_data, y, test_size=0.25, random_state=20)22 23# Train model24nav_base = MultinomialNB()25nav_base.fit(x_train, y_train)26y_pred = nav_base.predict(x_test)27 28# Predict accuracy29if st.button('Predict Accuracy'):30    st.write(f'Accuracy: {accuracy_score(y_test, y_pred):.2f}')31 32# Email input33user_input = st.text_area('Enter email text')34 35def predict_email(email):36    data = bow.transform([email]).toarray()37    prediction = nav_base.predict(data)[0]38    st.write(f'Prediction: {prediction}')39 40if st.button('Classify Email'):41    if user_input.strip():42        predict_email(user_input)43    else:44        st.warning('Please enter email text.')45 46    47