File size: 1,253 Bytes
dce1916
85fad07
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import joblib

st.title('SMS Spam Classification (Decision Tree)')

# Initialize model and vectorizer as None
model = None
vectorizer = None

# Load the model and vectorizer
try:
    model = joblib.load('src/decision_tree_model.joblib')
    vectorizer = joblib.load('src/vectorizer.joblib')  # Save your CountVectorizer as 'vectorizer.joblib'
except Exception as e:
    st.error(f"Error loading model or vectorizer: {e}")

text_input = st.text_area('Enter SMS text for classification:', '')

def preprocess_text(text, vectorizer):
    if hasattr(vectorizer, 'transform'):
        return vectorizer.transform([text])
    else:
        raise ValueError("Unknown vectorizer type.")

if st.button('Predict'):
    if not text_input.strip():
        st.warning('Please enter some text.')
    elif model is None or vectorizer is None:
        st.error('Model or vectorizer not loaded. Please check the files and try again.')
    else:
        try:
            X = preprocess_text(text_input, vectorizer)
            prediction = model.predict(X)[0]
            label = 'Spam' if prediction == 1 else 'Ham'
            st.success(f'Prediction: {label}')
        except Exception as e:
            st.error(f"Error making prediction: {e}")