Как лучше всего классифицировать текстовые данные в машинном обучении? - PullRequest
1 голос
/ 07 мая 2020

Допустим, у меня есть набор данных, состоящий из столбца обзора с ровно 100 слов для каждого обзора, тогда мою модель будет легко обучить, поскольку я могу просто токенизировать каждое из 100 слов для каждого отзыва, а затем преобразовать его в числовое array, а затем передать его в последовательную модель с input_shape = (1,100). Но в реальном мире отзывы никогда не бывают одинакового размера. Если я использую такую ​​функцию, как CountVectorizer, то структура предложения не зарезервирована, и одна горячая кодировка может быть недостаточно эффективной. в обучаемый NN

1 Ответ

3 голосов
/ 07 мая 2020

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

  1. Для каждого слова в обзоре проверьте, существует ли вложение слова (другими словами , это слово произошло в большом обучающем корпусе), и если это так, добавьте его векторное представление к представлению обзора
  2. После того, как вы просуммировали векторные представления всех слов, вы вычисляете среднее вложение, разделив суммированный вектор обзора по количеству слов в документе, и это приводит к окончательному векторному представлению для этого документа
  3. Этот вектор теперь может быть загружен в обучаемую NN

Перед выполнением шагов 1-3, вы также можете применить дополнительные шаги предварительной обработки и удалить слова заполнения, такие как «и», «или», et c. поскольку они обычно не имеют значения, вы можете преобразовать слова в нижний регистр и применить другие стандартные методы обработки естественного языка (NLP), которые могут повлиять на векторное представление отзывов. Но ключевая идея состоит в том, чтобы суммировать векторы слов обзора и использовать его усредненный вектор в качестве представления обзора. При усреднении длина отзывов не имеет значения. Точно так же при встраивании слов размерность векторов слов фиксирована (100D, 200D, ...), поэтому вы можете поэкспериментировать с наиболее подходящей размерностью.

Обратите внимание, что существует множество различных моделей, которые вычисляют вложения слов, чтобы вы могли выбрать любое из них. Один, который хорошо интегрирован в Python, - это word2ve c. И самая современная модель, которая в настоящее время используется Google, называется BERT .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...