Программа Udacity Data Scientist

НЛП - это область искусственного интеллекта, которая позволяет машинам манипулировать естественными языками человека. НЛП использовалось во многих сферах. В этом блоге мы рассмотрим этапы классификации электронной почты, является ли это спамом или без использования методов НЛП. Но сначала давайте начнем с определения проблемы, которую мы собираемся попытаться решить в этом блоге.

Постановка задачи

Большинство из нас должно быть знакомо со спамом. Cisco определяет его как нежелательную нежелательную электронную почту, рассылаемую массовыми партиями неизбирательному списку получателей. Обычно спам рассылается в коммерческих целях. Его могут массово рассылать ботнеты, сети зараженных компьютеров. Следовательно, фильтрация спама является важной функцией для таких почтовых сервисов, как Outlook и Gmail. Поставщики услуг широко используют методы машинного обучения для их успешной фильтрации и классификации.

Набор данных

Набор данных, который мы используем, представляет собой общедоступные текстовые данные, он содержит два столбца, включая текст (электронная почта) и спам (метка). Столбец спама имеет два значения (0 и 1), текст имеет метку 1, если это спам, или 0 в противном случае.

Вы можете скачать его с Kaggle.

Трубопровод ETL

В вычислениях конвейер, также известный как конвейер данных, представляет собой набор элементов обработки данных, соединенных последовательно, где выход одного элемента является входом следующего. Элементы конвейера часто выполняются параллельно или с временным интервалом [1].

Конвейер ETL (извлечение, преобразование и загрузка) относится к набору шагов, которые позволяют нам подготовить данные для нашей модели машинного обучения. Извлечение - это процесс загрузки / сбора данных из источника (в нашем случае это Kaggle). Преобразование данных позволяет нам очистить их и обработать, а Загрузка данных - это этап, на котором мы сохраняем / сохраняем их в базе данных или файле для дальнейшего анализа или использования в качестве входные данные для построения модели машинного обучения.

Конвейер машинного обучения

На этом этапе мы собираемся построить конвейер НЛП, который будет включать:

1. Обработка текста

Этот шаг описан в Программе исследователей данных Udacity

Токенизировать

Учитывая простой текст, мы сначала нормализуем его и преобразуем в нижний регистр, удаляем знаки препинания и, наконец, разбиваем его на слова, эти слова называются токенизаторами.

Чистый

Удалите стоп-слова, чтобы сократить словарный запас.

Нормализовать

Чтобы еще больше упростить наши текстовые данные, на этом этапе мы можем лемматизировать или ограничивать. Лемматизация и стемминг обычно относятся к правильному выполнению действий с использованием словарного запаса и морфологического анализа слов, обычно направленного на удаление только флективных окончаний и возвращение базовой или словарной формы слова, которая известна как лемма [3]

2. SKLearn Pipeline

Цель конвейера состоит в том, чтобы собрать несколько шагов, которые могут быть проверены вместе при установке различных параметров [4].

Компоненты конвейера sklearn следующие:

  1. CountVectorizer (), куда мы передаем нашу функцию tokenize для предоставления словаря и кодирования новых документов с использованием этого словаря.
  2. TfidfTransformer () преобразует матрицу подсчета в нормализованное представление tf или tf-idf. Tf означает частоту термина, а tf-idf означает частоту термина, умноженную на обратную частоту документа. Это общий термин «схема взвешивания» при поиске информации, который также нашел хорошее применение при классификации документов.
  3. Классификатор машинного обучения (). В этом случае я использую простой алгоритм машинного обучения «Наивный Байесов», который известен как один из лучших классификаторов текста.

3. Оценка

Чтобы оценить производительность нашей модели машинного обучения, я использую следующие показатели:

Точность: доля прогнозов, которые модель классифицировала правильно.

Матрица неточностей: сводная таблица для оценки точности классификации, в которой разбито количество правильных и неправильных прогнозов по каждому классу.

Мы видим, что у нас 0 ложноотрицательных и истинно отрицательных. В то время как Истинный Положительный = 1398 и Ложный Положительный = 493, что неплохо.

Вывод

В этом посте мы создали конвейер ETL, который помогает нам подготовить данные, чтобы использовать их для построения модели машинного обучения, которая классифицирует электронные письма.

Реализуем базовые техники НЛП и машинное обучение и нашли. Результаты неплохие, поскольку точность этой модели без настройки гиперпараметров и добавления другой функции составляет 74%, что совсем неплохо, поскольку у нас очень маленький набор данных и используются основные методы NLP и ML.

Следующий шаг: я постараюсь улучшить модель, используя различные техники НЛП.

использованная литература

[1] Трубопровод ETL

[2] Программа ученых данных Udacity

[3] Стемминг-и-лемматизация

[4] sklearn.pipeline

Удачного обучения!