Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available:
5.34.2
metadata
title: SMS Spam Classifier
emoji: 📩
colorFrom: pink
colorTo: red
sdk: gradio
sdk_version: 5.31.0
app_file: app.py
pinned: false
📩 SMS Spam Classifier with MLflow Model Versioning
Đây là một demo triển khai mô hình phân loại tin nhắn rác (spam) sử dụng Gradio và MLflow Model Registry, với khả năng chọn phiên bản mô hình để phục vụ.
🚀 Mục tiêu
- Áp dụng kiến thức về MLflow Model Versioning
- So sánh các mô hình huấn luyện khác nhau (nhiều version)
- Triển khai online miễn phí bằng Hugging Face Spaces
📦 Dataset
Dữ liệu được sử dụng là SMS Spam Collection Dataset, bao gồm hơn 5.000 tin nhắn đã được phân loại sẵn là ham
(hợp lệ) hoặc spam
.
🧐 Mô hình
Các phiên bản được huấn luyện với pipeline gồm:
TfidfVectorizer
: để chuyển văn bản thành vector đặc trưngMultinomial Naive Bayes
: mô hình phân loại đơn giản nhưng hiệu quả
Các version chỉ khác nhau về giá trị alpha
(tham số làm trơn trong Naive Bayes):
model_spam_v1.pkl
: alpha = 1.0model_spam_v2.pkl
: alpha = 0.5model_spam_v3.pkl
: alpha = 0.3
🧪 Hướng dẫn sử dụng
- Nhập nội dung tin nhắn cần phân loại
- Chọn phiên bản mô hình (v1, v2, hoặc v3)
- Nhấn Dự đoán
- Ứng dụng sẽ trả về kết quả:
Spam ❌
hoặcHam ✅
và độ tin cậy
📌 Công nghệ sử dụng
- 🦍 Python
- 📊 Scikit-learn
- 📦 MLflow (log model & versioning)
- 🎨 Gradio (UI)
- ☁️ Hugging Face Spaces (hosting)
💻 Chạy offline trên máy local
Nếu bạn muốn chạy ứng dụng trên máy cá nhân, làm theo các bước sau:
🔧 1. Tạo môi trường ảo (virtual environment)
Windows:
python -m venv .venv
.venv\Scripts\activate
macOS/Linux:
python3 -m venv .venv
source .venv/bin/activate
📦 2. Cài đặt thư viện
pip install -r requirements.txt
▶️ 3. Chạy ứng dụng Gradio
python app.py
Ứng dụng sẽ chạy tại địa chỉ: http://localhost:7860
📁 Cấu trúc thư mục mẫu
mlflow-spam-classifier/
├── app.py
├── requirements.txt
├── model_spam_v1.pkl
├── model_spam_v2.pkl
├── model_spam_v3.pkl
├── README.md
└── train_spam_model.py (tuỳ chọn)
✅ Sau khi chạy xong, bạn có thể nhập nội dung tin nhắn và chọn phiên bản mô hình để dự đoán trực tiếp mà không cần kết nối Internet.