Spaces:
Sleeping
Sleeping
| 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}") |