Система для классификации текстовых (английских) сообщений на спам/не спам.
- ML-модель: Классификация текста с помощью XGBoost + Sentence Transformers
- REST API: FastAPI
- Веб-интерфейс: Streamlit для удобного взаимодействия
- Работа с датасетом: pandas
- Текст: Эмбеддинг - Sentence Transformer (BERT)
- Классификация: XGBoost
- Метрики: Accuracy, Precision, Recall, F1-score
- Accuracy: 0.98
- Precision: 0.95
- Recall: 0.87
- f1-score: 0.91
SpamDetect/
├── backend/
│ ├── app.py # Основной веб-интерфейс
│ └── service.py # FastApi приложение
├── data/
│ └── spam_ham_data.csv # Исходные данные
├── ml/
│ ├── dataset/
| | ├── load_dataset.py # Загрузчик датасета
| | ├── preprocessing.py # Обработка текста
| | └── split_data.py # Разделенме датасета
│ ├── training/
| | ├── model_training.py # Обучение модели
| | └── prediction.py # Прогнозы модели
│ ├── utils/
| | ├── constants.py # Константные значения
| | └── exceptions.py # Ошибки
| └── train.py # pipeline обучения модели
├── models/
| └── xgboost_clf.pkl # Обученная модель
├── notebooks/ # Ноутбуки с экспериментами
| ├── 1_EDA.ipynb
| └── 2_Training.ipynb
├── tests/ # Тесты
| ├── test_dataset.py
| ├── test_preprocessing.py
| └── test_train.py
├── pytest.ini
└── README.md
# API сервер
uvicorn backend.service:app --reload --port 8000
# Веб-интерфейс
streamlit run backend/app.py

