How bhargav813-hub/sms_spam_detection works
This is an SMS spam-classification product with a Streamlit dashboard and a reusable prediction API. The principal workflow accepts a message, preprocesses it, transforms it with the fitted TF-IDF vectorizer, and classifies it with the selected model, returning a label and confidence. A separate training workflow cleans the dataset, benchmarks two classifiers, evaluates them, and persists artifacts; the dashboard also supports retraining, evaluation views, and dataset EDA. Training details and dashboard capabilities follow the README; some dashboard internals were not included in the sampled source.
Main entry points: app.py Live Classification · predict.py Prediction API · train_model.py Training Pipeline · models Serialized Artifacts
Components 17
User Interface
- Streamlit Dashboard
app.py - Live Classification
app.py - Evaluation Dashboard
app.py - Dataset EDA
app.py - Retraining Control
app.py
Inference
- Prediction API
src/predict.py - NLP Preprocessing
src/preprocessing.py
Training
- SMS Dataset
data/spam.csv - Data Cleaning
src/train_model.py - Training Pipeline
src/train_model.py - Model Evaluation
src/train_model.py
Model Artifacts
- Serialized Artifacts
models - TF-IDF Vectorizer
models/tfidf_vectorizer.pkl - Selected Classifier
models/spam_classifier.pkl - Metrics Bundle
models/model_metrics.pkl
Other components
- Dashboard User
- SMS Message
Connections 25
- Dashboard User → Streamlit Dashboard: uses
- SMS Message → Live Classification: submits
- Streamlit Dashboard → Live Classification: dispatches
- Live Classification → NLP Preprocessing: cleans text
- Live Classification → TF-IDF Vectorizer: transforms with
- Live Classification → Selected Classifier: classifies with
- Live Classification → Dashboard User: returns result
- Prediction API → NLP Preprocessing: cleans text
- Prediction API → TF-IDF Vectorizer: transforms with
- Prediction API → Selected Classifier: classifies with
- Prediction API → Metrics Bundle: loads
- Streamlit Dashboard → Evaluation Dashboard: displays
- Streamlit Dashboard → Dataset EDA: displays
- Evaluation Dashboard → Metrics Bundle: reads
- Dataset EDA → Metrics Bundle: reads
- Streamlit Dashboard → Retraining Control: dispatches
- Retraining Control → Training Pipeline: invokes
- SMS Dataset → Data Cleaning: provides rows
- Training Pipeline → Data Cleaning: calls
- Training Pipeline → NLP Preprocessing: preprocesses messages
- Training Pipeline → Model Evaluation: evaluates candidates
- Model Evaluation → Serialized Artifacts: writes artifacts
- Serialized Artifacts → TF-IDF Vectorizer: stores
- Serialized Artifacts → Selected Classifier: stores
- Serialized Artifacts → Metrics Bundle: stores