File size: 1,613 Bytes
f3b4ef6
690bfee
f3b4ef6
f2bdb97
f3b4ef6
 
 
05ea149
f3b4ef6
04b5871
f3b4ef6
58c7354
 
f3b4ef6
 
 
 
 
 
 
 
 
 
 
f2bdb97
f3b4ef6
 
 
 
 
 
 
 
 
9f55136
 
05ea149
 
f2bdb97
f3b4ef6
517ee3a
f3b4ef6
f2bdb97
05ea149
f3b4ef6
05ea149
 
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
42
43
44
45
46
47
import streamlit as st
import pandas as pd
from keras import Sequential
from keras.layers import Dense,Embedding,Flatten
from keras.utils import pad_sequences
from keras.preprocessing.text import Tokenizer
st.title("Spam-NonSpam Detector")
Input=st.text_area("Input the message below")
if st.button("Check"):
    st.text("Process may take upto a minute. Please be patient. Thank you!")
    df=pd.read_csv("mail_data.csv")
    df.loc[df['Category'] == 'spam', 'Category'] = 0
    df.loc[df['Category'] == 'ham', 'Category'] = 1
    X = df['Message']
    Y = df['Category']
    from keras.utils import pad_sequences
    tokenizer = Tokenizer()
    docs=X.astype("string")
    tokenizer.fit_on_texts(docs)
    sequences = tokenizer.texts_to_sequences(docs)
    sequences = pad_sequences(sequences,padding='post',maxlen=61)
    voc_size=len(tokenizer.word_index)
    model = Sequential()
    model.add(Embedding(voc_size+1,2,input_length=61))
    model.add(Flatten())
    model.add(Dense(5,activation="relu"))
    model.add(Dense(5,activation="relu"))
    model.add(Dense(1, activation='sigmoid'))
    X=sequences
    Y=Y.to_numpy()
    Y=Y.astype("int")
    Y=Y.reshape(-1,1)
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
    model.fit(X,Y,epochs=21)
    Input=[Input]
    seq=tokenizer.texts_to_sequences(Input)
    inp=pad_sequences(seq,padding='post',maxlen=61)
    a=model.predict(inp)
    value=a[0][0]
    st.text("Input:")
    st.markdown(Input[0])
    st.text("Output:")
    if (value>0.5):
      st.text('Non-spam message')
    else:
      st.text('Spam message')