ПРИМЕР МНОГООБРАЗНОЙ КЛАССИФИКАЦИИ ТЕКСТА В R (ЧАСТЬ 1)

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

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

Чтобы продолжить, вы должны быть немного знакомы с R и RStudio. Я буду использовать пакет структурной тематической модели (STM) в R, который представляет собой пакет неконтролируемой кластеризации, использующий ковариаты на уровне документа. Я смоделировал множество текстовых классификаторов с помощью STM, и он дает фантастические результаты при минимальном обучении. Подробнее о СТМ можно прочитать здесь.

Приступим к кодированию!

Шаг 1. Получите данные. В этом примере я буду использовать документы .txt, которые представляют собой новостные статьи, которые я скопировал из открытых источников с помощью Python BeautifulSoup (да, мне больше нравится Python, когда дело доходит до очистки данных).

Если вы не знаете, как это сделать, не волнуйтесь! Вы можете скопировать и вставить бесплатные текстовые данные в Интернете и сохранить их в виде файлов .txt (обязательно ознакомьтесь с авторскими правами. Используйте только бесплатные веб-данные). Вот как выглядят мои данные:

Я сохранил все свои файлы .txt в папке с именем STM_trainingdata,, которая находится в моем текущем каталоге.

Шаг 2. Загрузите данные в RStudio. Практическое правило - писать функции для задач, которые вы будете часто повторять. Чтобы загрузить свои данные в RStudio, я написал простую функцию. В зависимости от проекта, над которым вы работаете, и желаемого результата ваша функция может иметь разные входы / выходы. Вот как выглядит мой:

Теперь вызовите функцию, как показано ниже, и вы должны получить «УСПЕХ!»:

Ваши данные в RStudio должны выглядеть так:

Теперь, каждый раз, когда мне нужно добавить / изменить данные обучения в моей папке, все, что мне нужно сделать для обновления моей переменной данных в RStudio, - это вызвать ReadTxt ().

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

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

Очень важным шагом в НЛП является удаление игнорируемых слов. Стоп-слова - это слова, которые часто встречаются в вашем корпусе и поэтому не имеют значения при определении тем, обсуждаемых в тексте (они просто шум в ваших данных). Некоторые распространенные игнорируемые слова - это артикли, местоимения, междометия и т. Д.

Следующая функция очень настраиваема. В зависимости от ваших тренировочных данных вам может потребоваться удалить больше игнорируемых слов. Вы можете добавить их прямо в вектор rem. Например, вам может не понадобиться удалять URL-адреса.

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

Затем вызовите функцию следующим образом:

Ваши чистые данные должны выглядеть примерно так:

На данный момент у вас должно быть 4 элемента в глобальной среде RStudio. См. ниже:

Это первая часть! Во второй части мы перейдем к интересной части: обучению и тестированию нашей модели STM, а также некоторым визуализациям. Будьте на связи!

Если вам понравился этот пост, хлопните в ладоши и не стесняйтесь добавлять меня в LinkedIn и Твиттер!