Краткое изложение методов преобразования текстовых данных для НЛП

Почему мы заботимся о Feature Engineering

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

Разработка признаков еще более важна для текстовых данных, так как это неструктурированные данные, поэтому вам всегда нужно преобразовывать текст в числовое представление, которое может быть понято алгоритмами машинного обучения.

Предварительная обработка текстовых данных

Прежде чем говорить о различных методах разработки признаков и применять их к вашим данным, вам сначала необходимо выполнить предварительную обработку. Именно здесь текстовые данные, такие как документ, сначала токенизируются, что представляет собой процесс разделения документов на единицы наблюдения. Затем к данным применяются различные методы, чтобы уменьшить размерность и уменьшить шум текста.

Эти методы включают в себя:

  • Удалить номера
  • Удалить знаки препинания
  • Нижний регистр
  • Удалить стоп-слова
  • Лемматизация и стемминг
  • Тегирование части речи

Я не буду вдаваться в подробности методов, поскольку некоторые из них интуитивно понятны, а примеры других хорошо освещены.

Методы трансформации

Мешок слов

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

Мешок N-граммов

Модель Bag of N-Grams — это просто расширение модели Bag of Words. Каждое слово или токен называется «граммом», поэтому Bag of 1 Gram такой же, как в примере, показанном выше. Словарь пар двух слов, в свою очередь, называется моделью биграмм (т. е. Bag of Bigrams). Это полезно, так как также учитывает фразы или набор слов, которые встречаются в последовательности.

Частота термина — обратная частота документа (TF-IDF)

Одна из проблем с подсчетом частотности слов заключается в том, что в документе начинают доминировать очень часто встречающиеся слова, которые часто присутствуют во многих документах, тем самым затмевая «ключевые слова», которые отличают документ от остальных.

TF-IDF пытается решить эту проблему, применяя коэффициент масштабирования IDF к частоте терминов, при этом весь термин является произведением:

  • Частота термина: показывает, сколько раз это слово появляется в документе. Обычной мерой веса является необработанное количество терминов (t)/сумма всех терминов в документе (d).
  • Частота обратного документа: измеряет, сколько информации предоставляет слово. Это логарифмически масштабированная обратная доля документов, содержащих это слово. Таким образом, если слово появляется во многих других документах, оно получит низкий балл, если это редкое слово, оно получит высокий балл.

Косинус сходства

Одним из ограничений с пакетом слов и TF-IDF является то, что по мере увеличения размера документа количество слов, используемых в документах, будет увеличиваться, а это означает, что более вероятно, что два документа будут отображаться как похожие, даже если они говорят о разных темах.

Косинусное подобие может быть использовано для решения этой проблемы. Он построен на основе пакета слов или TF-IDF, поскольку ему необходимо сначала преобразовать предложения в векторы (что делает пакет слов или TF-IDF). Затем он может измерить, насколько похожи документы, измерив косинус угла между двумя векторами, спроецированными в многомерном пространстве. Чем меньше угол, тем выше косинусное сходство.

Косинусное сходство более выгодно, потому что даже если два похожих документа находятся далеко друг от друга на евклидово расстояние из-за разного размера документа, они все равно могут быть ориентированы ближе друг к другу в векторном пространстве, указывая на то, что они содержат одинаковое содержимое.

На выходе сходство косинусов дает попарное сравнение двух документов, которое будет выглядеть примерно так, как показано ниже.

ОграниченияВсе описанные выше методы преобразования текста включают в себя частоту появления слов, но не учитывают контекст или семантику.

Тематические модели

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

Существуют различные методы тематического моделирования, одним из которых является LDA. LDA (Скрытое распределение Дирихле) – это неконтролируемая модель машинного обучения, которая принимает документы в качестве входных данных и находит K тем из N документов в качестве выходных (примечание K определяется пользователем). Он использует генеративную вероятностную модель, в которой каждый документ состоит из комбинации нескольких тем, и каждый термин или слово может быть отнесен к определенной теме.

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

Когда LDA применяется к матрице терминов документа (например, TF-IDF или функциональной матрице Bag of Words), она разбивается на два основных компонента.

  • Матрица темы документа, которая будет матрицей признаков, которую мы будем использовать для целей разработки признаков.
  • Матрица тем и терминов, которая помогает нам рассматривать и интерпретировать темы в корпусе.

Чтобы реализовать LDA в Python, вы можете использовать пакет под названием gensim. Как понять, что вы построили хорошую модель? Как правило, если темы являются интерпретируемыми, уникальными, поскольку в разных темах будут разные слова, и исчерпывающими, поскольку все ваши документы хорошо представлены по темам. Тогда, похоже, у вас есть хорошая модель.

Примеры использования:

Пакет слов и TF-IDF можно использовать для преобразования данных в текстовые данные перед применением модели классификации.

Косинус, также являющийся мерой «расстояния», очевидно, полезен в кластерном анализе, но его также можно использовать в модели классификации, такой как k-ближайших соседей.

Тематические модели часто используются в кластерном анализе для группировки документов с похожими темами.

Ссылки

[1] Подобие косинусов — Понимание математики и того, как она работает

[2] Традиционные методы работы с текстовыми данными

[3] Обзор извлечения тем в Python с помощью LDA