DataScience1Project/SpamClassifier
0
1import streamlit as st
2
3import pickle
4import string
5from nltk.corpus import stopwords
6import nltk
7from nltk.stem.porter import PorterStemmer
8import sklearn
9nltk.download('punket')
10
11
12ps = PorterStemmer()
13
14def transform_text(text):
15 text = text.lower()
16 text = nltk.word_tokenize(text)
17
18 y = []
19 for i in text:
20 if i.isalnum():
21 y.append(i)
22
23 text = y[:]
24 y.clear()
25
26 for i in text:
27 if i not in stopwords.words('english') and i not in string.punctuation:
28 y.append(i)
29
30 text = y[:]
31 y.clear()
32
33 for i in text:
34 y.append(ps.stem(i))
35
36 return " ".join(y)
37
38tfidf = pickle.load(open('vectorizer.pkl','rb'))
39model = pickle.load(open('model.pkl','rb'))
40
41st.title("Email/SMS Spam Classifier")
42
43input_sms = st.text_area("Enter the message")
44
45if st.button('Predict'):
46
47 # 1 preprocess
48 transformed_sms = transform_text(input_sms)
49
50 # 2 vectorize
51 vector_input = tfidf.transform([transformed_sms])
52
53 # 3 predict
54 result = model.predict(vector_input)[0]
55
56 # 4 Display
57 if result == 1:
58 st.header("Spam")
59 else:
60 st.header("Not Spam")