Word2vec

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Word2vec — набор моделей для анализа семантики естественных языков, представляющий собой технологию, которая основана на дистрибутивной семантике и векторном представлении слов. Этот инструмент был разработан группой исследователей Google в 2013 году. Работу над проектом возглавил Томаш Миколов (ныне работает в Facebook[1]).

Описание[править | править код]

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

Алгоритмы обучения[править | править код]

Для word2vec разработаны два основных алгоритма обучения: CBoW (англ. Continuous Bag of Words, «непрерывный мешок со словами», англ. bag — мультимножество) и Skip-gram. CBoW — архитектура, которая предсказывает текущее слово, исходя из окружающего его контекста. Архитектура типа Skip-gram действует иначе: она использует текущее слово, чтобы предугадывать окружающие его слова. Пользователь word2vec имеет возможность переключаться и выбирать между алгоритмами. Порядок слов контекста не оказывает влияния на результат ни в одном из этих алгоритмов.

Результаты[править | править код]

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

См. также[править | править код]

Примечания[править | править код]

  1. Tomas Mikolov - Google Scholar Citations. scholar.google.com. Дата обращения 9 февраля 2017.

Литература[править | править код]

Ссылки[править | править код]

Реализации на разных языках программирования