Зачетная работа по искусственному интеллекту (Вариант #4)
Задача
Написать программу, которая классифицирует сообщение спам или не спам
Требования
- Программа для обучение
- Программа для обработки
- Описание на страницу - как работает, какие результаты
Структура проекта
data
- Папка с датасетов сообщенийmodels
- Папка с моделямиПока что в папке models лежит одна натренированная модель наивный байесовский классификатор ComplementNB
implementing.ipynb
- Блокнот для классификации сообщенийclassifier_bag_words.py
- Функция предварительной обработки текста (Мешок слов)
Краткое описание блокнотов
traning.ipynb
- Импорт необходимых библиотек и загрузка стоп-слов для библиотеки nltk
- Разархивация архива с датасетов сообщений
- Просмотр и анализ датасета с помощью библиотеки Pandas
- Разбиваем датасет на тестовые (20%) и тренировочные (80%)
- Настраивает конвейер Pipeline
- Преобразуем датасет в матрицу с помощью CountVectorizer с параметром analyzer в которую передан название функции для предварительной обработки текста classifier_bag_words (Мешок слов)
- Преобразуйте матрицу подсчета в нормализованное представление TF-IDF с помощью TfidfTransformer
- Уставливаем классификатор наивный байесовский классификатор ComplementNB
- Обучаем модель
- Прогнозирование значений в тестовом наборе данных для проверки модели
- Сохранение моделей с именем finalized_model
implementing.ipynb
- Импорт необходимых библиотек
- Загрузка модели finalized_model
- Запуск программы, где человеку предлагается ввести сообщение
- Прогнозирование введеным человеком сообщение спам или не спам
Для выхода из режима ввода требуется ввести -1
Дополнительное описание файлов
classifier_bag_words.py
- Удаляем ненужные символы, цифры и знаки препинания
- Делаем слова строчными
- Удаляем стоп-слова из списка
- Возвращает обработанное сообщение
Точность нейронной сети
Accuracy: 97%