Программа Udacity Data Scientist
НЛП - это область искусственного интеллекта, которая позволяет машинам манипулировать естественными языками человека. НЛП использовалось во многих сферах. В этом блоге мы рассмотрим этапы классификации электронной почты, является ли это спамом или без использования методов НЛП. Но сначала давайте начнем с определения проблемы, которую мы собираемся попытаться решить в этом блоге.
Постановка задачи
Большинство из нас должно быть знакомо со спамом. Cisco определяет его как нежелательную нежелательную электронную почту, рассылаемую массовыми партиями неизбирательному списку получателей. Обычно спам рассылается в коммерческих целях. Его могут массово рассылать ботнеты, сети зараженных компьютеров. Следовательно, фильтрация спама является важной функцией для таких почтовых сервисов, как Outlook и Gmail. Поставщики услуг широко используют методы машинного обучения для их успешной фильтрации и классификации.
Набор данных
Набор данных, который мы используем, представляет собой общедоступные текстовые данные, он содержит два столбца, включая текст (электронная почта) и спам (метка). Столбец спама имеет два значения (0 и 1), текст имеет метку 1, если это спам, или 0 в противном случае.
Вы можете скачать его с Kaggle.
Трубопровод ETL
В вычислениях конвейер, также известный как конвейер данных, представляет собой набор элементов обработки данных, соединенных последовательно, где выход одного элемента является входом следующего. Элементы конвейера часто выполняются параллельно или с временным интервалом [1].
Конвейер ETL (извлечение, преобразование и загрузка) относится к набору шагов, которые позволяют нам подготовить данные для нашей модели машинного обучения. Извлечение - это процесс загрузки / сбора данных из источника (в нашем случае это Kaggle). Преобразование данных позволяет нам очистить их и обработать, а Загрузка данных - это этап, на котором мы сохраняем / сохраняем их в базе данных или файле для дальнейшего анализа или использования в качестве входные данные для построения модели машинного обучения.
Конвейер машинного обучения
На этом этапе мы собираемся построить конвейер НЛП, который будет включать:
1. Обработка текста
Этот шаг описан в Программе исследователей данных Udacity
Токенизировать
Учитывая простой текст, мы сначала нормализуем его и преобразуем в нижний регистр, удаляем знаки препинания и, наконец, разбиваем его на слова, эти слова называются токенизаторами.
Чистый
Удалите стоп-слова, чтобы сократить словарный запас.
Нормализовать
Чтобы еще больше упростить наши текстовые данные, на этом этапе мы можем лемматизировать или ограничивать. Лемматизация и стемминг обычно относятся к правильному выполнению действий с использованием словарного запаса и морфологического анализа слов, обычно направленного на удаление только флективных окончаний и возвращение базовой или словарной формы слова, которая известна как лемма [3]
2. SKLearn Pipeline
Цель конвейера состоит в том, чтобы собрать несколько шагов, которые могут быть проверены вместе при установке различных параметров [4].
Компоненты конвейера sklearn следующие:
- CountVectorizer (), куда мы передаем нашу функцию tokenize для предоставления словаря и кодирования новых документов с использованием этого словаря.
- TfidfTransformer () преобразует матрицу подсчета в нормализованное представление tf или tf-idf. Tf означает частоту термина, а tf-idf означает частоту термина, умноженную на обратную частоту документа. Это общий термин «схема взвешивания» при поиске информации, который также нашел хорошее применение при классификации документов.
- Классификатор машинного обучения (). В этом случае я использую простой алгоритм машинного обучения «Наивный Байесов», который известен как один из лучших классификаторов текста.
3. Оценка
Чтобы оценить производительность нашей модели машинного обучения, я использую следующие показатели:
Точность: доля прогнозов, которые модель классифицировала правильно.
Матрица неточностей: сводная таблица для оценки точности классификации, в которой разбито количество правильных и неправильных прогнозов по каждому классу.
Мы видим, что у нас 0 ложноотрицательных и истинно отрицательных. В то время как Истинный Положительный = 1398 и Ложный Положительный = 493, что неплохо.
Вывод
В этом посте мы создали конвейер ETL, который помогает нам подготовить данные, чтобы использовать их для построения модели машинного обучения, которая классифицирует электронные письма.
Реализуем базовые техники НЛП и машинное обучение и нашли. Результаты неплохие, поскольку точность этой модели без настройки гиперпараметров и добавления другой функции составляет 74%, что совсем неплохо, поскольку у нас очень маленький набор данных и используются основные методы NLP и ML.
Следующий шаг: я постараюсь улучшить модель, используя различные техники НЛП.
использованная литература
[1] Трубопровод ETL
[2] Программа ученых данных Udacity
[4] sklearn.pipeline
Удачного обучения!