Разное

В ворде вектор: Как поставить вектор в Ворде

Справка по компоненту преобразования слов в векторы — Azure Machine Learning

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 5 мин

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

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

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

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

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

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

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

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

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

  • Word2Vec — одна из самых популярных методик для обучения внедрению слов с помощью неглубокой нейронной сети. Теория обсуждается в этом документе, который можно скачать в формате PDF-файла: Эффективная оценка представлений слов в пространстве векторов. Реализация в этом компоненте выполнена с использованием библиотеки Gensim для Word2Vec.

  • Теория FastText объясняется в этом документе, который можно скачать в формате PDF-файла: Наполнение векторов слов информацией о подсловах. Реализация в этом компоненте выполнена с использованием библиотеки Gensim для FastText.

  • Предварительно обученная модель GloVe — это glove-wiki-gigaword-100. Это коллекция предварительно обученных векторов, полученных на основе блока текстов Википедии, который содержит 5 600 000 000 токенов и 400 000 слов без учета регистра. Можно скачать в формате PDF-файла: GloVe: Global Vectors для представления слов.

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

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

  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,3758650,6092340,812797–0,0022360,3190710,591986. ..0,364276
Компонент0,0813020,400010,1218030,1081810,043651–0,0914520,636587
s–0,34355–0,037092–0,0121670,1515420,6010190,084501 0,149419
p–0,1334070,0732440,1703960,3267060,213463–0,7003550,530901
foundation–0,1668190,10883–0,07933–0,0737530,2621370,0457250,27487
founder–0,2974080,4930670,316709–0,0316510,455416–0,2842080,22798
location–0,3752130,4612290,3106980,2134650,2000920,3142880,14228
city–0,4608280,505516–0,074294–0,006390,1165450,494368. ..–0,2403
apple0,057790,6726570,597267–0,8988890,0999010,118330,4636
campus–0,2818350,293120,106966–0,0313850,100777–0,0614520,05978
infinite–0,2630740,2457530,07058–0,1646660,162857–0,027345–0,0525
loop–0,3914210,523660,141503–0,1054230,084503–0,018424–0,0521

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

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

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

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

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

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

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

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

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

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

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

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

azure-docs.ru-ru/convert-word-to-vector.md at master · MicrosoftDocs/azure-docs.ru-ru · GitHub

titletitleSuffixdescriptionservicesms.servicems.subservicems.topicauthorms.authorms.datems.openlocfilehashms.sourcegitcommitms. translationtypems.contentlocalems.lasthandoffms.locfileid

Преобразовать слово в вектор: ссылка на модуль

Azure Machine Learning

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

machine-learning

machine-learning

core

reference

likebupt

keli19

05/19/2020

5fad3e4862b0c40c9edd00a5b9d47b245e529396

772eb9c6684dd4864e0ba507945a83e48b8c16f0

MT

ru-RU

03/19/2021

91536738

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

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

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

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

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

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

В разных технологиях внедрения слов в этом модуле реализовано три широко используемых метода. Две, Word2Vec и Фасттекст — это модели оперативного обучения. Вторая — это предварительно обученная модель специализированный-wiki-гигаворд-100.

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

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

  • Word2Vec — одна из самых популярных методик для изучения внедрения слов с помощью неполной нейронной сети. Теория обсуждается в этом документе, который можно скачать в виде PDF-файла: эффективная оценка представлений Word в пространстве векторов. Реализация в этом модуле основана на библиотеке женсим для Word2Vec.

  • Теория Фасттекст объясняется в этом документе, который можно скачать в формате PDF: расширяя векторы слов с информацией о подсловах. Реализация в этом модуле основана на библиотеке женсим для фасттекст.

  • Предварительно обученная модель специализированный — специализированный-wiki-гигаворд-100. Это коллекция предварительно обученных векторов, основанных на тексте Википедии совокупности, который содержит маркеры 5 600 000 000 и 400 000 нерегистровых слов. Доступна загрузка PDF-файла: специализированный: глобальные векторы для представления Word.

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

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

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

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

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

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

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

  5. Если стратегия Word2VecЖенсим Word2Vec или женсим фасттекст:

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

      Метод по умолчанию — Skip_gram.

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

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

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

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

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

      Номер эпохи по умолчанию — 5.

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

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

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

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

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

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

Примеры

Выходные данные модуля:

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

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

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

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

Текст
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,3758650,6092340,812797–0,0022360,3190710,5919860,364276
Компонент0,0813020,400010,1218030,1081810,043651–0,0914520,636587
s–0,34355–0,037092–0,0121670,1515420,6010190,0845010,149419
p–0,1334070,0732440,1703960,3267060,213463–0,7003550,530901
foundation–0,1668190,10883–0,07933–0,0737530,2621370,045725. ..0,27487
founder–0,2974080,4930670,316709–0,0316510,455416–0,2842080,22798
location–0,3752130,4612290,3106980,2134650,2000920,3142880,14228
city–0,4608280,505516–0,074294–0,006390,1165450,494368–0,2403
apple0,057790,6726570,597267–0,8988890,0999010,118330,4636
campus–0,2818350,293120,106966–0,0313850,100777–0,0614520,05978
infinite–0,2630740,2457530,07058–0,1646660,162857–0,027345–0,0525
loop–0,3914210,523660,141503–0,1054230,084503–0,018424. ..–0,0521

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

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

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

  • Разница между интерактивным обучением и предварительно обученной моделью:

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

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

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

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

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

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

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

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

векторов слов и значений слов. Перехватывают ли векторы слов значение? Это… | by Курош Ализаде

Что вообще значит смысл, понимаете? Фото Ростислава Савчина на Unsplash

Эта статья призвана ответить на простой вопрос: действительно ли векторы слов отражают значение слов?

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

Вектор слова — это попытка математически представить значение слова. По сути, компьютер просматривает некоторый текст (в идеале много текста) и вычисляет, как часто слова появляются рядом друг с другом. Эти частоты представлены числами. Таким образом, если слово «хороший» всегда появляется рядом со словом «друг», то часть вектора слов для «хорошего» будет отражать эту связь. Данное слово будет иметь огромное количество таких значений, обычно исчисляемых сотнями, а иногда и тысячами.

Когда у вас есть этот набор чисел для слова, вы можете сравнивать векторы разных слов. Например, вы можете сравнить разные векторы для слов «банан», «киви» и «дождевое облако». Поскольку векторы являются математическими объектами, вы можете рассчитать числовое сходство разных векторов. А поскольку «банан» и «киви» используются во многих похожих контекстах и ​​не используются в контекстах, где появляется «дождевое облако», их векторы будут ближе друг к другу и дальше от вектора для «дождевого облака».

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

Но может ли набор чисел быть всем, что есть в значении слова? Другими словами…

На уровне фактического кода, используемого для генерации векторов слов, то, что мы называем словом, является просто строкой — набором символов, не имеющим особого репрезентативного содержания, кроме как для нас, людей. Цель векторов слов — смоделировать репрезентативное содержание, которое мы, люди, присвоили этой строке, чтобы она могла стать словом не только для нас, но и для компьютера. Другими словами, мы пытаемся научить компьютер тому, что означает слово «банан».

Существует множество различных теорий значения. Здесь я хочу сосредоточиться на конкретном, который можно использовать для поддержки идеи о том, что векторы слов на самом деле представляют значения. Это точка зрения, выдвинутая философом Людвигом Витгенштейном. В своей книге Philosophical Investigations, Витгенштейн предлагает, чтобы мы понимали значение слова как не что иное, как то, как это слово используется. Мы можем назвать это тезисом «смысл-это-использование».

Лицо человека со своей собственной теорией значения. Взято из Викисклада.

Это может показаться немного странным или просто очевидным, поэтому давайте сравним это с другими идеями, чтобы понять, почему концепция Витгенштейна была чем-то вроде прорыва. Прежде чем вы прочтете это, если бы кто-то спросил вас, что означает слово, что бы вы ответили? Может быть, вы бы сказали, что это то, что есть в словаре. Или, может быть, вы бы сказали, что это то, что означает это слово. Что означает «банан»? Имеется в виду этот буквальный физический объект — банан.

У этих перспектив есть некоторые серьезные проблемы. В конце концов, словарь не создает значения, он просто записывает, что слова уже означали; люди имели в виду вещи своими словами задолго до появления первого словаря. И если значение слова — это то, что оно обозначает, то как какой-то случайный набор звуков вообще может обозначать что-либо? Почему «банан» означает физический банан, а «торт» означает торт? В звуках нет ничего особенного, что заставляло бы их указывать то в одну, то в другую сторону.

Витгенштейновская идея значения как употребления обходит обе эти проблемы. Смысл — это не какая-то эфирная связь между звуком и объектом и не какой-то великий план, переданный словарем Вебстера; это просто вопрос социальной условности и повседневного использования. Если вы попросите у меня кофе, сказав «bangle bangle bongle», а затем я принесу вам кофе, что ж, тогда «bangle bangle bongle» означает «пожалуйста, принесите мне кофе». Вот и все.

Возможно, теперь у вас есть некоторое представление о том, почему эта теория значения более дружелюбна к векторам слов, чем другие. Если бы смысл заключался в какой-то волшебной связи между звуками и объектами, то слово «вектор» не имело бы никакой надежды когда-либо ее уловить. Независимо от того, сколько текстов вы просматриваете, вы никогда не найдете эту ссылку.

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

Конечно, у теории Витгенштейна есть свои проблемы. В частности, обратите внимание, что, по его мнению, слова — это всего лишь инструменты для навигации в нашем социально обусловленном мире. Это означает, что они не обязательно представляют что-то вне себя, что может показаться нелогичным. Но, возможно, на самом деле не имеет значения, отражает ли вектор слова значение слова; Вы могли бы сказать, что важно лишь то, можем ли мы заставить компьютер правильно использовать слово или делать точные прогнозы.

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

Знакомство с векторами Word — DZone

Векторы Word

Векторы Word представляют собой значительный шаг вперед в улучшении нашей способности анализировать отношения между словами, предложениями и документами. При этом они совершенствуют технологии, предоставляя машинам гораздо больше информации о словах, чем это было возможно ранее при использовании традиционных представлений слов. Именно векторы слов делают возможными такие технологии, как распознавание речи и машинный перевод. Есть много отличных объяснений векторов слов, но в этом я хочу сделать концепцию доступной для людей, которые не очень хорошо знакомы с обработкой естественного языка (NLP).

Что такое векторы слов?

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

Традиционные подходы к НЛП, такие как однократное кодирование и модели мешка слов (т. е. использование фиктивных переменных для представления наличия или отсутствия слова в наблюдении, т. е. предложения), хотя и полезны для некоторого машинного обучения ( ML) не собирают информацию о значении или контексте слова. Это означает, что потенциальные отношения, такие как контекстуальная близость, не фиксируются между наборами слов. Например, однократное кодирование не может зафиксировать простые отношения, такие как определение того, что слова «собака» и «кошка» относятся к животным, которые часто обсуждаются в контексте домашних животных. Такие кодировки часто обеспечивают достаточную основу для простых задач НЛП (например, классификаторов спама в электронной почте), но не обладают достаточной сложностью для более сложных задач, таких как перевод и распознавание речи. По сути, традиционные подходы к НЛП, такие как однократное кодирование, не фиксируют синтаксические (структурные) и семантические (значащие) отношения между наборами слов и, следовательно, представляют язык очень наивным образом.

Напротив, векторы слов представляют слова как многомерные непрерывные числа с плавающей запятой, где семантически подобные слова отображаются в ближайших точках геометрического пространства. Проще говоря, вектор слов представляет собой ряд действительных чисел (в отличие от фиктивных чисел), где каждая точка отражает измерение значения слова и где семантически схожие слова имеют аналогичные векторы. Это означает, что такие слова, как колесо и двигатель , должны иметь вектор слов, аналогичный слову 9.0011 автомобиль (из-за схожести их значений), тогда как слово банан должно быть довольно далеким. Иными словами, слова, которые используются в подобном контексте, будут отображаться в ближайшем векторном пространстве (ниже мы рассмотрим, как создаются эти векторы слов). Прелесть представления слов в виде векторов заключается в том, что они поддаются математическим операторам. Например, мы можем складывать и вычитать векторы — канонический пример здесь показывает, что, используя векторы слов, мы можем определить, что:0003

Другими словами, мы можем вычесть одно значение из вектора слова для короля (то есть мужественность), добавить другое значение (женственность) и показать, что этот новый вектор слова (король — мужчина + женщина) наиболее точно соответствует вектору слова для королевы.

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

Упрощенное представление векторов слов

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

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

Мы создаем список слов, применяем синтаксический анализатор spaCy, извлекаем вектор для каждого слова, складываем их вместе, а затем извлекаем два основных компонента для целей визуализации.

 импортировать numpy как np
импортировать просторный
из sklearn. decomposition импортировать PCA
nlp = spacy.load("en")
животные = "собака кошка хомяк лев тигр слон гепард обезьяна горилла антилопа кролик мышь крыса зоопарк домашний питомец пушистый дикий одомашненный"
animal_tokens = nlp (животные)
animal_vectors = np.vstack([word.vector для слова в animal_tokens, если word.has_vector])
PCA = PCA (n_components = 2)
animal_vecs_transformed = pca.fit_transform (животные_векторы)
animal_vecs_transformed = np.c_[animals.split(), animal_vecs_transformed] 

Здесь мы просто извлекаем векторы для разных животных и слова, которые можно использовать для описания некоторых из них. Как упоминалось в начале, векторы слов невероятно эффективны, потому что они позволяют нам (и машинам) выявлять сходства между разными словами, представляя их в непрерывном векторном пространстве. Здесь вы можете видеть, что векторы для таких животных, как «лев», «тигр», «гепард» и «слон», очень близки друг к другу. Вероятно, это связано с тем, что они часто обсуждаются в схожих контекстах; например, эти животные большие, дикие и потенциально опасные — действительно, описательное слово «дикий» очень близко соответствует этой группе животных.

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

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

Откуда берутся векторы слов?

Отличный вопрос на данный момент: Откуда взялись эти размеры и вес?! Существует два распространенных способа генерации векторов слов:

  1. Подсчет совпадений слова/контекста
  2. Предсказания контекста заданного слова (модели нейронных сетей с пропуском граммы, т. е. word2vec)

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

Оба подхода к созданию векторов слов основаны на гипотезе распределения Ферта (1957) , которая гласит:

«Вы узнаете слово по компании, которую оно держит».

Иными словами, слов, которые имеют схожий контекст, имеют схожие значения . Контекст слова в практическом смысле относится к окружающему его слову (словам), а векторы слов (обычно) генерируются путем прогнозирования вероятности контекста для данного слова. Иными словами, веса, составляющие вектор слов, изучаются путем предсказания вероятности того, что другие слова контекстуально близки к данному слову. Это похоже на попытку заполнить пробелы вокруг заданного входного слова. Например, при заданной входной последовательности «Пушистая собака залаяла, преследуя кошку», контекст с двумя окнами (два слова до и после ключевого слова) для слов «собака» и «лаял» будет выглядеть следующим образом:

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

  1. Глубокое обучение, НЛП и представления
  2. Удивительная сила словесных векторов
  3. Учебное пособие по Word2Vec: модель Skip-Gram

Однако полезно коснуться работы модели word2vec, учитывая ее популярность и полезность. Модель word2vec — это просто нейронная сеть с одним скрытым слоем, предназначенная для восстановления контекста слов путем оценки вероятности того, что слово «близко» к другому слову, заданному в качестве входных данных.

Модель обучена на пары слов, контекст для каждого слова в корпусе, то есть:

  • (СОБАКА, СОБАКА) (СОБАКА), ПУШИСТЫЙ (СОБАКА, ЛАЯ) (СОБАКА, АС)

Обратите внимание, что технически это контролируемый процесс обучения, но вам не нужны маркированные данные — метки (цели/зависимые переменные) генерируются из слов, которые формируют контекст ключевого слова. Таким образом, с помощью оконной функции модель изучает контекст, в котором используются слова. В этом простом примере модель узнает, что слова «пушистый» и «лай» используются в контексте (определяемом длиной окна) слова «собака».

Одна из удивительных особенностей векторов слов, созданных моделями word2vec, заключается в том, что они являются побочными эффектами задачи прогнозирования, а не ее результатом. Другими словами, вектор слов не предсказывается (предсказываются вероятности контекста), вектор слов представляет собой изученное представление входных данных, которое используется в задаче предсказания, т. Вектор слова — это попытка модели изучить хорошее числовое представление слова, чтобы минимизировать потери (ошибки) его предсказаний. По мере итерации модель регулирует веса своих нейронов, пытаясь свести к минимуму ошибку своих прогнозов, и при этом постепенно уточняет свое представление слова. При этом «значение» слова встраивается в вес, усвоенный каждым нейроном в скрытом слое сети.

Модель word2vec, таким образом, принимает в качестве входных данных одно слово (представленное как однократное кодирование среди всех слов в корпусе), и модель пытается предсказать вероятность того, что случайно выбранное слово в корпусе находится в соседней позиции к входному слову. Это означает, что для каждого входного слова существует n выходных вероятностей, где n равно общему размеру корпуса. Магия здесь в том, что процесс обучения включает только контекст слова, а не все слова в корпусе. Это означает, что в нашем простом примере, приведенном выше, при вводе слова «собака» слово «лает» будет иметь более высокую оценку вероятности, чем слово «кошка», потому что оно ближе по контексту, т. е. выучивается в процессе обучения. Иными словами, модель пытается предсказать вероятность того, что другие слова в корпусе принадлежат контексту входного слова. Следовательно, учитывая приведенное выше предложение («Пушистая собака залаяла, преследуя кошку»)   в качестве входных данных запуск модели будет выглядеть следующим образом:

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

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

Добавить комментарий

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