В эту эпоху современных вычислений сегодня доступно огромное количество данных, и они продолжают увеличиваться каждую секунду с помощью различных средств, таких как «комментарии в Facebook», «твиты в Twitter», «чаты в WhatsApp», «электронные письма», «блоги». , «Поиск в Google» и многие другие способы, о которых вы можете подумать.

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

Оглавление

  1. Предпосылки
  2. Различные формы данных
  3. Разные типы данных
  4. Необходимость преобразования данных в числовые данные / вектор
  5. Методы встраивания для преобразования данных в числовые данные / вектор
    i. Мешок слов (BoWs)
    ii. Срок действия документа с инвертированной частотой (TF-IDF)
    iii. Word2Vec
    iv. Doc2Vec
  6. "Резюме"
  7. "Использованная литература"

Предпосылки

  1. Основы математики
  2. Базовые знания функций машинного обучения.

Различные формы данных

Данные могут существовать в любой форме: текст, аудио, видео и изображения.

Различные типы данных

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

  1. Числовые данные
  2. Категориальные данные
  3. Данные временных рядов
  4. Текстовые данные.

Позвольте мне кратко рассказать об этих типах данных:

  1. Числовые данные или Количественные данные. Любая форма измеримых данных, таких как ваш рост, вес или стоимость вашего мобильного телефона.
    i. Непрерывный: числовые данные, которые могут принимать любые значения в диапазоне, например рост, вес, температура и т. д.
    ii. Дискретный: числовые данные, которые могут принимать только различные значения, такие как количество сотрудников / студентов, проданных единиц и т. д.
  2. Категориальные данные: любые категории, которые можно подсчитать, например пол, город, штат, страна и т. д.
    i. Номинальный: категориальные данные, которые можно подсчитать, но не упорядочить, например пол, цвет волос, марку мобильного телефона и т. д.
    ii. Порядковый: категориальные данные, которые можно как подсчитывать, так и упорядочивать, например рейтинги фильмов IMDB (1–10), рейтинги отелей и т. д.
  3. Данные временных рядов: любые данные, состоящие из точек данных, проиндексированных в определенные моменты времени, таких как цены на акции, ЭКГ, погодные условия и т. д.
  4. Текстовые данные: текстовые данные - это простые слова, предложения или абзацы, которые могут дать некоторое представление, например обзоры продуктов, комментарии Facebook и т. д.

Необходимость преобразования данных в числовые данные / вектор

Многие модели машин требуют, чтобы данные были представлены в числовом формате.

Вам интересно? «Почему нам нужно преобразовывать любые данные в числовые, прежде чем вводить их в модель машинного обучения?»

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

Числовые данные уже имеют числа и не нуждаются в преобразовании.
В этой статье мы в первую очередь сосредоточимся на текстовых данных для преобразования в числовой вектор.

Встраивание

Процесс преобразования текстовых данных в вектор называется встраиванием.

Прежде чем мы рассмотрим различные методы преобразования текста в числовой вектор, давайте разберемся с терминологией:

  1. Вектор
  2. Документ
  3. Корпус
  4. Токены
  5. Словарь

Вектор

В физике вектор - это объект, у которого есть величина и направление. Например, скорость автомобиля.

В информатике вектор - это не что иное, как набор из одного или нескольких чисел. Каждое число в векторе представляет величину вектора в определенном измерении.
Например, вектор в трехмерном пространстве может быть представлен тремя числами как v = [2, 1, 3]:

Документ

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

Корпус

Корпус - это собрание документов.
Документы внутри корпуса связаны друг с другом. Например, корпус может включать все обзоры данного продукта за месяц, все обзоры фильмов на платформе IMDB или все комментарии пользователя Facebook.

Для информации: множественное число от Corpus называется Corpora.

Жетоны

Токены - это строительные блоки естественного языка. Это относится к единицам, на которые разбивается текст. Процесс получения токенов называется Токенизация.

Существуют разные типы токенизации:

  1. Токенизация слов: токенизация, при которой текст разделяется на основе слов в нем.
  2. Токенизация символов: токенизация, при которой текст разделяется на основе символов в нем.
    В этой статье мы не будем вдаваться в подробности токенизации символов.
  3. n-граммовая токенизация: токенизация выполняется путем разделения текста на основе n последовательных слов в нем.

Словарь

Словарь - это набор всех уникальных слов / токенов в Корпусе.

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

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

Методы встраивания для преобразования данных в числовые данные / вектор

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

Ниже приведены некоторые методы встраивания текста:

  1. Мешок слов (BoWs)
    i. Униграммы
    ii. Биграммы
    iii. Трёхграммы
    iv. н-граммовые яйца
  2. Частота документа с инвертированной последовательностью термина (TF-IDF)
  3. Word2Vec
    i. Среднее Word2Vec
    ii. TF-IDF Word2Vec
  4. Doc2Vec

Мешок слов (BoW)

Модель мешка слов, или сокращенно BoW, - это очень простой и гибкий метод представления текста в виде числового вектора.
Он включает в себя две вещи:

  1. Словарь известных слов.
  2. Мера наличия известных слов.

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

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

Чтобы представить документ в виде вектора, нам нужно отметить количество вхождений (частоту) каждого из слов в документе по шарикам словарного запаса, как показано ниже:

Из приведенной выше таблицы мы можем представить документы в виде вектора, записав набор чисел (по строкам) как:
Вектор документа 1: [1, 0, 0, 0, 0, 1, 0, 1, 1]
Вектор документа 2: [0, 0, 0, 0, 1, 1, 1, 0, 2]
Вектор документа 3: [1, 1, 0, 1, 0, 1, 0, 1, 0]
Вектор документа 4: [1, 0, 1, 0, 0, 0, 0, 1, 1]
Здесь мы пишем количество появления слов для каждого документа.

Бинарный мешок слов

Вместо того, чтобы использовать количество вхождений, мы также можем использовать либо 1, либо 0, чтобы указать, присутствует ли слово в документе или нет.
Если мы используем 1 или 0, чтобы просто проверить, встречается ли слово или нет, эта реализация BoW называется двоичный пакет слов.

Пакетик н-грамм

Мешок n-граммов - это продолжение Мешка слов. В n-граммовых BoW мы берем n последовательных слов в качестве токенов. То, что мы видели в приведенном выше примере, - это униграммы BoW.

  1. Uni-gram или 1-gram BoW: токены состоят из одного слова. Пример, который мы обсуждали выше, - это монограмма BoW.
  2. Би-граммы или 2-граммы BoW: жетоны состоят из двух последовательных слов. Например, для Документа 1 (Вы создаете свою жизнь) токенами будут {"вы создаете", "создаете свою", "свою жизнь"}.
    Точно так же Корпус будет содержать токены, имеющие два разных последовательных слова.
  3. Трехграммовый или 3-граммовый BoW: токены состоят из трех последовательных слов.
    Точно так же это понятие может быть расширено для создания n-граммовых BoW.

Давайте посмотрим на числовые векторы, используя биграммы BoW:

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

Основываясь на приведенной выше таблице, мы можем представить документы как вектор, записав набор чисел (по строкам) как:
Вектор документа 1: [1, 1, 1, 0, 0, 0, 0 , 0, 0, 0]
Вектор документа 2: [0, 0, 1, 1, 1, 1, 0, 0, 0, 0]
Вектор документа 3: [1, 0 , 0, 0, 0, 0, 1, 1, 1, 0]
Вектор документа 4: [1, 1, 0, 0, 0, 0, 0, 0, 0, 1]

Точно так же мы можем сделать триграммы BoW и ngram BoW.

Пакет n-грамм может быть более информативным, чем пакет униграмм, потому что он улавливает больше контекста вокруг каждого слова (например, «создать свою жизнь» более информативно, чем просто «жизнь»).

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

Недостатки использования мешка слов

  1. BoW зависят от количества слов и отбрасывают семантическое значение Документов.
  2. Размер словарного запаса увеличится с включением новых документов.
  3. Векторы будут содержать слишком много нулей для документа, что приведет к разреженной матрице. Следовательно, он потребляет больше памяти для меньшего количества информации.
  4. Никакой информации ни о грамматике Документов, ни о порядке слов в тексте не сохраняется.

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

TF-IDF, сокращение от Term Frequency-Inverse Document Frequency, определяется в Википедии как числовая статистика, предназначенная для отражения того, насколько важно слово для документа в коллекции или корпусе.

Это еще один метод преобразования текста в числовой вектор.

Прежде чем мы поймем, как работает TF-IDF, давайте разберемся с отдельными терминами TF и ​​IDF по отдельности.

Частота сроков (TF)

Термин Частота слова - это мера частоты встречаемости слова в документе.
TF определяется по формуле:

Поскольку Term Frequency находится между 0 и 1, это можно интерпретировать как Вероятность.
Следовательно, TF можно также определить как:
i. Вероятность найти слово в документе.
ii. Вероятность того, как часто слово встречается в документе.

Обратная частота документов (IDF)

IDF - это показатель того, насколько важно слово.
IDF определяется по формуле:

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

В BoW мы создали векторы, заполнив размеры количеством вхождений слова.
В TF-IDF мы создали векторы, умножая частоту термина и Обратный документ Частота слова. См. Приведенную ниже таблицу, в которой используются значения слов TF-IDF:

Из приведенной выше таблицы мы можем представить документы в виде вектора, записав значения TF-IDF слов (по строкам) как:
Вектор документа 1: [0.03, 0.00, 0.00, 0.00, 0.00, 0,03, 0,00, 0,03, 0,03]
Вектор документа 2: [0,00, 0,00, 0,00, 0,00, 0,12, 0,02, 0,12, 0,00, 0,05]
Вектор документа 3: [0,02, 0,12, 0,00, 0,12, 0,00, 0,02, 0,00, 0,02, 0,00]
Вектор документа 4: [0,03, 0,00, 0,15, 0,00, 0,00, 0,00, 0,00, 0,03, 0,03]

В TF-IDF больше внимания уделяется словам, которые часто встречаются в документе, а также редким словам в корпусе.
Мы даже можем использовать только обратную частоту документа для генерации векторов в зависимости от проблемы .

Преимущество TF-IDF

Он содержит информацию как о более важных словах, так и о менее важных.

Недостаток TF-IDF

Как и BoW, TFIDF не учитывает семантическое значение.

Word2Vec

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

Work2Vec использует модель нейронной сети для изучения словесных ассоциаций из большого объема текста.
Мы не будем вдаваться в подробности того, как Word2Vec реализован под капотом, поскольку для этого потребуется другой набор расширенных концепций от Deep Учимся и отворачиваемся от цели этой статьи.
Для простоты мы рассматриваем ее как черный ящик для этой статьи.

С помощью Word2Vec слово преобразуется в числовой плотный вектор (не разреженный вектор, как получено в BoW и TF-IDF) с d-размерами, как правило, 50, 100, 200, 300 и т. Д.
Если два слова семантически похожи , то векторы этих слов ближе геометрически.
Например, если у нас есть 3 слова: вкусно, вкусно и бейсбол. После преобразования Word2Vec векторы для слов, а именно «вкусно» и «вкусно» будут близки в пространстве d-измерения, а вектор для слова «бейсбол» будет дальше.

Ключевые моменты Word2Vec

Если два слова семантически похожи, то их векторы будут ближе.
W2V сохраняет / удовлетворяет отношения между такими словами, как King :: Queen, Man :: Woman, Country :: Capital.

Мы можем напрямую использовать любую предварительно обученную модель Word2Vec. Например, мы можем использовать модель Google Word2Vec, обученную на данных Google Новостей, которая содержит 300-мерные векторы для 100 миллиардов слов.
Предварительно обученная модель - это не что иное, как файл, содержащий токены и связанные с ними векторы слов.

Как мы видели, Word2Vec преобразует слово в вектор, а не документ (предложение) в вектор.
Документ - это набор слов / предложений. Нам нужно преобразовать документ в вектор.
Мы можем преобразовать документ в вектор двумя способами:

  1. Среднее значение Word2Vec:
    В средстве Word2Vec мы берем средние значения Word2Vec всех слов в документе, чтобы получить вектор для документа.
    Это простой способ использовать концепция Word2Vec для построения векторов для текстов.
    Обычный Word2Vec работает неплохо, но не идеален.
  2. TF-IDF Word2Vec:
    Word2Vec, взвешенный по TF-IDF, представляет собой средневзвешенное значение слов, основанное на их значениях TF-IDF.

Формула для Word2Vec, взвешенного по TF-IDF, и Word2Vec, взвешенного по TF-IDF, определяется следующим образом:

Недостаток среднего Word2Vec

Поскольку у нас есть намерение преобразовать текст в числовой вектор, усреднение слов Word2Vec - очень наивный способ получить информацию о предложении.

Word2Vec, взвешенный по TF-IDF, лучше простого среднего Word2Vec, поскольку он выполняет взвешивание на основе важности слов.

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

Doc2Vec

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

Цель та же, что и у Word2Vec.
Так же, как и у предварительно обученных моделей Word2Vec, у нас есть предварительно обученные модели Doc2Vec, обученные на очень большом корпусе текстов, таких как Википедия или Новости Google.

Прелесть модели Doc2Vec в том, что она сокращает этап консолидации, как мы это делаем в модели Word2Vec.
Мы можем напрямую передать документ в модель Doc2Vec и получить его векторное представление.

Это гораздо более простой процесс для машинного обучения, чем Word2Vec.

Резюме

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

Можно также изучить некоторые из передовых методов встраивания, такие как Универсальный кодировщик предложений, Уровень встраивания в нейронные сети, BERT и т. Д.

Позвольте мне резюмировать различные техники, изученные с помощью интеллект-карты:

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