Spaces:
Running
Running
import nltk | |
nltk.download('punkt') | |
nltk.download('stopwords') | |
import streamlit as st | |
import pickle | |
import string | |
from nltk.corpus import stopwords | |
from nltk.stem.porter import PorterStemmer | |
ps = PorterStemmer() | |
def transform_text(text): | |
text = text.lower() | |
text = nltk.word_tokenize(text) | |
y = [] | |
for i in text: | |
if i.isalnum(): | |
y.append(i) | |
text = y[:] | |
y.clear() | |
for i in text: | |
if i not in stopwords.words('english') and i not in string.punctuation: | |
y.append(i) | |
text = y[:] | |
y.clear() | |
for i in text: | |
y.append(ps.stem(i)) | |
return " ".join(y) | |
tk = pickle.load(open("vectorizer.pkl", 'rb')) | |
model = pickle.load(open("model.pkl", 'rb')) | |
st.title("SMS Spam Detection Model") | |
st.write("*Made with ❤️🔥 by Shrudex👨🏻💻*") | |
input_sms = st.text_input("Enter the SMS") | |
if st.button('Predict'): | |
# 1. preprocess | |
transformed_sms = transform_text(input_sms) | |
# 2. vectorize | |
vector_input = tk.transform([transformed_sms]) | |
# 3. predict | |
result = model.predict(vector_input)[0] | |
# 4. Display | |
if result == 1: | |
st.header("Spam") | |
else: | |
st.header("Not Spam") |