File size: 1,035 Bytes
92f71fb
 
 
 
 
 
 
 
 
 
 
0ac1e43
92f71fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import pickle
import nltk
import re
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.stem import WordNetLemmatizer
import streamlit as st

stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()

cv = pickle.load(open('pickle_files/count_vectorizer.pkl', 'rb'))

model = pickle.load(open('pickle_files/spam_model.pkl', 'rb'))


def spam_or_ham(message):
    message = re.sub('[^a-zA-Z]', ' ', message)
    message = message.lower()
    message = message.split()
    message = [lemmatizer.lemmatize(word) for word in message if word not in set(stopwords.words('english'))]
    message = ' '.join(message)
    
    X = cv.transform([message]).toarray()
    prediction = model.predict(X)
    if prediction:
        return 'Not Spam'
    else:
        return 'Spam'


st.title("Spam Classifier")

message = st.text_input("Type a Message")

if st.button("Check Spam or Ham"):
    if message:
        spam_check = spam_or_ham(message)
        st.write(spam_check)
    else:
        st.write('Empty Message')