Компонент преобразования слов в векторы

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

  • Применение различных моделей Word2Vec (Word2Vec, FastText, предварительно обученная модель GloVe) к блоку текстов, указанному в качестве входных данных.
  • Создание словаря с внедрением слов.

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

Дополнительные сведения о преобразовании слов в векторы

Преобразование слов в векторы или векторизация слов — это процесс обработки естественного языка. В процессе используются языковые модели для сопоставления слов с пространством векторов. Векторное пространство представляет каждое слово с помощью вещественного вектора. Этот метод также позволяет словам с аналогичными значениями иметь похожие представления.

Используйте внедрения слов в качестве начальных входных данных для последующих задач NLP, таких как классификация текста, анализ тональности.

Существует множество различных технологий внедрения слов, но в этом компоненте реализованы три широко используемых метода. Два из них, Word2Vec и FastText — это модели онлайн-обучения. Третий — это предварительно обученная модель, glove-wiki-gigaword-100.

Интерактивные обучающие модели обучены на основе входных данных. Предварительно обученные модели обрабатываются автономно на более крупном блоке текста (например, Википедии, Google News), который обычно содержит около 100 000 000 000 слов. Внедрение слов остается постоянным во время векторизации. Предварительно обученные модели слов предоставляют такие преимущества, как сокращенное время обучения, более качественно закодированные векторы слов и повышенная общая производительность.

Ниже приведены некоторые сведения об этих методах.

Настройка преобразования слов в векторы

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

  1. Добавьте компонент Преобразование слов в векторы в конвейер.

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

  3. Для параметра Целевой столбец выберите только один столбец, содержащий текст для обработки.

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

  4. Для стратегии Word2Vec выберите одну из моделей: предварительно заданная на английском языке модель GloVe, Gensim Word2Vec и Gensim FastText.

  5. Если стратегия Word2Vec — Gensim Word2Vec или Gensim FastText:

    • Для алгоритма обучения Word2Vec выберите одну из таких моделей: Skip_gram и CBOW. Их различие описано в исходном документе (PDF).

      По умолчанию используется метод Skip_gram.

    • Для параметра Длина внедрения слова укажите размерность векторов слов. Этот параметр соответствует параметру size в Gensim.

      Размер внедрения по умолчанию — 100.

    • Для параметра Размер окна контекста укажите максимальное расстояние между прогнозируемым словом и текущим словом. Этот параметр соответствует параметру window в Gensim.

      Размер окна по умолчанию равен 5.

    • Для параметра Число эпох укажите количество эпох (итераций) в совокупности. Соответствует параметру iter в Gensim.

      Количество эпох по умолчанию: 5.

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

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

    Размер словаря по умолчанию — 10 000.

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

    Значение по умолчанию — 5.

  8. Отправьте конвейер.

Примеры

Компонент выводит один результат:

  • Словарь с внедрениями. Содержит созданный словарь, а также внедрение каждого слова, одно измерение занимает один столбец. Одно измерение занимает один столбец.

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

Исходный набор данных

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

текст
nasdaq 100 component s p 500 component foundation founder location city apple campus 1 infinite loop street infinite loop cupertino california cupertino california location country united states...
br nasdaq 100 nasdaq 100 component br s p 500 s p 500 component industry computer software foundation br founder charles geschke br john warnock location adobe systems...
s p 500 s p 500 component industry automotive industry automotive predecessor general motors corporation 1908 2009 successor...
s p 500 s p 500 component industry conglomerate company conglomerate foundation founder location city fairfield connecticut fairfield connecticut location country usa area...
br s p 500 s p 500 component foundation 1903 founder william s harley br arthur davidson harley davidson founder arthur davidson br walter davidson br william a davidson location...

Выходной словарь с внедрениями

В следующей таблице приводятся выходные данные этого компонента. В качестве входных данных использовался набор данных SP 500 из Википедии. В крайнем левом столбце указывается словарь. Его вектор внедрения представлен значениями оставшихся столбцов в той же строке.

Словарь Размерность внедрения 0 Размерность внедрения 1 Размерность внедрения 2 Размерность внедрения 3 Размерность внедрения 4 Размерность внедрения 5 ... Размерность внедрения 99
nasdaq –0,375865 0,609234 0,812797 –0,002236 0,319071 0,591986 ... 0,364276
Компонент 0,081302 0,40001 0,121803 0,108181 0,043651 –0,091452 ... 0,636587
s –0,34355 –0,037092 –0,012167 0,151542 0,601019 0,084501 ... 0,149419
p –0,133407 0,073244 0,170396 0,326706 0,213463 –0,700355 ... 0,530901
foundation –0,166819 0,10883 –0,07933 –0,073753 0,262137 0,045725 ... 0,27487
founder –0,297408 0,493067 0,316709 –0,031651 0,455416 –0,284208 ... 0,22798
location –0,375213 0,461229 0,310698 0,213465 0,200092 0,314288 ... 0,14228
city –0,460828 0,505516 –0,074294 –0,00639 0,116545 0,494368 ... –0,2403
apple 0,05779 0,672657 0,597267 –0,898889 0,099901 0,11833 ... 0,4636
campus –0,281835 0,29312 0,106966 –0,031385 0,100777 –0,061452 ... 0,05978
infinite –0,263074 0,245753 0,07058 –0,164666 0,162857 –0,027345 ... –0,0525
loop –0,391421 0,52366 0,141503 –0,105423 0,084503 –0,018424 ... –0,0521

В этом примере была использована модель Gensim Word2Vec по умолчанию для стратегии Word2Vec, Алгоритм обучения — это Skip-gram. Длина внедрения слов составляет 100, поэтому у нас есть 100 столбцов.

Технические примечания

В этом разделе содержатся советы и ответы на часто задаваемые вопросы.

  • Отличие модели интерактивного обучения от предварительно обученной модели

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

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

  • Размер внедрения:

    Как правило, длина внедрения слова равна нескольким сотням. Например, 100, 200, 300. Небольшой размер внедрения означает небольшое векторное пространство, которое может привести к конфликтам внедрения слов.

    Длина внедрения слов исправлена для предварительно обученных моделей. В этом примере размер внедрения glove-wiki-gigaword-100 равен 100.

Дальнейшие действия

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

Список специфических ошибок для компонентов конструктора см. в статье с кодами ошибок Машинного обучения.