Skip to content

ML система для классификации текстовых английских сообщений на спам/не спам.

Notifications You must be signed in to change notification settings

w0drs/SpamDetect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python FastAPI Streamlit

SpamDetector

Система для классификации текстовых (английских) сообщений на спам/не спам.

🎯 Что включает в себя проект?

  • 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

About

ML система для классификации текстовых английских сообщений на спам/не спам.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published