suhas1324's picture
Update app.py
97dcc41 verified
Raw
History Blame Contribute Delete
1.35 kB
import gradio as gr
import pickle
import string
from nltk.corpus import stopwords
import nltk
from nltk.stem.porter import PorterStemmer
import sklearn
nltk.download('punkt')
nltk.download('stopwords')
nltk.download('corpus')
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)
tfidf = pickle.load(open('vectorizer.pkl','rb'))
model = pickle.load(open('model.pkl','rb'))
def predict_spam(input_sms):
# 1. Preprocess
transformed_sms = transform_text(input_sms)
# 2. Vectorize
vector_input = tfidf.transform([transformed_sms])
# 3. Predict
result = model.predict(vector_input)[0]
# 4. Display result
return "Spam" if result == 1 else "Not Spam"
title = "Email/SMS Spam Classifier"
inputs = gr.Text("Enter the message")
outputs = gr.Textbox(label='Results',lines = 20)
interface = gr.Interface(fn=predict_spam, inputs=inputs, outputs=outputs,title=title)
interface.launch(share=True)