Разное

Модели слов: Советы учителя | Родителям на заметку

Содержание

Составить звуковую модель слов | Тренажёр (1 класс) на тему:

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Составь звуковые модели слов конь тень апрель письмо галька

Составь звуковые модели слов конь тень апрель письмо  галька

Урок 67. как выделить слог? - Русский язык - 1 класс

Конспект по предмету

«Русский язык» для «1» класса

Урок № 67 «Как выделить слог?»

Вопросы, рассматриваемые на уроке.

на уроке мы повторим какие бывают слоговые модели слова;

закрепим умение выделять слоги в словах;

сможем составлять слоговые модели слов

Глоссарий

Слог - это часть слова.

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

Литература

Основная

В. П. Канакина В. Г. Горецкий «Русский язык» 1 класс. Учебник для общеобразовательных организаций. Москва «Просвещение» 2014

Дополнительная

Справочное пособие по русскому языку. 1–2 классы. Узорова О.В., Нефедова Е.Л. – Москва: АСТ: Астрель, 2013. – 256 с.

Тренировочные примеры по русскому языку. Задания для повторения и закрепления. 1 класс. Кузнецова М.И. Москва, Издательство "Экзамен", 2014 – 32 с. (Серия "5000 задач")

Полный курс русского языка: все типы заданий, все виды упражнений, все правила. 1 класс. Узорова О.В., Нефёдова Е.А. – Москва: АСТ: Астрель; Владимир: ВКТ, 2012. – 190, [2]с.

Занимательный русский язык. 1 класс. Рабочая тетрадь. В 2 ч. Мищенкова Л.В. – М.: 2016 –Ч.1 – 80с., Ч.2 – 80с.

Язык родной, дружи со мной. А. Шибаев. – Санкт-Петербург, "Детгиз", 2014. – 127с.

Теоретический материал

Как составить слоговую модель слова?

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

красным цветом мы будем обозначать гласный звук

синим цветом - твердый согласный

зеленым - мягкий согласный

слияние слогов мы будем обозначать через черту

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

зеленым и красным - слияние мягкого согласного и гласного

Давайте составим слоговую модель слова мама

сначала поделим слово на слоги. в слове два гласных звука (мАмА), значит в слове два слога

определим слоги слияния

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

дальше выясним какие в слове согласные звуки

МММа - м в обоих случаях твердый согласный звук

поставим ударение. маааааааама ,ударение падает на первый слог

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

Давайте теперь составим слоговую модель слова АПТЕКА

сначала поделим слово на слоги. в слове три гласных звука (АптЕкА), значит в слове три слога

определим слоги слияния

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

дальше выясним какие в слове согласные звуки

ап - п твердый согласный

те - т мягкий согласный

ка - к твердый согласный

поставим ударение

аптееееека, ударение падает на второй слог

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

Резюме теоретической части

У каждого слова есть звуковая модель.

в звуковой модели звуки обозначаются определенными цветами:

красным цветом мы будем обозначать гласный звук

синим цветом - твердый согласный

зеленым - мягкий согласный

слияние слогов мы будем обозначать через черту

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

зеленым и красным - слияние мягкого согласного и гласного

Примеры заданий

1. Какое из слов подходит к данной звуковой модели?

щенок

поле

зима

Правильный ответ

зима

2. Отправьте слова в столбик с той слоговой моделью слова, которая им соответсвует

Нина корова пила собака зима копыто

Правильный ответ

Нина пила зима

корова собака копыто

RusVectōrēs: модели

Постоянный идентификатор Скачать Корпус Размер корпуса Объём словаря Частотный порог Тагсет Алгоритм Размерность вектора Размер окна SimLex965 Google Analogies Дата создания
geowac_lemmas_none_fasttextskipgram_300_5_2020 1.4 Гбайт GeoWAC 2.1 миллиарда слов 154 923 150 Нет fastText Skipgram (3..5-граммы) 300 5 0.37 0.69 Октябрь 2020
geowac_tokens_none_fasttextskipgram_300_5_2020 1.8 Гбайт GeoWAC 2.1 миллиарда слов 347 295 150 Нет fastText Skipgram (3..5-граммы) 300 5 0.33 0.58 Октябрь 2020
ruscorpora_upos_cbow_300_20_2019 462 Мбайт НКРЯ 270 миллионов слов 189 193 5 (потолок словаря 250К) Universal Tags Continuous Bag-of-Words 300 20 0.36 0.60 Январь 2019
ruwikiruscorpora_upos_skipgram_300_2_2019 608 Мбайт НКРЯ и Википедия за декабрь 2018 788 миллионов слов 248 978 5 (потолок словаря 250К) Universal Tags Continuous Skipgram 300 2 0.32 0.72 Январь 2019
tayga_upos_skipgram_300_2_2019 610 Мбайт Тайга почти 5 миллиардов слов 249 565 5 (потолок словаря 250К) Universal Tags Continuous Skipgram 300 2 0.42 0.58 Январь 2019
tayga_none_fasttextcbow_300_10_2019 2.6 Гбайт Тайга почти 5 миллиардов слов 192 415 5 (потолок словаря 250К) Нет fastText CBOW (3..5-граммы) 300 10 0.37 0.71 Январь 2019
news_upos_skipgram_300_5_2019 611 Мбайт Русскоязычные новости 2.6 миллиарда слов 249 318 5 (потолок словаря 250К) Universal Tags Continuous Skipgram 300 5 0.22 0.51 Январь 2019
araneum_none_fasttextcbow_300_5_2018 2.6 Гбайт Araneum около 10 миллиардов слов 195 782 400 Нет fastText CBOW (3..5-граммы) 300 5 0.35 0.73 Март 2018
ruscorpora_none_fasttextskipgram_300_2_2019 2.4 Гбайт НКРЯ 270 миллионов слов 164 996 5 (потолок словаря 250К) Нет fastText Skipgram (3..5-граммы) 300 2
0.39
0.63 Январь 2019
ruwikiruscorpora-func_upos_skipgram_300_5_2019 606 Мбайт НКРЯ и Википедия за декабрь 2018 (с функциональными словами) 788 миллионов слов 248 118 5 (потолок словаря 250К) Universal Tags Continuous Skipgram 300 5 0.32 0.71 Январь 2019
tayga-func_upos_skipgram_300_5_2019 611 Мбайт Тайга (с функциональными словами) почти 5 миллиардов слов 249 946 5 (потолок словаря 250К) Universal Tags Continuous Skipgram 300 5 0.41 0.57 Январь 2019
taiga_upos_skipgram_300_2_2018 331 Мбайт Тайга почти 5 миллиардов слов 237 255 200 Universal Tags Continuous Skipgram 300 2 0.41 0.53
Июнь 2018
ruscorpora_upos_skipgram_300_5_2018 191 Мбайт НКРЯ 250 миллионов слов 195 071 20 Universal Tags Continuous Skipgram 300 5 0.37 0.58 Январь 2018
ruwikiruscorpora_upos_skipgram_300_2_2018 376 Мбайт НКРЯ и  Википедия за декабрь 2017 600 миллионов слов 384 764 40 Universal Tags Continuous Skipgram 300 2 0.34 0.70 Январь 2018
news_upos_cbow_600_2_2018 547 Мбайт Русскоязычные новости,с сентября 2013 до ноября 2016 почти 5 миллиардов слов 289 191 200 Universal Tags Continuous Bag-of-Words 600 2 0.35 0.46 Январь 2018
araneum_upos_skipgram_300_2_2018 192 Мбайта Araneum
около 10 миллиардов слов
196 620 400 Universal Tags Continuous Skipgram 300 2 0.38 0.65 Январь 2018
araneum_none_fasttextskipgram_300_5_2018 2.5 Гбайт Araneum около 10 миллиардов слов 195 782 400 Нет fastText Skipgram (3-граммы) 300 5 0.36 0.71 Январь 2018
ruwikiruscorpora-nobigrams_upos_skipgram_300_5_2018 385 Мбайт НКРЯ и  Википедия за декабрь 2017 (без склеивания биграмм) 600 миллионов слов 394 332 40 Universal Tags Continuous Skipgram 300 5 0.31 0.72 Январь 2018
ruwikiruscorpora-superbigrams_skipgram_300_2_2018 735 Мбайт НКРЯ и  Википедия за декабрь 2017 (с неограниченным склеиванием биграмм) 600 миллионов слов 746 695 40 Universal Tags Continuous Skipgram 300 2 0.28 0.71 Январь 2018
ruscorpora_upos_skipgram_300_10_2017 200 Мбайт НКРЯ 250 миллионов слов 184 973 10 Universal Tags Continuous Skipgram 300 10 0.35 0.65 Январь 2017
ruwikiruscorpora_upos_cbow_300_20_2017 420 Мбайт НКРЯ и  Википедия за ноябрь 2016 600 миллионов слов 392 339 15 Universal Tags Continuous Bag-of-Words 300 20 0.33 0.70 Январь 2017
web_upos_cbow_300_20_2017 290 Мбайт Веб-корпус, декабрь 2014 900 миллионов слов 267 540 30 Universal Tags Continuous Bag-of-Words 300 20 0.32 0.67 Январь 2017
araneum_upos_skipgram_600_2_2017 419 Мбайт Araneum около 10 миллиардов слов 196 465 400 Universal Tags Continuous Skipgram 600 2 0.41 0.59 Июнь 2017
news_upos_cbow_300_2_2017 130 Мбайт Русскоязычные новости,с сентября 2013 до ноября 2016 почти 5 миллиардов слов 194 058 200 Universal Tags Continuous Bag-of-Words 300 2 0.33 0.42 Февраль 2017
ruscorpora_upos_skipgram_600_10_2017 371 Мбайт НКРЯ 250 миллионов слов 173 816 10 Universal Tags Continuous Skipgram 600 2 0.43 0.29 Июнь 2017
ruscorpora_mystem_cbow_300_2_2015 303 Мбайт НКРЯ 107 миллионов слов 281 776 3 Mystem Continuous Bag-of-Words 300 2 0.38 0.27 Декабрь 2015
ruwikiruscorpora_mystem_cbow_500_2_2015 1100 Мбайт НКРЯ и  Википедия за  2015 280 миллионов слов 604 043 5 Mystem Continuous Bag-of-Words 500 2 0.38 0.38 Март 2015
web_mystem_skipgram_500_2_2015 630 Мбайт Веб-корпус, декабрь 2014 660 миллионов слов 353 608 30 Mystem Continuous Skipgram 500 2 0.31 0.52 Ноябрь 2015
news_mystem_skipgram_1000_20_2015 525 Мбайт Русскоязычные новости, с сентября 2013 до октября 2015 2.5 миллиарда слов 147 358 200 Mystem Continuous Skip-Gram 1000 20 0.32 0.58 Декабрь 2015

200 слов про новые модели iPad и Macbook Pro

https://ria.ru/20131023/972072929.html

200 слов про новые модели iPad и Macbook Pro

200 слов про новые модели iPad и Macbook Pro - РИА Новости, 01.03.2020

200 слов про новые модели iPad и Macbook Pro

"Показав новые модели iPad и Macbook Pro, сообщив о бесплатном обновлении операционной системы, компания Apple задала остальным производителям новые ориентиры", - считает Александр Баулин.

2013-10-23T14:22

2013-10-23T14:22

2020-03-01T16:01

/html/head/meta[@name='og:title']/@content

/html/head/meta[@name='og:description']/@content

https://cdn24.img.ria.ru/images/sharing/article/972072929.jpg?9720834631583067681

сша

америка

весь мир

северная америка

европа

россия

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

2013

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

Новости

ru-RU

https://ria.ru/docs/about/copyright.html

https://xn--c1acbl2abdlkab1og.xn--p1ai/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

200 слов про новые модели iPad и Macbook Pro

"Показав новые модели iPad и Macbook Pro, сообщив о бесплатном обновлении операционной системы, компания Apple задала остальным производителям новые ориентиры", - считает Александр Баулин.

2013-10-23T14:22

true

PT2M42S

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

200 слов - программы, эфир , презентация новых устройств apple, сша, apple, windows vista, apple ipad, россия

14:22 23.10.2013 (обновлено: 16:01 01.03.2020)

"Показав новые модели iPad и Macbook Pro, сообщив о бесплатном обновлении операционной системы, компания Apple задала остальным производителям новые ориентиры", - считает Александр Баулин.

Модель от FAIR для представления слов устойчива к опечаткам

Facebook AI Research опубликовали новую модель для обучения представлений слов, — MOE. Misspelling Oblivious Embeddings (MOE) комбинирует в себе модель fastText и задачу по подбору наиболее близкого слова к слову с опечаткой.

Эмбеддинги — это представления слов или фраз в формате сжатых векторов, которые отражают их семантическое значение. Несмотря на то, что популярные методы эмбеддинга слов, — word2vec и GloVe, — выдают разумные результаты во время обучения, у них есть ряд ограничений. Модели не могут выдать эмбеддинг слову, которое не находилось в обучающем словаре (out-of-vocabulary words). Это наиболее важный недостаток, когда тексты содержат аббревиатуры, сленг или опечатки. Чтобы обойти этот недостаток, исследователи из FAIR предложили модель MOE.

MOE помещает в векторном пространстве слова с опечаткой близко к корректной форме слова. Это осуществляется с помощью обучения с учителем. fastText, на котором основана MOE, — это модель для эмбеддинга слов, которую также разработали в FAIR. Исследователи проверили работу MOE на разных задачах. Модель обошла fastText для текстов, которые были сгенерированы пользователями.

Векторы слова с опечаткой и без в MOE

Как это работает

Функция потерь у fastText нацелена на расположение в пространстве слов, которые встречаются в одном контексте, близко друг к другу. Это называется семантической функцией потерь. Помимо семантической функции потерь, MOE также берет в расчет дополнительную функцию потерь классификатора (spell correction loss). Spell correction функция потерь имеет цель располагать в пространстве слова с опечаткой близко к верной форме слова. Это происходит через минимизацию взвешенной суммы семантической и spell correction функций потерь.

Функция потерь MOE

Исследователи опубликовали датасет с опечатками на английском языке, на котором обучалась MOE. Датасет включает в себя статьи из Wikipedia и содержит 20 миллионов примеров.

Чтобы оценить подход, необходимо было оценить, как близко слова с опечаткой находятся к верным формам слов. Ниже для примера представлены топ-6 самых близких слов к слову “samallest”.

Показательное сравнение fastText и MOE

Почему это имеет значение

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

Word2vec – применение векторных семантических моделей языка

Введение

Word2vec — библиотека для получения векторных представлений слов на основе их совместной встречаемости в текстах. Системный Блокъ уже писал ранее о том, как работают эти модели, и вы можете освежить в памяти механизмы работы Word2vec, прочитав эту статью.

Сейчас мы займемся более практичными и приземленными вещами: научимся использовать Word2vec в своей повседневной работе. Мы будем использовать реализацию Word2vec в библиотеке Gensim для языка программирования Python.

Тьюториал состоит из двух частей:

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

Для прохождения тьюториала мы рекомендуем использовать Python3. Работоспособность кода для Python2 не гарантируется. Код из этого тьюториала также доступен в формате jupyter-тетрадки.

Предобработка текстовых данных и тренировка модели

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

Однако в нашем тьюториале мы разберём, как выполнять более глубокую предобработку текста: лемматизацию и частеречный анализ. Это нужно для того, чтобы вы сами могли создавать модели, совместимые с уже готовыми моделями RusVectōrēs. Ну и просто знание о том, как устроена предобработка текста, может пригодиться во многих задачах обработки языка.

Обработка текста

Предобработка текстов для тренировки моделей выглядит следующим образом:

  • сначала мы приведем все слова к начальной форме (лемматизируем) и удалим стоп-слова;
  • затем мы приведем все леммы к нижнему регистру;
  • для каждого слова добавим его частеречный тэг.

Давайте попробуем воссоздать процесс предобработки текста на примере рассказа О. Генри «Русские соболя». Для предобработки можно использовать различные тэггеры, мы сейчас будем использовать UDPipe, чтобы сразу получить частеречную разметку в виде Universal POS-tags. Сначала установим обертку UDPipe для Python с помощью питоновского пакет-менеджера pip:

pip install ufal.udpipe

UDPipe использует предобученные модели для лемматизации и тэггинга. Вы можете использовать уже готовую модель или обучить свою.

Чтобы загружать файлы, можно использовать питоновскую библиотеку wget:

pip install wget

Кусок кода ниже скачает рассказ О’Генри и модель UDPipe для лингвистической предобработки. Модель весит 40 мегабайт, поэтому ячейка может выполнятся некоторое время, особенно если у вас небыстрый интернет.

import wget
import sys
​
udpipe_url = 'https://rusvectores.org/static/models/udpipe_syntagrus.model'
text_url = 'https://rusvectores.org/static/henry_sobolya.txt'
​
modelfile = wget.download(udpipe_url)
textfile = wget.download(text_url)

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

def process(pipeline, text='Строка', keep_pos=True, keep_punct=False):
   entities = {'PROPN'}
   named = False  # переменная для запоминания того, что нам встретилось имя собственное
   memory = []
   mem_case = None
   mem_number = None
   tagged_propn = []
​
   # обрабатываем текст, получаем результат в формате conllu:
   processed = pipeline.process(text)
​
   # пропускаем строки со служебной информацией:
   content = [l for l in processed.split('\n') if not l.startswith('#')]
​
   # извлекаем из обработанного текста леммы, тэги и морфологические характеристики
   tagged = [w.split('\t') for w in content if w]
​
   for t in tagged:
       if len(t) != 10: # если список короткий — строчка не содержит разбора, пропускаем
           continue
       (word_id,token,lemma,pos,xpos,feats,head,deprel,deps,misc) = t 
       if not lemma or not token: # если слово пустое — пропускаем
           continue
       if pos in entities: # здесь отдельно обрабатываем имена собственные — они требуют особого обращения
           if '|' not in feats:
               tagged_propn.append('%s_%s' % (lemma, pos))
               continue
           morph = {el.split('=')[0]: el.split('=')[1] for el in feats.split('|')}
           if 'Case' not in morph or 'Number' not in morph:
               tagged_propn.append('%s_%s' % (lemma, pos))
               continue
           if not named:
               named = True
               mem_case = morph['Case']
               mem_number = morph['Number']
           if morph['Case'] == mem_case and morph['Number'] == mem_number:
               memory.append(lemma)
               if 'SpacesAfter=\\n' in misc or 'SpacesAfter=\s\\n' in misc:
                   named = False
                   past_lemma = '::'.join(memory)
                   memory = []
                   tagged_propn.append(past_lemma + '_PROPN ')
           else:
               named = False
               past_lemma = '::'.join(memory)
               memory = []
               tagged_propn.append(past_lemma + '_PROPN ')
               tagged_propn.append('%s_%s' % (lemma, pos))
       else:
           if not named:
               if pos == 'NUM' and token.isdigit():  # Заменяем числа на xxxxx той же длины
                   lemma = num_replace(token)
               tagged_propn.append('%s_%s' % (lemma, pos))
           else:
               named = False
               past_lemma = '::'.join(memory)
               memory = []
               tagged_propn.append(past_lemma + '_PROPN ')
               tagged_propn.append('%s_%s' % (lemma, pos))
​
   if not keep_punct: # обрабатываем случай, когда пользователь попросил не сохранять пунктуацию (по умолчанию она сохраняется)
       tagged_propn = [word for word in tagged_propn if word.split('_')[1] != 'PUNCT']
   if not keep_pos:
       tagged_propn = [word.split('_')[0] for word in tagged_propn]
   return tagged_propn

Эту функцию можно также изменить под конкретную задачу. Например, если частеречные тэги нам не нужны, в функции ниже выставим keep_pos=False. Если необходимо сохранить знаки пунктуации, можно выставить keep_punct=True.

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

from ufal.udpipe import Model, Pipeline
import os
import re
​
def tag_ud(text='Текст нужно передать функции в виде строки!', modelfile='udpipe_syntagrus.model'):
   udpipe_model_url = 'https://rusvectores.org/static/models/udpipe_syntagrus.model'
   udpipe_filename = udpipe_model_url.split('/')[-1]
​
   if not os.path.isfile(modelfile):
       print('UDPipe model not found. Downloading...', file=sys.stderr)
       wget.download(udpipe_model_url)
​
   print('\nLoading the model...', file=sys.stderr)
   model = Model.load(modelfile)
   process_pipeline = Pipeline(model, 'tokenize', Pipeline.DEFAULT, Pipeline.DEFAULT, 'conllu')
​
   print('Processing input...', file=sys.stderr)
   lines = text.split('\n')
   tagged = []
   for line in lines:
       # line = unify_sym(line.strip()) # здесь могла бы быть ваша функция очистки текста
       output = process(process_pipeline, text=line)
       tagged_line = ' '.join(output)
       tagged.append(tagged_line)
   return '\n'.join(tagged)

text = open(textfile, 'r', encoding='utf-8').read()
processed_text = tag_ud(text=text, modelfile=modelfile)
print(processed_text[:350])
with open('my_text.txt', 'w', encoding='utf-8') as out:
   out.write(processed_text)

> русский_PROPN соболь_NOUN о.::генри_PROPN
когда_SCONJ синий_ADJ как_SCONJ ночь_NOUN глаз_NOUN Молли_VERB Мак-Кивер_PROPN класть_VERB малыш::Брэди_PROPN на_ADP оба_NUM лопатка_NOUN он_PRON вынужденный_ADJ быть_AUX покидать_VERB ряд_NOUN банда_NOUN «Дымовый_ADJ труба«_NOUN таков_ADJ власть_NOUN нежный_ADJ укор_NOUN подружка_NOUN и_CCONJ она_PRON

Наша функция напечатает обработанный текст, который мы теперь можем также сохранить в файл.

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

Тренировка модели

Для работы с эмбеддингами слов существуют различные библиотеки: gensim, keras, tensorflow, pytorch. Мы будем работать с библиотекой gensim.

Gensim — изначально библиотека для тематического моделирования текстов. Однако помимо различных алгоритмов для topic modeling в ней реализованы на python и алгоритмы из тулкита word2vec (который в оригинале был написан на C++). Прежде всего, если gensim у вас на компьютере не установлен, нужно его установить:

pip install gensim

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

pip install gensim --upgrade

При подготовке этого тьюториала использовался gensim версии 3.7.0.

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

import sys
import gensim, logging
​
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)

На вход модели мы даем наш обработанный текстовый файл (либо любой другой текст, важно лишь, что каждое предложение должно быть на отдельной строчке).

f = 'my_text.txt'
data = gensim.models.word2vec.LineSentence(f)

Инициализируем модель. Параметры в скобочках:

  • data — данные,
  • size — размер вектора,
  • window — размер окна наблюдения,
  • min_count — мин. частотность слова в корпусе, которое мы берем,
  • sg — используемый алгоритм обучения (0 — CBOW, 1 — Skip-gram)
model = gensim.models.Word2Vec(data, size=500, window=10, min_count=2, sg=0)

Мы создаем модель, в которой размерность векторов — 500, размер окна наблюдения — 10 слов, алгоритм обучения — CBOW, слова, встретившиеся в корпусе только 1 раз, не используются. После тренировки модели можно нормализовать вектора, тогда модель будет занимать меньше RAM. Однако после этого её нельзя дотренировать.

model.init_sims(replace=True)

Смотрим, сколько в модели слов (корпус у нас был небольшой):

print(len(model.wv.vocab))
> 252

И сохраняем нашу модель!

model.save('my.model')

Работа с векторными моделями при помощи библиотеки Gensim

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

Модели для русского скачать можно здесь.

Существуют несколько форматов, в которых могут храниться модели. Во-первых, данные могут храниться в нативном формате word2vec, при этом модель может быть бинарной или не бинарной. Для загрузки модели в формате word2vec в классе KeyedVectors (в котором хранится большинство относящихся к дистрибутивным моделям функций) существует функция load_word2vec_format, а бинарность модели можно указать в аргументе binary (внизу будет пример). Помимо этого, модель можно хранить и в собственном формате gensim, для этого существует класс Word2Vec с функцией load. Поскольку модели бывают разных форматов, то для них написаны разные функции загрузки; бывает полезно учитывать это в своем скрипте. Наш код определяет тип модели по её расширению, но вообще файл с моделью может называться как угодно, жестких ограничений для расширения нет.

Давайте скачаем новейшую модель для русского языка, созданную на основе Национального корпуса русского языка (НКРЯ), и загрузим в её в память (поскольку zip-архив с моделью весит почти 500 мегабайт, следующая ячейка выполнится у вас не сразу!). Распаковывать скачанный архив для обычных моделей не нужно, так как его содержимое прочитается при помощи специальной инструкции:

import zipfile
model_url = 'http://vectors.nlpl.eu/repository/20/180.zip'
m = wget.download(model_url)
model_file = model_url.split('/')[-1]
with zipfile.ZipFile(model_file, 'r') as archive:
   stream = archive.open('model.bin')
   model = gensim.models.KeyedVectors.load_word2vec_format(stream, binary=True)

Ищем семантическую близость

Допустим, нам интересны такие слова (пример для русского языка):

words = [’день_NOUN’, ’ночь_NOUN’, ’человек_NOUN’, ’семантика_NOUN’, ’студент_NOUN’, ’студент_ADJ’]

Попросим у модели 10 ближайших соседей для каждого слова и коэффициент косинусной близости для каждого:

for word in words:
   # есть ли слово в модели? Может быть, и нет
   if word in model:
       print(word)
       # выдаем 10 ближайших соседей слова:
       for i in model.most_similar(positive=[word], topn=10):
           # слово + коэффициент косинусной близости
           print(i[0], i[1])
       print('\n')
   else:
       # Увы!
       print(word + ' is not present in the model')

> день_NOUN
неделя_NOUN 0.7375996112823486
день_PROPN 0.7067666053771973
месяц_NOUN 0.7037326097488403
час_NOUN 0.6643950343132019
утро_NOUN 0.6526744365692139
вечер_NOUN 0.6038411855697632
сутки_NOUN 0.5923081040382385
воскресенье_NOUN 0.5842781066894531
полдень_NOUN 0.5743687748908997
суббота_NOUN 0.5345946550369263

ночь_NOUN
ночь_PROPN 0.8310786485671997
вечер_NOUN 0.7183679342269897
рассвет_NOUN 0.696594774723053
ночи_NOUN 0.692021906375885
полночь_NOUN 0.6704976558685303
ночь_VERB 0.6615264415740967
утро_NOUN 0.6263935565948486
ночной_ADJ 0.6024709939956665
полдень_NOUN 0.5835086107254028
сумерки_NOUN 0.5671443343162537

человек_NOUN
человек_PROPN 0.7850059270858765
человеческий_ADJ 0.5915265679359436
существо_NOUN 0.573693037033081
народ_NOUN 0.5354466438293457
личность_NOUN 0.5296981334686279
человечество_NOUN 0.5282931327819824
человкъ_PROPN 0.5047001838684082
индивидуум_NOUN 0.5000404119491577
нравственный_ADJ 0.4972919821739197
потому_ADV 0.49293622374534607

семантика_NOUN
семантический_ADJ 0.8019332885742188
синтаксический_ADJ 0.7569340467453003
модальный_ADJ 0.7296056747436523
семантически_ADV 0.7209396958351135
смысловой_ADJ 0.7159026861190796
референция_NOUN 0.7135108709335327
ноэтический_ADJ 0.7080267071723938
языковой_ADJ 0.7067198753356934
лингвистический_ADJ 0.6928658485412598
предикат_NOUN 0.68775475025177

студент_NOUN
преподаватель_NOUN 0.6743764281272888
студенческий_ADJ 0.6486333608627319
университетский_ADJ 0.6442699432373047
заочник_NOUN 0.6423174142837524
первокурсник_NOUN 0.6409708261489868
курсистка_NOUN 0.636457085609436
дипломник_NOUN 0.6341054439544678
аспирант_NOUN 0.6337910890579224
университет_NOUN 0.6302101612091064
студентка_NOUN 0.6299037337303162

студент_ADJ is not present in the model

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

model.most_similar(positive=['студенческий_ADJ'], topn=10)

[(’университетский_ADJ’, 0.6642225384712219),
(’студент_NOUN’, 0.6486333012580872),
(’студенчество_NOUN’, 0.6344770789146423),
(’институтский_ADJ’, 0.6142880320549011),
(’гимназический_ADJ’, 0.5510081648826599),
(’аспирантский_ADJ’, 0.5403808951377869),
(’школьный_ADJ’, 0.5198260545730591),
(’студентский_ADJ’, 0.5004373788833618),
(’ифли_PROPN’, 0.48894092440605164),
(’молодежный_ADJ’, 0.47924578189849854)]

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

print(model.similarity('человек_NOUN', 'обезьяна_NOUN'))
> 0.22025344

Более сложные операции над векторами

Помимо более простых операций над векторами (нахождение косинусной близости между двумя векторами и ближайших соседей вектора) gensim позволяет выполнять и более сложные операции над несколькими векторами. Так, например, мы можем найти лишнее слово в группе. Лишним словом является то, вектор которого наиболее удален от других векторов слов.

print(model.doesnt_match('яблоко_NOUN груша_NOUN виноград_NOUN банан_NOUN лимон_NOUN картофель_NOUN'.split()))
> картофель_NOUN

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

print(model.most_similar(positive=['пицца_NOUN', 'россия_NOUN'], negative=['италия_NOUN'])[0][0])
> гамбургер_NOUN

Заключение

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

  • осуществлять предобработку текстовых данных, что может пригодиться во многих задачах обработки естественного языка;
  • тренировать векторные семантические модели. Формат моделей совместим с моделями, представленными на веб-сервисе RusVectōrēs;
  • осуществлять простые операции над векторами слов.

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

Код этого тьюториала в формате тетрадки Jupyter

Источники

перевод, произношение, транскрипция, примеры использования

Каждому ребёнку нужен пример для подражания. 

Эта идеальная модель не согласуется с фактами. 

Продавец настойчиво предлагает новую модель компьютера. 

His car was an old model. 

Его машина была старой модели. 

When I was young , I wanted to be a model. 

В молодости я хотела быть моделью. 

Hospital staff say he is a model patient. 

По словам работников больницы, он идеальный пациент. 

The new model has a bigger boot. 

Новая модель имеет больший багажник. 

The model pouted for the cameras. 

Модель надула губки для фотокамер. 

It served as a model for other cities. 

Это послужило примером для других городов. 

This model must be scaled down. 

Этот макет необходимо уменьшить в размерах. 

The model must be tested out before we put the product on sale. 

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

They kited the Red Dragon model. 

Они запустили (модель) воздушного змея под названием "красный дракон". 

The artists sketched the nude model. 

Художники сделали наброски обнаженной модели. 

He is playing with his model railway. 

Он играет со своей игрушечной железной дорогой. 

Donna has grown tired of being a model. 

Донна уже устала быть моделью. 

The new model is superior to the old one in many ways. 

Новая модель во многих отношениях лучше старой. 

That model won't go into series production before late 2010. 

Эта модель будет запущена в серийное производство не ранее конца 2010 года. 

Sweden's number one model 

шведская модель номер один 

The stereo was a showroom model. 

Эта стереосистема была выставочной моделью. 

The model sashayed down the runway. 

Модель летящей походкой шла по подиуму. 

He built a model airplane from a kit. 

Он построил модель самолета из комплекта. 

He bought one of the old 1965 models. 

Он купил одну из старых моделей 1965 года. 

She was a model of honesty and decency. 

Она была образцом честности и порядочности. 

They showed us a model of the building. 

Они показали нам модель здания. 

We cleared a lot of the old model cars. 

Мы продали многие старые модели автомобилей. 

The model was held together with string. 

Модель была скреплена с помощью нитки. 

Мягкое знакомство с моделью "Сумка слов"

Последнее обновление 7 августа 2019 г.

Модель набора слов - это способ представления текстовых данных при моделировании текста с помощью алгоритмов машинного обучения.

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

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

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

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

Начните свой проект с моей новой книги «Глубокое обучение для обработки естественного языка», включая пошаговые руководства и файлы исходного кода Python для всех примеров.

Приступим.

Мягкое знакомство с моделью «Сумка со словами»
Фотография сделана Do8y, некоторые права защищены.

Обзор учебного пособия

Это руководство разделено на 6 частей; их:

  1. Проблема с текстом
  2. Что такое мешок слов?
  3. Пример модели «Сумка со словами»
  4. Управление словарным запасом
  5. Подсчет слов
  6. Ограничения набора слов

Нужна помощь с глубоким обучением текстовых данных?

Пройдите мой бесплатный 7-дневный ускоренный курс электронной почты (с кодом).

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

Начните БЕСПЛАТНЫЙ ускоренный курс прямо сейчас

Проблема с текстом

Проблема моделирования текста в том, что он беспорядочный, а такие методы, как алгоритмы машинного обучения, предпочитают четко определенные входные и выходные данные фиксированной длины.

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

При языковой обработке векторы x выводятся из текстовых данных, чтобы отразить различные лингвистические свойства текста.

- стр. 65, Методы нейронных сетей в обработке естественного языка, 2017.

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

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

Что такое мешок слов?

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

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

Пакет слов - это представление текста, которое описывает появление слов в документе. Он включает в себя две вещи:

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

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

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

- стр. 69, Методы нейронных сетей в обработке естественного языка, 2017.

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

Пакет слов может быть таким простым или сложным, как вам нравится. Сложность возникает как при принятии решения о том, как составить словарь известных слов (или лексем), так и при оценке наличия известных слов.

Мы более подробно рассмотрим обе эти проблемы.

Пример модели «Сумка со словами»

Давайте сделаем «мешок слов» из бетона на рабочем примере.

Шаг 1. Сбор данных

Ниже приводится фрагмент первых нескольких строк текста из книги Чарльза Диккенса «Повесть о двух городах», взятых из проекта Гутенберг.

Это были лучшие времена,
это были худшие времена,
это был век мудрости,
это был век глупости,

Для этого небольшого примера давайте рассматривать каждую строку как отдельный «документ», а 4 строки - как весь наш корпус документов.

Шаг 2: Составьте словарь

Теперь мы можем составить список всех слов в нашем модельном словаре.

Уникальные слова (без учета регистра и знаков препинания):

  • «оно»
  • «было»
  • «The»
  • «лучший»
  • «из»
  • «раз»
  • «худший»
  • «возраст»
  • «мудрость»
  • «глупость»

Это словарь из 10 слов из корпуса, содержащего 24 слова.

Шаг 3. Создайте векторы документа

Следующим шагом будет оценка слов в каждом документе.

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

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

Самый простой метод оценки - отметить наличие слов как логическое значение, 0 - отсутствует, 1 - присутствует.

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

Оценка документа будет выглядеть следующим образом:

  • «оно» = 1
  • «было» = 1
  • «the» = 1
  • «лучший» = 1
  • «из» = 1
  • «раз» = 1
  • «худший» = 0
  • «возраст» = 0
  • «мудрость» = 0
  • «глупость» = 0

В качестве двоичного вектора это выглядело бы следующим образом:

[1, 1, 1, 1, 1, 1, 0, 0, 0, 0]

[1, 1, 1, 1, 1, 1, 0, 0, 0, 0]

Остальные три документа будут выглядеть следующим образом:

"это был худший из времен" = [1, 1, 1, 0, 1, 1, 1, 0, 0, 0] «это был век мудрости» = [1, 1, 1, 0, 1, 0, 0, 1, 1, 0] «это был век глупости» = [1, 1, 1, 0, 1, 0, 0, 1, 0, 1]

«это был худший из времен» = [1, 1, 1, 0, 1, 1, 1, 0, 0, 0]

«это был век мудрости» = [1, 1, 1, 0, 1, 0, 0, 1, 1, 0]

«это был век глупости» = [1, 1, 1, 0, 1, 0, 0, 1, 0, 1]

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

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

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

Управление словарным запасом

По мере увеличения размера словаря увеличивается и векторное представление документов.

В предыдущем примере длина вектора документа равна количеству известных слов.

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

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

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

Таким образом, существует необходимость уменьшить размер словарного запаса при использовании модели набора слов.

Существуют простые методы очистки текста, которые можно использовать в качестве первого шага, например:

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

Более сложный подход - создать словарь сгруппированных слов. Это одновременно изменяет объем словарного запаса и позволяет сумке слов уловить немного больше смысла из документа.

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

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

- стр. 85, Обработка речи и языка, 2009.

Например, биграммы в первой строке текста в предыдущем разделе: «Это были лучшие времена»:

  • «было»
  • «был»
  • «лучший»
  • «лучшее из»
  • «времен»

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

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

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

- стр. 75, Методы нейронных сетей в обработке естественного языка, 2017.

Подсчет слов

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

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

Некоторые дополнительные простые методы оценки включают:

  • Считает . Подсчитайте, сколько раз каждое слово встречается в документе.
  • Частоты . Вычислите частоту появления каждого слова в документе из всех слов в документе.

Хеширование слов

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

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

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

слов детерминированно хешируются по одному и тому же целочисленному индексу в целевом хэш-пространстве.Затем для оценки слова можно использовать двоичную оценку или счет.

Это называется «хеш-трюк » или «хеширование функции ».

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

TF-IDF

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

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

Такой подход к скорингу называется Term Frequency - Inverse Document Frequency, или сокращенно TF-IDF, где:

  • Частота термина : оценка частоты слова в текущем документе.
  • Частота обратного документа : оценка того, насколько редко слово встречается в документах.

Баллы представляют собой взвешивание, при котором не все слова одинаково важны или интересны.

Баллы имеют эффект выделения слов, которые различны (содержат полезную информацию) в данном документе.

Таким образом, idf редкого термина будет высоким, тогда как idf частого термина, вероятно, будет низким.

- стр. 118, Введение в поиск информации, 2008 г.

Ограничения набора слов

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

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

Тем не менее, он имеет некоторые недостатки, например:

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

Дополнительная литература

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

Статьи

Книги

Сводка

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

В частности, вы выучили:

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

Есть вопросы?
Задайте свои вопросы в комментариях ниже, и я постараюсь ответить.

Разрабатывайте модели глубокого обучения для текстовых данных уже сегодня!

Создавайте собственные текстовые модели за считанные минуты

... всего несколькими строками кода Python

Узнайте, как это сделать, в моей новой электронной книге:
Deep Learning for Natural Language Processing

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

Наконец-то привнесите глубокое обучение в свои проекты обработки естественного языка

Пропустить академики.Только результаты.

Посмотрите, что внутри

Обзор кросс-языковых моделей встраивания слов

В этом посте дается обзор методов изучения общего межъязыкового пространства вложения слов между разными языками.

Примечание. Обновленная версия этого сообщения в блоге общедоступна в Журнале исследований искусственного интеллекта.

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

Чтобы исправить это и уравнять лингвистические правила игры, мы хотели бы использовать наши существующие знания английского языка, чтобы снабдить наши модели способностью обрабатывать другие языки.
Совершенный машинный перевод (МП) позволит это сделать. Однако нам не нужно фактически переводить примеры, если мы можем проецировать примеры в общее подпространство, такое как то, что показано на рисунке 1.

Рисунок 1. Общее пространство встраивания между двумя языками (Луонг и др., 2015)

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

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

Примечание. В то время как нейронный МП приближается к неявно, изучает общее кросс-языковое пространство встраивания путем оптимизации для цели МП, мы сосредоточимся на моделях, которые явно изучают кросс-языковые представления слов в этом сообщении в блоге. Эти методы, как правило, обходятся гораздо дешевле, чем MT, и могут считаться для MT такими же, как модели встраивания слов (word2vec, GloVe и т. Д.) Для моделирования языка.

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

  1. Одноязычное отображение : Эти модели изначально тренируют встраивание одноязычных слов в большие одноязычные корпуса.Затем они изучают линейное сопоставление одноязычных представлений на разных языках, что позволяет им сопоставлять неизвестные слова исходного языка целевому языку.
  2. Псевдо-кросс-языковой : Эти подходы создают псевдоязычный корпус путем смешивания контекстов разных языков. Затем они тренируют готовую модель встраивания слов в созданном корпусе. Интуиция подсказывает, что межъязыковые контексты позволяют усвоенным репрезентациям отражать межъязыковые отношения.
  3. Межъязыковое обучение : Эти модели тренируют свои вложения в параллельном корпусе и оптимизируют межъязыковые ограничения между встраиваниями разных языков, что способствует встраиванию похожих слов, чтобы они были близки друг к другу в общем векторном пространстве.
  4. Совместная оптимизация : Эти подходы обучают свои модели параллельным (и, возможно, одноязычным данным). Они совместно оптимизируют сочетание одноязычных и межъязыковых потерь.

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

  1. Данные с выравниванием по словам : параллельный корпус с выравниванием слов, обычно используемый для машинного перевода; это самый дорогой тип параллельных данных для использования.
  2. Данные с выравниванием по предложениям : Параллельный корпус без выравнивания слов. Если не указано иное, в модели используется корпус Europarl, состоящий из выровненного по предложениям текста из заседаний Европейского парламента, который обычно используется для обучения моделей статистического машинного перевода.
  3. Данные, выровненные с документами : Корпус, содержащий документы на разных языках. Документы могут быть выровнены по тематике (например, Википедия) или по ярлыкам / классам (например, анализ тональности и наборы данных мультиклассовой классификации).
  4. Lexicon : Двуязычный или межъязычный словарь с парами переводов между словами на разных языках.
  5. Нет параллельных данных : Параллельных данных нет вообще. Изучение кросс-языковых представлений только на одноязычных ресурсах позволит беспроблемно изучать языки.

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

Подход Метод Параллельные данные
Одноязычное отображение Линейная проекция (Миколов и др., 2013) Словарь
Проекция через CCA (Фаруки и Дайер, 2014)
Нормализация и ортогональное преобразование (Xing et al., 2015)
Максимальный запас и злоумышленники (Lazaridou et al., 2015)
Проекция на основе совмещения (Guo et al., 2015) с выравниванием по словам
Многоязычный CCA (Ammar et al., 2016) Словарь
Гибридное отображение с симметричным начальным лексиконом (Vulić and Korhonen, 2016) Lexicon, с выравниванием по документу
Ортогональное преобразование, нормализация и центрирование среднего (Artetxe et al., 2016) Словарь
Состязательный автокодировщик (Barone, 2016)
Псевдо-кросс-язычный Сопоставление переводов с одним и тем же представлением (Xiao and Guo, 2014) Словарь
Замена случайного перевода (Gouws, Sogaard, 2015)
Замена на лету и многозначная обработка (Duong et al., 2016)
Многоязычный кластер (Ammar et al., 2016)
Объединение и перемешивание документов (Вулич и Моэнс, 2016) По документу
Межъязыковое обучение Двуязычная композиционная модель предложения (Герман и Блансом, 2013) Выровнено по предложению
Двуязычный автокодер набора слов (Lauly et al., 2013)
Распределенное выравнивание слов (Kočiský et al., 2014) Выровнено по предложению
Модель двуязычного композиционного документа (Hermann and Blunsom, 2014)
Автокодер набора слов с корреляцией (Chandar et al., 2014)
Двуязычные векторы абзацев (Pham et al., 2015)
Трансляционно-инвариантный LSA (Gardner et al., 2015) Словарь
Инвертированное индексирование в Википедии (Søgaard et al., 2015) По документу
Совместная оптимизация Многозадачная языковая модель (Клементьев и др., 2012) с выравниванием по словам
Факторизация двуязычной матрицы (Zou et al., 2013)
Двуязычная скип-грамма (Luong et al., 2015)
Двуязычный набор слов без выравнивания слов (Gouws et al., 2015) Выровнено по предложению
Двуязычная скипграмма без выравнивания слов (Coulmance et al., 2015)
Факторизация совместной матрицы (Shi et al., 2015)
Двуязычные разреженные представления (Вьяс и Карпуат, 2016) с выравниванием по словам
Двуязычные векторы абзацев (без параллельных данных) (Mogadala and Rettinger, 2016) Выровнено по предложению / -

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

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

Обратите внимание, что все следующие методы предполагают, что одноязычные пространства вложения уже обучены.Если не указано иное, эти области вложения были изучены с использованием вариантов word2vec, skip-граммы с отрицательной выборкой (SGNS) или непрерывного мешка слов (CBOW) на больших одноязычных корпусах.

Линейная проекция

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

Рисунок 3: Межъязыковая проекция с использованием CCA (Faruqui and Dyer, 2014)

Подобно линейной проекции, CCA также требует ряда пар переводов в \ (\ Sigma '\) и \ (\ Omega' \), корреляция которых может быть максимально. Фаруки и Дайер получают эти пары, выбирая для каждого исходного слова целевое слово, с которым оно чаще всего выравнивается в параллельном корпусе. В качестве альтернативы они могли также использовать двуязычный словарь.
Поскольку CCA сортирует векторы корреляции в \ (V \) и \ (W \) в порядке убывания, Фаруки и Дайер проводят эксперименты с использованием только верхних \ (k \) коррелированных векторов проекций и находят это с помощью \ (80 \) % векторов проекции с наивысшей корреляцией обычно дает наивысшую производительность.

Рисунок 4: Одноязычная (вверху) и многоязычная (внизу; отмечена апострофом) проекции синонимов и антонимов слова «красивый» (Faruqui and Dyer, 2014)

Интересно, что они обнаружили, что использование многоязычной проекции помогает разделять синонимы и антонимы в исходном языке, как видно на рисунке 4, где незащищенные антонимы слова «красивый» находятся в двух кластерах вверху, тогда как векторы синонимов и антонимов, проецируемые CCA, образуют два отдельных кластера внизу.2 \)

, где \ (W \) - матрица проекции, которую необходимо изучить, а \ (x_i \) и \ (z_i \) - векторы слов в исходном и целевом языках соответственно, которые имеют схожее значение.

Xing et al. утверждать, что существует несоответствие между целевой функцией, используемой для изучения представлений слов (максимальное правдоподобие на основе внутреннего продукта), мерой расстояния для векторов слов (косинусное сходство) и целевой функцией, используемой для изучения линейного преобразования (среднеквадратичная ошибка) , что может привести к снижению производительности.T c_w '} {| c_w | | c_ {w '} |} \) для тестирования, внутренний продукт также может использоваться для тестирования. Однако косинусное сходство обычно используется в качестве меры оценки в НЛП и обычно работает лучше, чем внутренний продукт. По этой причине они предлагают нормализовать векторы слов до единичной длины во время обучения, что делает внутренний продукт таким же, как косинусное сходство, и помещает все векторы слов на гиперсферу в качестве побочного эффекта, как можно увидеть на рисунке 5.

Рисунок 5: Представления слов до (слева) и после (справа) нормализации (Xing et al.Т з_и \).

Наконец, чтобы также нормализовать проецируемый вектор \ (Wx_i \) к единичной длине, они ограничивают \ (W \) ортогональной матрицей, решая отдельную задачу оптимизации.

Макс-маржа и злоумышленники

Lazaridou et al. выявить еще одну проблему с целью линейного преобразования Mikolov et al. (2013): Они обнаруживают, что использование метода наименьших квадратов в качестве цели для изучения матрицы проекции приводит к значимости , то есть некоторые слова имеют тенденцию появляться в качестве ближайших соседей многих других слов.k_ {j \ neq i} \ max \ {0, \ gamma + cos (\ hat {y_i}, y_i) - cos (\ hat {y_i}, y_j) \} \)

где \ (k \) - количество отрицательных примеров, а \ (\ gamma \) - запас.

Они показывают, что выбор максимального запаса по сравнению с потерями по методу наименьших квадратов последовательно улучшает производительность и снижает концентрацию. Кроме того, важен выбор отрицательных примеров, то есть целевых слов, по сравнению с которыми модель должна оценивать правильный перевод выше. Они выдвигают гипотезу, что информативным негативным примером является злоумышленник (в данном примере «грузовик»), т.е.е. он находится рядом с текущим проецируемым вектором \ (\ hat {y_i} \), но далеко от фактического вектора перемещения \ (y_i \) ("кошка"), как показано на рисунке 6.

Рисунок 6: Злоумышленник «грузовик» выбран вместо «собака» в качестве отрицательного примера для «кошки». (Lazaridou et al., 2015)

Эти злоумышленники должны помочь модели идентифицировать случаи, когда она не может значительно приблизиться к целевой функции, и, таким образом, должны позволить ей исправить свое поведение. На каждом этапе градиентного спуска они вычисляют \ (s_j = cos (\ hat {y_i}, y_j) - cos (y_i, y_j) \) для всех векторов \ (y_t \) в целевом пространстве встраивания с \ (j \ neq i \) и выберите вектор с наибольшим \ (s_j \) в качестве отрицательного примера для \ (x_i \). {th} \).T, w) \ leq \ tau \} \). Они эмпирически устанавливают порог \ (\ tau \) равным \ (1 \).
Несмотря на то, что этот подход кажется упрощенным, они на самом деле наблюдают значительные улучшения по сравнению с проекцией через CCA в своих экспериментах.

Многоязычный CCA

Ammar et al. распространить двуязычный метод проекции CCA, предложенный Фаруки и Дайером (2014), на многоязычную среду, используя английское встраиваемое пространство в качестве основы для их многоязычного встраиваемого пространства.

Они изучают две матрицы проекции для любого другого языка с английским.\ ast \) можно спроецировать в английское пространство вложения \ (\ Sigma \), используя обратное \ (V \).

Гибридное отображение с симметричным начальным словарем

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

Вулич и Корхонен, в свою очередь, подчеркивают роль начального словаря, который используется для изучения матрицы проекции.Они предлагают гибридную модель, которая изначально изучает первое общее двуязычное пространство встраивания на основе существующей кросс-языковой модели встраивания. Затем они используют это начальное векторное пространство для получения переводов для списка часто используемых исходных слов, проецируя их в пространство и используя в качестве перевода ближайшего соседа на целевом языке. Используя эти пары перевода в качестве начальных слов, они изучают матрицу проекции аналогично Mikolov et al. (2013).
Кроме того, они предлагают ограничение симметрии, которое требует, чтобы слова включались только в том случае, если их проекции являются соседями друг друга в первом пространстве вложения.Кроме того, можно сохранять пары, вторые ближайшие соседи которых менее похожи, чем первые ближайшие соседи, до некоторого порога.
Они проводят эксперименты, показывающие, что их модель с ограничением симметрии превосходит модели сравнения и что небольшой порог в \ (0,01 \) или \ (0,025 \) приводит к небольшому повышению производительности. 2 \)

, где \ (x_i \) и \ (z_i \) - похожие слова в исходном и целевом языках соответственно.Т \ dfrac {z_i} {| z_i |}) \).

Последний член теперь представляет собой просто косинусное подобие \ (Wx_i \) и \ (z_i \):

\ (\ argmin \ limits_W \ sum \ limits_i 2–2 \ text {cos} (Wx_i, z_i) \).

Поскольку мы заинтересованы в нахождении параметров \ (W \), которые минимизируют нашу цель, мы можем удалить указанные выше константы:

\ (\ argmin \ limits_W \ sum \ limits_i - \ text {cos} (Wx_i, z_i) \).

Минимизация суммы отрицательных косинусных сходств тогда равна максимизации суммы косинусных сходств, что дает нам следующее:

\ (\ DeclareMathOperator * {\ argmax} {argmax} \ argmax \ limits_W \ sum \ limits_i \ text {cos} (Wx_i, z_i) \).

Это соответствует цели Xing et al. (2015), хотя они мотивировали это несогласованностью целей.

Наконец, Artetxe et al. утверждают, что обычно предполагается, что два случайно выбранных слова не будут похожи. 2 \).

Это сводится к максимизации суммы размерной ковариации, пока \ (W \) ортогонален, как указано выше:

\ (\ argmax \ limits_W \ sum \ limits_i \ text {cov} (Wx_i, z_i) \).

Интересно, что метод Фаруки и Дайера (2014) аналогичен этой цели, поскольку CCA максимизирует размерную ковариацию обеих проекций. Здесь это эквивалентно одиночной проекции, поскольку она должна быть ортогональной. Единственное отличие состоит в том, что, хотя CCA изменяет одноязычные вложения так, что разные измерения имеют одинаковую дисперсию и некоррелированы, что может ухудшить производительность, Artetxe et al.обеспечить одноязычную инвариантность.

Состязательный автокодировщик

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

Barone, напротив, стремится приблизиться к неуловимой цели создания кросс-языковых представлений без параллельных данных. Он предлагает использовать состязательный автокодер для преобразования исходных вложений в целевое пространство встраивания.Затем автокодировщик обучается восстанавливать исходные вложения, в то время как дискриминатор обучается отличать спроектированные исходные вложения от фактических целевых встраиваний, как показано на рисунке 7.

Рис. 7. Межъязыковое сопоставление с состязательным автокодировщиком (Barone, 2016)

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

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

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

Сопоставление переводов с тем же представлением

Сяо и Го предлагают первый псевдо-кросс-языковой метод, который использует пары переводов: они сначала переводят все слова, которые появляются в корпусе исходного языка, на целевой язык с помощью Wiktionary. Поскольку эти пары переводов по-прежнему очень шумные, они фильтруют их, удаляя многозначные слова на исходном и целевом языках, а также переводы, которых нет в корпусе целевого языка. Из этого двуязычного словаря они теперь создают общий словарь, в котором каждая пара перевода имеет одинаковое векторное представление.

Для обучения они используют потерю ранжирования на основе маржи Collobert et al. (2008) ранжировать правильные окна слов выше, чем поврежденные, где среднее слово заменяется произвольным словом.
В отличие от последующих методов, они не создают псевдокросс-языковой корпус явно. Вместо этого они загружают окна как исходного, так и целевого корпуса в модель во время обучения, тем самым по существу интерполируя исходный и целевой языки.
Таким образом, наиболее вероятно, что для простоты обучения авторы заменяют пары перевода в исходном и целевом корпусе на заполнитель, чтобы обеспечить общее векторное представление, аналогично процедуре последующих моделей.

Замена случайного перевода

Gouws и Søgaard, в свою очередь, явно создают псевдо-кросс-языковой корпус: они используют пары переводимых слов в исходном и целевом языках, полученные с помощью Google Translate. Они объединяют исходный и целевой корпус и заменяют каждое слово, входящее в пару перевода, его эквивалентом перевода с вероятностью 50%. Затем они обучают CBOW на этом корпусе.
Интересно отметить, что они также экспериментируют с заменой слов не на основе перевода, а на основе эквивалентности части речи, т.е.е. слова с одной и той же частью речи в разных языках будут заменяться друг на друга. В то время как замена, основанная на части речи, приводит к небольшим улучшениям в межъязыковой маркировке частей речи, замена на основе эквивалентности перевода дает даже лучшую производительность для задачи.

Замена на лету и многозначная обработка

Duong et al. предложили аналогичный подход Gouws и Søgaard (2015). Они также используют CBOW, который предсказывает центральное слово в окне с учетом окружающих слов.Вместо случайной замены каждого слова в корпусе его переводом во время предварительной обработки, они заменяют каждое центральное слово переводом на лету во время обучения.

В дополнение к прошлым подходам они также стремятся явным образом обрабатывать многозначность, предлагая метод, вдохновленный ЭМ, который выбирает в качестве замены перевод \ (\ bar {w_i} \), представление которого наиболее похоже на комбинацию представлений источника слово \ (v_ {w_i} \) и вектор контекста \ (h_i \):

\ (\ bar {w_i} = \ text {argmax} _ {w \ in \ text {dict} (w_i)} \ text {cos} (v_ {w_i} + h_i, v_w) \)

, где \ (\ text {dict} (w_i) \) содержит переводы \ (w_i \).

Затем они вместе учатся предсказывать как слова, так и их соответствующие переводы. Они используют PanLex как двуязычный словарь, который охватывает около 1300 языков с около 12 миллионами выражений. Следовательно, переводы выполняются очень широко, но часто с большим количеством шума.

Многоязычный кластер

Ammar et al. (2016) предлагают другой подход, аналогичный предыдущему методу Gouws и Søgaard (2015): они используют двуязычные словари для поиска кластеров синонимичных слов на разных языках.Затем они объединяют одноязычные корпуса разных языков и заменяют токены в одном кластере с идентификатором кластера. Затем они обучают SGNS на конкатенированном корпусе.

Объединение и перемешивание документов

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

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

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

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

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

Двуязычная композиционная модель предложения

Первым подходом, который оптимизирует только межъязыковую задачу, является двуязычная композиционная модель предложения Германа и Блансома. Они обучают две модели для создания представлений предложений выровненных предложений на двух языках и используют расстояние между двумя представлениями предложений как объективное.2 \)

, где \ (a _ {\ text {root}} \) и \ (b _ {\ text {root}} \) представляют собой представления двух выровненных предложений из разных языков. Они составляют \ (a _ {\ text {root}} \) и \ (b _ {\ text {root}} \) просто как сумму вложений слов в соответствующее предложение. Полная модель изображена на Рисунке 8.

Рисунок 8: Модель двуязычного композиционного предложения (Герман и Блансом, 2013)

Затем они обучают модель, чтобы вывести более высокий балл за правильные переводы, чем за случайно выбранные неправильные переводы, используя потерю шарнира максимального поля Коллоберта и др.(2008).

Двуязычный автокодер набора слов

Вместо того, чтобы минимизировать расстояние между двумя представлениями предложений на разных языках, Lauly et al. стремятся восстановить целевое предложение из исходного исходного предложения. Они начинают с одноязычного автоэнкодера, который кодирует входное предложение как сумму вложенных слов и пытается восстановить исходное исходное предложение. Для эффективной реконструкции они выбирают древовидный декодер, аналогичный иерархическому softmax.Затем они дополняют этот автоэнкодер вторым декодером, который восстанавливает выровненное целевое предложение из представления исходного предложения, как показано на рисунке 9.

Рисунок 9: Двуязычный автокодер (Lauly et al., 2013)

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

Распределенное выравнивание слов

В то время как предыдущие подходы требовали выравнивания слов в качестве предварительного условия для изучения кросс-языковых встраиваний, Kočiský et al. одновременно изучайте вложения и выравнивания слов. Их модель, Распределенное выравнивание слов, объединяет распределенную версию FastAlign (Дайер и др.) С языковой моделью. Подобно другим двуязычным подходам, они используют слово в предложении исходного языка выровненной пары предложений, чтобы предсказать слово в предложении целевого языка.Т р_ф - б_ф \)

, где \ (r_ {e_ {i + s}} \) и \ (r_f \) - векторные представления для исходного и целевого слов, \ (T_s \) - матрица проекции, а \ (b_r \) и \ (b_f \) представляют собой предвзятость представления и целевую предвзятость соответственно. Для расчета вероятности перевода \ (p (f | e_i) \) нам просто нужно применить softmax к вероятностям перевода между исходным словом и всеми словами на целевом языке.

Кроме того, авторы ускоряют обучение, используя стратегию факторизации классов, аналогичную иерархической softmax, и предсказывают представления классов на основе частот вместо представлений слов.Для обучения они также используют EM, но фиксируют счетчики выравнивания, полученные FastAlign, которые изначально были обучены для 5 эпох во время E-шага, и оптимизируют вероятности перевода только на M-шаге.

Модель двуязычного композиционного документа

Герман и Блансом распространяют свой подход (Hermann and Blunsom, 2013) на документы, рекурсивно применяя их композицию и целевую функцию для объединения предложений в документы. Сначала, как и раньше, вычисляются представления предложений.Эти представления предложений затем вводятся в композиционную векторную модель на уровне документа, которая интегрирует представления предложений таким же образом, как показано на рисунке 10.

Рисунок 10: Модель двуязычного композиционного документа (Германн и Блансом, 2014)

Преимущество этого метода состоит в том, что более слабый контроль в форме согласования на уровне документа может использоваться вместо или в сочетании с выравниванием на уровне предложений. Авторы проводят эксперименты как на Europarl, так и на недавно созданном корпусе многоязычных выровненных транскрипций выступлений TED и обнаруживают, что сигнал документа значительно помогает.п \ text {tanh} (x_ {i-1} + x_i) \)

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

Автоэнкодер "мешок слов" с корреляцией

Chandar et al. расширить подход Lauly et al. (2013) двумя способами: вместо того, чтобы использовать древовидный декодер для вычисления потерь при реконструкции, они восстанавливают разреженный двоичный вектор вхождений слов, как показано на рисунке 11. Из-за высокой размерности двоичного вектора мешка слов , реконструкция идет медленнее.Поскольку они выполняют обучение с использованием мини-пакетного градиентного спуска, где каждый мини-пакет состоит из смежных предложений, они предлагают объединить пакеты слов из мини-пакета в один пакет слов и выполнить обновления на основе объединенный мешок слов. Они обнаружили, что это дает хорошую производительность и даже превосходит древовидный декодер.

Рисунок 11: Двуязычный автокодер с ошибкой двоичной реконструкции (Chandar et al., 2014)

Во-вторых, они предлагают добавить член \ (cor (a (x), a (y)) \) к целевой функции, которая способствует корреляции между представлениями \ (a (x) \), \ (a (y) \) исходного и целевого языков соответственно путем суммирования скалярных корреляций между всеми измерениями двух векторов.

Двуязычные векторные абзацы

Подобно предыдущим методам, Pham et al. изучите представления предложений как средство изучения кросс-языковых встраиваний слов. Они расширяют векторы абзацев (Миколов и др.) До многоязычной среды, заставляя выровненные предложения на разных языках совместно использовать одно и то же векторное представление, как на рисунке 12, где \ (sent \) - это общее представление предложения. Общее представление предложения объединяется с суммой предыдущих \ (N \) слов в предложении, и модель обучается предсказывать следующее слово в предложении.

Рис. 12. Двуязычные векторы абзацев (Pham et al., 2015)

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

Трансляционно-инвариантный LSA

Помимо моделей встраивания слов, таких как скип-грамма, исторически успешно использовались подходы матричной факторизации для изучения представлений слов.Один из самых популярных методов - LSA, который Gardner et al. расширять как инвариантный к переводу LSA, чтобы изучать кросс-языковые вложения слов. Они факторируют многоязычную матрицу совместной встречаемости с ограничением, что она должна быть инвариантной для перевода, то есть она должна оставаться такой же, если умножается на соответствующее слово или контекстный словарь.

Инвертированная индексация в Википедии

Все предыдущие подходы к изучению кросс-языковых представлений были основаны на той или иной форме языковой модели или матричной факторизации.Напротив, Søgaard et al. предлагают подход, который обходится без любого из этих методов, но вместо этого полагается на структуру многоязычной базы знаний Wikipedia, которую они используют путем инвертированной индексации. Их метод основан на интуиции, что похожие слова будут использоваться для описания одних и тех же концепций на разных языках.

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

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

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

На практике для двух языков \ (l_1 \) и \ (l_2 \) эти модели оптимизируют одноязычные потери \ (\ mathcal {M} \) для каждого языка и одного или нескольких терминов \ (\ Omega \), которые упорядочивают перевод с языка \ (l_1 \) на \ (l_2 \) (и наоборот):

\ (\ mathcal {M} _ {l_1} + \ mathcal {M} _ {l_2} + \ lambda (\ Omega_ {l_1 \ rightarrow l_2} + \ Omega_ {l_2 \ rightarrow l_1}) \)

, где \ (\ lambda \) - параметр интерполяции, который регулирует влияние межъязыковой регуляризации.

Многозадачная языковая модель

Первая совместно оптимизированная модель для изучения кросс-языковых представлений была создана Клементьевым и соавт. | w_ {t-n + 1: t-1}) \).T (A \ otimes I) c \)

, где \ (A \) - матрица, фиксирующая оценки выравнивания, \ (I \) - единичная матрица, \ (\ otimes \) - произведение Кронекера, а \ (c \) - представление слова \ (w_t \ ).

Факторизация двуязычной матрицы

Zou et al. используйте подход матричной факторизации в духе GloVe (Pennington et al.), чтобы изучить кросс-языковые представления слов для английского и китайского языков. Они создают две матрицы выравнивания \ (A_ {en \ rightarrow zh} \) и \ (A_ {zh \ rightarrow en} \), используя счетчики выравнивания, автоматически полученные из китайского корпуса Gigaword.В \ (A_ {en \ rightarrow zh} \) каждый элемент \ (a_ {ij} \) содержит, сколько раз \ (i \) -е китайское слово было выровнено с \ (j \) -м английским. слово, где каждая строка нормализована до суммы \ (1 \).
Интуитивно понятно, что если слово на исходном языке выровнено только с одним словом на целевом языке, то эти слова должны иметь такое же представление. Если целевое слово выровнено более чем с одним исходным словом, его представление должно быть комбинацией представлений его выровненных слов.2 \)

, где \ (V_ {en} \) и \ (V_ {zh} \) - матрицы вложения английских и китайских слов, соответственно.

Они используют цель по максимальным потерям на шарнирах Коллоберта и др. (2008) как одноязычная цель \ (\ mathcal {M} \) и обучить английскому и китайскому вложениям слов минимизировать соответствующую цель, указанную выше, вместе с одноязычной целью. Например, для английского языка цель обучения:

\ (\ mathcal {M} _ {en} + \ lambda \ Omega_ {zh \ rightarrow en} \).

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

Двуязычный скип-грамм

Luong et al. в свою очередь, расширите скип-грамм на межъязыковую настройку и используйте скип-граммовые объективы как одноязычные и межъязыковые. Вместо того, чтобы просто прогнозировать окружающие слова на исходном языке, они используют слова на исходном языке для дополнительного прогнозирования своих выровненных слов на целевом языке, как показано на рисунке 13.

Рисунок 13: Двуязычная скип-грамма (Луонг и др., 2015)

Для этого им требуется информация о выравнивании слов. Они предлагают два способа прогнозирования совпадающих слов: в своем первом методе они автоматически изучают информацию о выравнивании; если слово не выровнено, выравнивание его соседей используется для предсказания. Во втором методе они предполагают, что слова в исходном и целевом предложении монотонно выровнены, причем каждое исходное слово в позиции \ (i \) выравнивается по целевому слову в позиции \ (i \ cdot T / S \), где \ (S \) и \ (T \) - длина исходного и целевого предложения.Они обнаруживают, что простое монотонное выравнивание сравнимо с выученным без учителя выравниванием в исполнении.

Двуязычный набор слов без выравнивания слов

Gouws et al. предложить Двуязычный набор слов без выравнивания слов (BilBOWA), который использует дополнительные одноязычные данные. Они используют цель пропуска грамм в качестве одноязычной цели и новую выборку потерь \ (l_2 \) в качестве межъязыкового регуляризатора, как показано на рисунке 14.

Рисунок 14: Модель BilBOWA (Gouws et al.{l_2} \) длины \ (m \) и \ (n \) в языках \ (l_1 \) и \ (l_2 \) соответственно.

Двуязычная скипграмма без выравнивания слов

Другое расширение skip-граммы для изучения межъязыковых представлений предложено Coulmance et al. . Они также используют обычный объектив с пропуском грамматики как одноязычный. Для кросс-языковой цели они делают такое же предположение, что и Gouws et al. (2015), предполагая, что каждое слово в исходном предложении равномерно выровнено с каждым словом в целевом предложении.

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

\ (\ Omega_ {e, f} = \ sum \ limits _ {(s_ {l_1}, s_ {l_2}) \ in C_ {l_1, l_2}} \ sum \ limits_ {w_ {l_1} \ in s_ {l_1 }} \ sum \ limits_ {c_ {l_2} \ in s_ {l_2}} - \ text {log} \ sigma (w_ {l_1}, c_ {l_2}) \)

, где \ (s \) - предложение на соответствующем языке, \ (C \) - выровненный по предложению корпус, \ (w \) - слово и \ (c \) - представления контекста соответственно, а \ (- \ text {log} \ sigma (\ centerdot) \) - это стандартная функция потерь пропуска грамм.

Рисунок 16: Модель трансграммы (Coulmance et al., 2015)

Поскольку кросс-язычная цель асимметрична, они используют одну кросс-языковую цель для источника-цель, а другую - для цели-источника. направление. Полный объектив Trans-грамм, включая два одноязычных и два кросс-язычных объектива skip-грамм, показан на Рисунке 16.

Факторизация совместной матрицы

Shi et al. использовать модель совместной матричной факторизации для изучения кросс-языковых представлений.{l_i} \) - это термины смещения, связанные со словом и языком, соответственно.

Рисунок 17: Изучение кросс-языковых представлений слов с помощью матричной факторизации (Shi et al., 2015)

Затем они накладывают межъязыковые ограничения на одноязычные представления, как показано на рисунке 17. Авторы предлагают две цели кросс-языковой регуляризации: Первый основан на подсчете количества совпадений между языками. Эти совпадения могут быть рассчитаны без информации о сопоставлении с использованием модели однородного сопоставления, как в Gouws et al.2 \)

где \ (j \) и \ (k \) - слова на исходном и целевом языках соответственно, а \ (sim (j, k) \) - вероятность их перевода.

Двуязычные редкие представления

Вьяс и Карпуат предлагают другой метод, основанный на матричной факторизации, который - в отличие от предыдущих подходов - позволяет изучать разреженные межъязыковые представления. Сначала они независимо тренируют два одноязычных представления слов \ (X_e \) и \ (X_f \) на двух разных языках с помощью GloVe (Pennington et al.2 \)

, где \ (S \) - матрица выравнивания, где каждая запись \ (S_ {ij} \) содержит оценку выравнивания исходного слова \ (X_ {l_1i} \) с целевым словом \ (X_ {l_2j} \).

Таким образом, полная целевая функция имеет следующий вид:

\ (\ mathcal {M} _ {l_1} + \ mathcal {M} _ {l_2} + \ Omega \).

Двуязычные векторы абзацев (без параллельных данных)

Mogadala и Rettinger используют подход, аналогичный Pham et al. (2015), но расширили его для работы без параллельных данных.Они используют цель векторов абзаца как одноязычную цель \ (\ mathcal {M} \). Они совместно оптимизируют эту цель вместе с функцией межъязыковой регуляризации \ (\ Omega \), которая поощряет представления слов в языках \ (l_1 \) и \ (l_2 \) быть близкими друг к другу.

Их главное нововведение заключается в том, что межъязыковой регуляризатор \ (\ Omega \) настраивается в зависимости от характера обучающего корпуса. В дополнение к регуляризации среднего векторов слов в предложении, чтобы оно было близко к среднему значению векторов слов в выровненном предложении, подобно Gouws et al.{l_2} \) - это вложения слова \ (w_i \) и \ (w_k \) в каждое предложение \ (s_j \) длины \ (m \) и \ (n \) в языках \ (l_1 \) и \ (l_2 \) соответственно.

Чтобы использовать данные, которые не выровнены по предложениям, но где выравнивание все еще присутствует на уровне документа, они предлагают двухэтапный подход: они используют анализ Прокруста, метод статистического анализа формы, чтобы найти для каждого документа на языке \ (l_1 \) наиболее похожий документ на языке \ (l_2 \). Это делается путем изучения одноязычных представлений документов на каждом языке с использованием векторов абзацев в каждом корпусе.Впоследствии анализ Прокруста направлен на изучение преобразования между двумя векторными пространствами путем перевода, поворота и масштабирования вложений в первом пространстве до тех пор, пока они не будут наиболее точно совпадать с представлениями документа во втором пространстве.
На втором этапе они просто используют ранее описанный метод для изучения кросс-языковых представлений слов из документов выравнивания, на этот раз обрабатывая все документы как абзацы.

Недавняя ветвь исследований предлагает включить визуальную информацию для улучшения одноязычных или межъязыковых представлений.Эти методы показывают хорошую производительность на задачах сравнения. Они дополнительно демонстрируют применение для обучения с нулевым выстрелом и, таким образом, могут в конечном итоге быть полезными при изучении кросс-языковых представлений без (лингвистических) параллельных данных.

Функциональное моделирование

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

Порядок слов

Во-вторых, из-за зависимости от представления набора слов, текущие модели изучения кросс-языковых встраиваний слов полностью игнорируют порядок слов. Модели, которые не обращают внимания на порядок слов, например, присваивают следующей паре предложений (Ландауэр и Дюмэ) точно такое же представление, поскольку они содержат один и тот же набор слов, даже если они полностью различаются по значению:

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

Композиционность

Большинство подходов к изучению межъязычных представлений сосредоточены на представлениях слов. Эти подходы не позволяют легко составлять представления слов для формирования представлений предложений и документов. Даже подходы, которые учатся совместно, изучают представления слов и предложений, делая это путем простого суммирования слов в предложении.В будущем будет интересно посмотреть, могут ли LSTM или CNN, которые могут формировать более составные представления предложений, эффективно применяться для изучения кросс-языковых представлений.

Полисемия

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

Осуществимость

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

Изучив модели для изучения кросс-языковых представлений слов, мы теперь хотели бы знать, какой метод лучше всего использовать для решения стоящей перед нами задачи. Модели межъязыкового представления были оценены для широкого круга задач, таких как межъязыковая классификация документов (CLDC), машинный перевод (MT), сходство слов, а также межъязыковые вариации следующих задач: распознавание именованных сущностей, тегирование части речи, сверхсмысловое тегирование, синтаксический анализ зависимостей и индукция по словарю.
В контексте оценочной схемы CLDC Клементьевым и др. (2012) \ (40 \) - многомерные кросс-языковые вложения слов изучаются для классификации документов на одном языке и оцениваются на документах на другом языке. Поскольку CLDC является одним из наиболее широко используемых, ниже мы приводим в качестве примера оценочную таблицу Mogadala and Rettinger (2016) для этой задачи:

Эти результаты, однако, не следует рассматривать как репрезентативные для общей производительности кросс-языковых моделей встраивания, поскольку разные методы имеют тенденцию хорошо справляться с разными задачами в зависимости от типа подхода и типа используемых данных.
Upadhyay et al. оценить кросс-языковые модели встраивания, которые требуют различных форм контроля над различными задачами. Они обнаружили, что в наборах данных о сходстве слов модели, требующие более дешевых форм контроля (данные с выравниванием по предложениям и документам), почти так же хороши, как модели с более дорогостоящим надзором в форме выравнивания слов. Для межъязыковой классификации и индукции по словарю лучше подойдет более информативный супервизор. Наконец, для синтаксического анализа модели с выравниванием на уровне слов могут более точно улавливать синтаксис и, таким образом, работать лучше в целом.

Выводы Upadhyay et al. являются еще одним доказательством интуиции, что выбор данных важен. Леви и др. (2016) пошли еще дальше, сравнивая модели для изучения кросс-языковых представлений слов с традиционными моделями выравнивания в задачах индукции словаря и выравнивания слов. Они утверждают, что использование в алгоритме определенного набора функций более важно, чем выбор алгоритма. В их экспериментах использование идентификаторов предложений, то есть создание независимого от языка представления предложения (например, с помощью doc2vec), дает лучшие результаты, чем просто использование исходного и целевого слов.

Наконец, чтобы облегчить оценку кросс-языковых встраиваний слов, Ammar et al. (2016) сделали доступным веб-сайт, на котором можно загружать изученные представления и автоматически оценивать широкий круг задач.

Модели, которые позволяют нам изучать кросс-языковые представления, уже были полезны в различных задачах, таких как машинный перевод (декодирование и оценка), автоматическое создание двуязычных словарей, кросс-языковой поиск информации, параллельное извлечение и генерация корпуса, а также обнаружение межъязыкового плагиата.Будет интересно посмотреть, какой прогресс принесет будущее.

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

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

Если вы нашли это полезным, рассмотрите возможность цитирования соответствующей статьи arXiv как:
Себастьян Рудер (2017). Обзор кросс-языковых моделей вложения. Препринт arXiv arXiv: 1706.04902.

Если вы хотите узнать больше о встраивании слов, также доступны эти другие сообщения в блоге о встраивании слов:

Изображение на обложке любезно предоставлено Zou et al. (2013)

models.word2vec - Вложения Word2vec - gensim

  • предложение ( итераций , необязательно ) - предложений итерабельность может быть просто списком списков токенов, но для более крупных корпусов, рассмотрим итерацию, которая передает предложения прямо с диска / сети.См. BrownCorpus , Text8Corpus или LineSentence в модуле word2vec для таких примеров. См. Также руководство по потоковой передаче данных в Python. Если вы не предоставите предложений , модель останется неинициализированной - используйте, если вы планируете ее инициализировать. каким-то другим способом.

  • corpus_file ( str , необязательно ) - Путь к файлу корпуса в формате LineSentence . Вы можете использовать этот аргумент вместо предложений , чтобы повысить производительность.Только одно из предложений или corpus_file Необходимо передать аргументов (или ни одного из них, в этом случае модель остается неинициализированной).

  • vector_size ( int , необязательно ) - Размерность векторов слов.

  • окно ( int , необязательно ) - Максимальное расстояние между текущим и предсказанным словом в предложении.

  • min_count ( int , необязательно ) - игнорирует все слова с общей частотой ниже этой.

  • worker ( int , необязательно ) - используйте это множество рабочих потоков для обучения модели (= более быстрое обучение на многоядерных машинах).

  • sg ( {0 , 1} , опционально ) - Алгоритм обучения: 1 для скип-грамма; в противном случае CBOW.

  • hs ( {0 , 1} , необязательно ) - Если 1, для обучения модели будет использоваться иерархический softmax.Если 0 и отрицательное значение не равно нулю, будет использоваться отрицательная выборка.

  • отрицательный ( int , необязательно ) - если> 0, будет использоваться отрицательная выборка, int для отрицательного указывает, сколько «шумовых слов» должны быть нарисованы (обычно между 5-20). Если установлено значение 0, отрицательная выборка не используется.

  • ns_exponent ( float , необязательно ) - показатель степени, используемый для формирования отрицательного распределения выборки.Значение 1,0 отсчетов точно пропорционально к частотам, 0,0 выбирает все слова одинаково, в то время как отрицательное значение выбирает более низкочастотные слова чем часто встречающиеся слова. Популярное значение по умолчанию 0,75 было выбрано в оригинальной статье Word2Vec. Совсем недавно в https://arxiv.org/abs/1804.04212 Казель-Дюпре, Лесен и Ройо-Летелье предложили другие значения могут работать лучше для рекомендательных приложений.

  • cbow_mean ( {0 , 1} , необязательно ) - Если 0, используйте сумму векторов контекстных слов.Если 1, используйте среднее значение, применяется только при использовании cbow.

  • alpha ( float , опционально ) - Начальная скорость обучения.

  • min_alpha ( float , необязательно ) - Скорость обучения будет линейно снижаться до min_alpha по мере обучения.

  • seed ( int , опционально ) - Seed для генератора случайных чисел.Начальные векторы для каждого слова засеваются хешем соединение слова + str (seed) . Обратите внимание, что для полностью детерминированно воспроизводимого цикла вы также должны ограничить модель одним рабочим потоком ( рабочих = 1 ), чтобы устранить дрожание порядка из планирования потоков ОС. (В Python 3 воспроизводимость между запусками интерпретатора также требует использование переменной среды PYTHONHASHSEED для управления рандомизацией хэша).

  • max_vocab_size ( int , опционально ) - ограничивает оперативную память при построении словарного запаса; если есть более уникальные слова, чем это, затем удалите редко встречающиеся.На каждые 10 миллионов типов слов требуется около 1 ГБ ОЗУ. Установите значение None без ограничения.

  • max_final_vocab ( int , необязательно ) - ограничивает словарь до целевого размера словаря путем автоматического выбора соответствующего min_count. Если указанный min_count больше, чем вычисленное min_count, будет использоваться указанный min_count. Установите Нет , если не требуется.

  • образец ( с плавающей запятой , необязательно ) - порог для настройки того, какие высокочастотные слова будут случайным образом субдискретизированы, полезный диапазон (0, 1e-5).

  • hashfxn (функция , опционально ) - функция хеширования, используемая для случайной инициализации весов для повышения воспроизводимости обучения.

  • эпох ( int , необязательно ) - количество итераций (эпох) в корпусе. (Ранее: iter )

  • trim_rule ( функция , необязательно ) -

    Правило обрезки словарного запаса, определяет, должны ли определенные слова оставаться в словаре, быть обрезанным или обработанным с использованием значения по умолчанию (отбросить, если количество слов keep_vocab_item () ), или вызываемый объект, который принимает параметры (word, count, min_count) и возвращает либо gensim.utils.RULE_DISCARD , gensim.utils.RULE_KEEP или gensim.utils.RULE_DEFAULT . Правило, если оно задано, используется только для сокращения словарного запаса во время build_vocab () и не сохраняется как часть модель.

    Входные параметры бывают следующих типов:
    • слово (str) - слово, которое мы исследуем

    • count (int) - количество слов в корпусе

    • min_count (int) - минимальный порог счета.

  • sorted_vocab ( {0 , 1} , необязательно ) - Если 1, отсортируйте словарь по убыванию частоты перед присвоением индексов слов. См. sort_by_descending_frequency () .

  • batch_words ( int , необязательно ) - Целевой размер (прописью) для пакетов примеров, передаваемых рабочим потокам (и таким образом подпрограммы cython).(Большие партии будут переданы, если отдельные тексты длиннее 10000 слов, но стандартный код Cython усекает до этого максимума.)

  • compute_loss ( bool , необязательно ) - если True, вычисляет и сохраняет значение потерь, которое можно получить с помощью get_latest_training_loss () .

  • обратные вызовы (повторяется из CallbackAny2Vec , необязательно) - Последовательность обратных вызовов, которые должны выполняться на определенных этапах во время обучения.

  • shrink_windows ( bool , опционально ) - Новое в 4.1. Экспериментальный. Если True, эффективный размер окна равномерно выбирается из [1, window ]. для каждого целевого слова во время обучения, чтобы соответствовать исходному алгоритму word2vec приблизительное взвешивание контекстных слов по расстоянию. В противном случае эффективный размер окна всегда фиксируется на , окно слов с каждой стороны.

  • моделей встраивания слов и цифровая анатомия раннего Нового времени

    Частично поддержан грантом NULab Seedling Grant.

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

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

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

    Главный исследователь
    Джейкоб Мурель, аспирант, английский

    Презентации и публикации

    «Создание корпуса ранних современных медицинских текстов для моделей встраивания слов», Конференция по цифровым гуманитарным наукам в Коннектикуте, февраль 2021 г.

    «Множественные временные особенности Храма Джорджа Герберта», George Herbert Journal, vol.40, нет. 1/2, осень 2016 г. / весна 2017 г., стр. 41–58

    «На полных и половинных вкладках из De humani corporis fabrica Андреаса Везалия (1543 и 1555)», Papers of the Bibliographic Society of America, vol. 115, нет. 1, март 2021 г., стр. 43-65

    «Поэтическая структура и временной опыт вовремя», Milton Quarterly, vol. 53, нет. 1, март 2019, стр. 34-42

    «Печать, власть и счета смертности в Лондоне семнадцатого века», семнадцатый век, октябрь 2020 г., стр.25, DOI: https://doi.org/10.1080/0268117X.2020.1824345

    векторов слов для 157 языков · fastText

    Мы распространяем предварительно обученные векторы слов для 157 языков, обученные на Common Crawl и Wikipedia с использованием fastText. Эти модели были обучены с использованием CBOW с позиционными весами в размерности 300, с символьными n-граммами длиной 5, окном размера 5 и 10 негативами. Мы также распространяем три новых набора данных аналогий для французского, хинди и польского языков.

    Скачать напрямую из командной строки или из python

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

      $ ./download_model.py en 
    Скачивание https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.bin.gz
    (19,78%) [======== =>]

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

      $./ fasttext nn cc.en.300.bin 10 
    Слово запроса?
      >>> import fasttext.util 
    >>> fasttext.util.download_model ('en', if_exists = 'ignore')
    >>> ft = fasttext.load_model ('cc.en.300.bin')

    Согласовать размер

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

    Например, чтобы получить векторы размерности 100:

      $ ./reduce_model.py cc.en.300.bin 100 
    Загрузка модели
    Уменьшение размеров матрицы
    Сохранение модели
    cc.en.100.bin сохранено

    Затем вы можете использовать файл модели cc.en.100.bin как обычно.

      >>> import fasttext 
    >>> import fasttext.util
    >>> ft = fasttext.load_model ('cc.en.300.bin')
    >>> ft.get_dimension ()
    300
    >>> быстрый текст.util.reduce_model (футы, 100)
    >>> ft.get_dimension ()
    100

    Затем вы можете использовать объект модели футов как обычно:

      >>> ft.get_word_vector ('hello'). Shape 
    (100,)
    >>> ft.get_nearest_neighbors ('hello')
    [(0.775576114654541, u'heyyyy '), (0.768629, u'hellow' ), (0.7663413286209106, u'hello- '), (0.7579624056816101, u'heyyyyy'), (0.7495524287223816, u'hullo '), (0.7473770380020142, u'.hello'), (0.74072609253, u'Hiiiii '), (0.74026167371, u'hellooo), (0.7399682402610779, u'hello.), (0.7396857738494873, u'Heyyyyy')]

    или сохраните для дальнейшего использования:

      >>> ft.save_model ('cc.en.100.bin') 

    Формат

    Векторы слов доступны как в двоичном, так и в текстовом форматах.

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

      $ ./fasttext print-word-vectors wiki.it.300.bin  

    , где файл oov_words.txt содержит слова вне словарного запаса.

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

      импорт io
    
    def load_vectors (имя_файлы):
        fin = io.open (fname, 'r', encoding = 'utf-8', newline = '\ n', errors = 'ignore')
        n, d = map (int, fin.readline (). split ())
        data = {}
        для линии в плавнике:
            токены = line.rstrip (). split ('')
            данные [токены [0]] = карта (с плавающей точкой, токены [1:])
        вернуть данные
      

    Токенизация

    Мы использовали Stanford word segmenter для китайского, Mecab для японского и UETsegmenter для вьетнамского. Для языков, использующих латиницу, кириллицу, иврит или греческий алфавит, мы использовали токенизатор из инструментов предварительной обработки Europarl . Для остальных языков мы использовали токенизатор ICU.

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

    Лицензия

    Словесные векторы распространяются по лицензии Creative Commons Attribution-Share-Alike License 3.0 .

    Список литературы

    Если вы используете эти слова-векторы, процитируйте, пожалуйста, следующую статью:

    E. Grave *, P. Bojanowski *, P. Gupta, A. Joulin, T. Mikolov, Изучение векторов слов для 157 языков

      @inproceedings {grave2018learning,
      title = {Изучение векторных слов для 157 языков},
      author = {Граве, Эдуард и Бояновски, Петр и Гупта, Прахар и Жулен, Арман и Миколов, Томас},
      booktitle = {Труды Международной конференции по языковым ресурсам и оценке (LREC 2018)},
      год = {2018}
    }
      

    Наборы оценочных данных

    Наборы данных для оценки аналогий, описанные в документе, доступны здесь: французский, хинди, польский.

    Модели

    Модели можно скачать по адресу:

    90 202

    Анализ и оценка языковых моделей для устранения неоднозначности слов | Вычислительная лингвистика

    Кучность
    Африкаанс: bin, текст Албанский: bin, текст Alemannic: bin, текст
    Амхарский: bin, текст Арабский: 9019: bin bin, текст
    Армянский: bin, текст Ассамский: bin, текст Астурийский: bin, текст
    Азербайджанский: bin, текст Башкирский: bin, текст Баскский: bin, текст
    Баварский: корзина, текст Белорусский: корзина, текст Бенгальский: корзина, текст
    Бихари: корзина, текст Бишнуприя Манипури: корзина, текст Боснийский: корзина, текст Бретонский: корзина, текст Болгарский: корзина, текст Бирманский: корзина, текст
    Каталонский: корзина, текст Кебуано: корзина, текст Центральный Биколано: корзина, текст
    Чеченский: bin, текст Китайский: bin, текст Чувашский: bin, текст
    Корсиканский: bin, текст Хорватский: bin, текст Чешский: bin, текст
    датский : bin, text Divehi: bin, text Dutch: bin, text
    Eastern Punjabi: bin, text Египетский арабский: bin, текст Emilian-Romagnol: bin, text
    English : bin, текст эрзянский: bin, текст эсперанто: bin, текст
    эстонский: bin, текст фиджи хинди: bin, текст финский: bin, текст
    французский: bin, текст Галисийский: bin, текст Грузинский: bin, текст
    Немецкий: bin, текст Goan Konkani: bin, текст Греческий: bin, текст
    Gujarati: bin, text Гаитянский: bin, te xt Иврит: bin, текст
    Hill Mari: bin, текст Хинди: bin, текст Венгерский: bin, текст
    Исландский: bin, текст Ido: bin, текст Илокано: bin, текст
    индонезийский: bin, текст Interlingua: bin, текст ирландский: bin, текст
    итальянский: bin, текст японский: bin, текст яванский: bin, текст
    Каннада: бин, текст Капампанган: бин, текст Казахский: бин, текст
    Кхмерский: бин, текст Киргизский: бин, текст Корейский: бин, текст
    Курдский (курманджи): бин, текст Курдский (сорани): бин, текст Латинский: бин, текст
    латышский: бин, текст лимбургский: бин, текст литовский: бин, текст
    Лом бард: bin, текст Нижний саксонский: bin, текст Люксембургский: bin, текст
    Македонский: bin, текст Maithili: bin, text Малагасийский: bin, текст
    Малайский: bin , текст Малаялам: корзина, текст Мальтийский: корзина, текст
    Манкс: корзина, текст Маратхи: корзина, текст Мазандарани: корзина, текст
    Медоу Мари: корзина, текст Minangkabau: bin, text Mingrelian: bin, text
    Mirandese: bin, text Mongolian: bin, text Nahuatl: bin, text
    Neapolitan: , текст , текст Newar: bin, текст
    North Frisian: bin, text North Sotho: bin, text Norwegian (Bokmål): bin, text
    Norwegian (Nynorsk): bin, text O ccitan: bin, text Oriya: bin, text
    Ossetian: bin, text Palatinate German: bin, text Pashto: bin, text
    Persian: bin, text Piedmontese: bin , текст Польский: bin, текст
    Португальский: bin, текст Quechua: bin, текст Румынский: bin, текст
    Romansh: bin, текст Русский: bin, текст Саха: bin, текст
    санскрит: bin, текст сардинский: bin, текст шотландский: bin, текст
    шотландский гэльский: bin, текст сербский: bin, текст сербо-хорватский : bin, текст
    сицилийский: bin, текст синдхи: bin, текст сингальский: bin, текст
    словацкий: bin, текст словенский: bin, текст сомалийский: bin, текст
    Южно-азербайджанский: бин, текст Испанский: бин, текст Суданский: бин, текст
    Суахили: бин, текст Шведский: бин, текст Тагальский: бин, текст
    таджикский : bin, текст тамильский: bin, текст татарский: bin, текст
    телугу: bin, текст тайский: bin, текст тибетский: bin, текст
    турецкий: bin, текст Туркменский: bin, текст Украинский: bin, текст
    Верхний сербский: bin, текст Урду: bin, текст Уйгурский: bin, текст
    Узбекский: bin, текст Венецианский : bin, текст вьетнамский: bin, текст
    Volapük: bin, текст Walloon: bin, text Waray: bin, text
    Welsh: bin, текст West Flemish: bin, текст Запад Фризский: bin, текст
    Western Punjabi: bin, text Идиш: bin, текст Yoruba: bin, текст
    Zazaki: bin, текст Zeelandic: bin, текст
    Кран Кран 1 Кран (машина) Кран - это тип машины, обычно оснащенный подъемным канатом, тросами или цепями и шкивами, которые могут использоваться как поднимать и опускать материалы и перемещать их по горизонтали. Спуск и подъем осуществляется с помощью судового крана.
    журавль 2 журавль (птица) Журавли - это семейство крупных, длинноногих и длинношеих птиц из группы Gruiformes, Gruidae. В Тибете обитают волки, дикие ослы, журавли, грифы, ястребы, гуси, змеи и буйволы.
    Ява ​​ java 1 java Ява - остров Индонезии, омывается Индийским океаном на юге и Явским морем на севере. В Индонезии только суматра, борнео и папуа крупнее по территории, и только ява и суматра имеют более крупные популяции.
    java 2 java (язык программирования) Java - это язык программирования общего назначения, основанный на классах, объектно-ориентированный и разработанный так, чтобы иметь как можно меньше зависимостей реализации. примеров включают языки программирования perl, java и lua.
    Apple яблоко 1 яблоко вкл. Apple Inc. - американская многонациональная технологическая компания со штаб-квартирой в Купертино, Калифорния, которая проектирует, разрабатывает и продает бытовую электронику, компьютерное программное обеспечение и онлайн-услуги. shopify 13 мая 2010 года выпустила бесплатное мобильное приложение в магазине приложений для яблок.
    яблоко 2 яблоко Яблоко - это съедобный фрукт, произведенный яблоней. Имеются вишневые, яблоневые, грушевые, персиковые и абрикосовые деревья.
    Крот Крот 1 Крот (животное) Кроты - это мелкие млекопитающие, приспособленные к подземному образу жизни (т. Е. Окаменелому). его основная добыча состоит из мышей, крысы, белки, бурундука, землеройки, крота и кроликов.
    крот 2 крот (шпионаж) На шпионском жаргоне крот - это давний шпион, которого вербуют до того, как получить доступ к секретной разведке, и впоследствии ему удается попасть в целевую организацию. Филипп встречает Клаудию, где она говорит ему, что на ФБР работает крот.
    моль 3 моль (единица) Моль (символ: моль) - это единица измерения количества вещества в Международной системе единиц (СИ). , поэтому удельная теплоемкость классического твердого тела всегда равна 3k на атом, или, в химических единицах, 3r на моль атомов.
    моль 4 моль соус Моль - это традиционный маринад и соус, изначально использовавшийся в мексиканской кухне. Подаются такие продукты, как пирожные, курица с родинкой, горячий шоколад, кофе и атоле.
    моль 5 моль (архитектура) Крот - это массивная конструкция, обычно из камня, используемая в качестве пирса, волнолома или дамбы между местами, разделенными водой. острова Помг и Ратонно соединены кротом, построенным в 1822 году.
    Родник родник 1 родник (гидрология) Родник - это точка, в которой вода течет из водоносного горизонта. к поверхности Земли.Это компонент гидросферы. село славилось своими источниками минеральной воды, используемой для лечения в санаториях, в том числе источниками боярышника и лития.
    весна 2 весна (сезон) Весна, также известная как весна, является одним из четырех сезонов умеренного климата, следующих за зимой и летом. вид наиболее активен весной и в начале лета, хотя его можно увидеть до конца июня.
    пружина 3 пружина (устройство) Пружина - это упругий объект, накапливающий механическую энергию. часто используются пружины для уменьшения люфта механизма.
    Председатель Председатель 1 Председатель Председатель (также председатель, председатель или председатель) является председателем организованной группы, такой как правление, комитет или совещательное собрание. Ган - нынешний заведующий кафедрой экологических наук в Калифорнийском университете в Риверсайд.
    стул 2 стул Один из основных предметов мебели, стул - это разновидность сиденья. типичная западная гостиная может содержать такую ​​мебель, как диван, стул, журнальный столик и книжные полки, электрическую лампу, коврики или другую мебель.
    Капюшон Капюшон 1 Капюшон (комиксы) Худ (настоящее имя Паркер Роббинс) - вымышленный персонаж, суперзлодей и криминальный авторитет, появляющийся в американских комиксах, опубликованных Marvel Comics. капюшон нанял его как часть своей преступной организации, чтобы воспользоваться расколом в сообществе супергероев, вызванным сверхчеловеческим актом регистрации.
    капот 2 капот (автомобиль) Капот (североамериканский английский) или капот (британский язык Содружества, исключая Канаду) - это откидная крышка двигателя транспортных средств, которая обеспечивает доступ в моторный отсек, или багажник (багажник на английском языке) на автомобилях с задним расположением двигателя и некоторых автомобилях со средним расположением двигателя) для обслуживания и ремонта. европейских версий автомобиля также имели воздухозаборник на капоте.
    капюшон 3 капюшон (головной убор) Капюшон - это своего рода головной убор, закрывающий большую часть головы и шеи, а иногда и лицо. В некоторых костюмах для сауны куртка также имеет капюшон для дополнительного удержания тепла тела.
    Тюлень Тюлень 1 Ластоногие Ластоногие, широко известные как тюлени, представляют собой широко распространенную и разнообразную кладу плотоядных, плавноногих и полуводных морских млекопитающих. животные, такие как акула, скат, рыба-вивер, тюлень и медуза, иногда могут представлять опасность.
    печать 2 печать (музыкант) Генри Олусегун Адеола Самуэ (родилась 19 февраля 1963 года), профессионально известная как Сил, - британский певец и автор песен. она была замужем за английской певицей печатью с 2005 по 2012 год.
    печать 3 печать (эмблема) печать - устройство для создания оттиска в воске, глине, бумаге или другом носителе. , в том числе тиснение на бумаге, а также отпечаток таким образом. каждый уровень должен проверить, добавить информацию по мере необходимости и поставить печать или печать, что заявка была рассмотрена и одобрена этой стороной.
    уплотнение 4 уплотнение (механическое) Механическое уплотнение - это устройство, которое помогает соединять системы или механизмы вместе, предотвращая утечку (например, в насосной системе), сдерживая давление или исключая загрязнение. Вообще говоря, стандартные шаровые шарниры переживут герметичные, потому что в конечном итоге уплотнение сломается, что приведет к высыханию и ржавчине соединения.
    Носовая часть Носовая часть 1 Носовая часть (корабельная) Носовая часть - носовая часть корпуса корабля или лодки. форштевень - это самая передняя часть носовой части лодки или корабля и является продолжением самого киля.
    лук 2 лук и стрела Лук и стрела - это система оружия дальнего боя, состоящая из упругого пускового устройства (лук) и снарядов с длинным валом (стрелы). лук и стрела, используемые на войне.
    лук 3 лук (музыка) В музыке лук представляет собой натянутую палку, к которой прикреплены волосы (обычно волосы конского хвоста), покрытые канифолью (для облегчения трения). конский волос используется для щетки, дужки музыкальных инструментов и многого другого.
    Клуб клуб 1 клуб Клуб - это объединение людей, объединенных общим интересом или целью. это неполный список футбольных клубных команд женских ассоциаций со всего мира, отсортированный по конфедерациям.
    клуб 2 ночной клуб Ночной клуб, музыкальный клуб или клуб - это развлекательное заведение и бар, которые обычно работают до поздней ночи. Хотя некоторые из его треков были клубными хитами, успех в чартах был ограничен.
    дубинка 3 дубинка (оружие) дубинка (также известная как дубинка, дубинка, дубинка, дубинка, дубинка, дубинка или ударное оружие) является одним из самых простых видов оружия: короткий посох или палка, обычно сделанная из дерева, использовалась как оружие с доисторических времен. До принятия ружей равнинные индейцы охотились с копьями, луками и стрелами, а также с различными видами дубинок.
    Ствол ствол 1 ствол (ботаника) В ботанике ствол (или штамб) является стволом и главной деревянной осью дерева. его листья отличаются от листьев настоящих пальм и, в отличие от настоящих пальм, не имеют древесного ствола.
    багажник 2 багажник (автомобиль) багажник (североамериканский английский), boot (британский английский), dickey (индийский английский) (также пишется dicky или diggy) или купе (Юго-Восточная Азия) автомобиля - это основное хранилище транспортного средства или грузовой отсек. В отличие от bmw x5, x-coupe имел алюминиевый кузов, открывающийся вниз багажник и две открывающиеся наружу двери.
    туловище 3 туловище (анатомия) Туловище или туловище - это анатомический термин, обозначающий центральную часть оркс-ядра многих тел животных (включая людей), от которой отходят шея и конечности. проекции поверхности основных органов туловища с использованием позвоночника и грудной клетки в качестве основных ориентиров поверхностной анатомии.
    Квадрат квадрат 1 квадрат В геометрии квадрат является правильным четырехугольником, что означает, что у него четыре равные стороны и четыре равных угла (90 градусов или 100-градусный углы или прямые углы). Аналогично, квадрат со всеми сторонами длины имеет периметр и ту же площадь, что и прямоугольник.
    квадрат 2 квадрат (компания) Square Co., Ltd. была японской компанией видеоигр, основанной в сентябре 1986 года Масафуми Миямото. В 2003 году она объединилась с Enix и образовала Square Enix. видеоигра по квадрату, с орбитальным лифтом «a.t.l.a.s. ».
    площадь 3 городская площадь Городская площадь - это открытое общественное пространство, обычно находящееся в центре традиционного города, используемое для общественных собраний. вот неполный список известных скоростных автомагистралей, туннелей, мостов, дорог, проспектов, улиц, полумесяцев, площадей и базаров в Гонконге.
    квадрат 4 квадратное число В математике квадратное число или полный квадрат - это целое число, которое является квадратом целого числа. в математике восемьдесят один - это квадрат 9 и четвертая степень 3.
    Рука рука 1 архитектура руки Рука как таковая сегодня), ранее Advanced RISC Machine, первоначально Acorn RISC Machine, представляет собой семейство архитектур с сокращенным набором команд (RISC) для компьютерных процессоров, настроенных для различных сред. Windows Embedded Compact доступна для архитектур процессоров arm, mips, superh и x86.
    рука 2 рука В анатомии человека рука - это часть верхней конечности между плечевым суставом (плечевым суставом) и локтевым суставом. на теле человека конечность может быть разделена на сегменты, такие как рука и предплечье верхней конечности, а также бедро и нога нижней части тела.
    цифра цифра 1 числовая цифра Числовая цифра - это один символ (например, «2» или «5»), используемый отдельно или в комбинациях (например, «25») , для представления чисел (например, числа 25) в соответствии с некоторыми позиционными системами счисления. он использует цифры 0, 1, 2 и 3 для представления любого действительного числа.
    цифра 2 цифра (анатомия) Палец - одна из нескольких наиболее дистальных частей конечности, например пальцы рук или ног, присутствующих у многих позвоночных. палец - это часть человеческого тела и тип пальца, орган руки человека и других приматов.
    Бас бас 1 бас (гитара) Бас-гитара, электробас или просто бас - это самый низкочастотный член семейства гитар. группа решила продолжить заниматься музыкой после смерти Тирска и пригласила бас-гитариста Рэнди Брэдбери из группы One Hit Wonder.
    бас 2 бас (тип голоса) Бас - это тип классического мужского певческого голоса, имеющий самый низкий вокальный диапазон среди всех типов голоса. он известен своим характерным и неподготовленным басом.
    бас 3 контрабас контрабас, также известный как бас (или по другим названиям), является самым большим и низкочастотным смычковым (или щипковым) струнным инструментом в современном симфоническом оркестре. . его инструментами были бас и туба.
    ярд ярд 1 ярд ярд (сокращение: ярд) - английская единица длины в британской имперской и американской системах измерения, которая включает 3 фута или 36 дюймы. достаточна для охоты на мелкую дичь на дистанциях до 50 ярдов.
    ярд 2 ярд (парусный спорт) Ярд - это лонжерон на мачте, от которого ставятся паруса. Обри улучшает ходовые качества Софи, добавляя более длинную верфь, которая позволяет ему расставлять большой грот.
    Фунт фунт 1 фунт (масса) Фунт или фунт-масса - это единица массы, используемая в имперской системе мер, а также в других системах измерения США. это примерно 16,38 кг (36,11 фунта).
    фунт 2 фунт (валюта) Фунт - это любая из различных денежных единиц в некоторых странах. на английском языке, мальтийская валюта первоначально называлась фунтом, и для многих местных жителей это использование продолжалось.
    Палуба палуба 1 палуба (корабль) Палуба - это постоянное покрытие над отсеком или корпусом корабля. Защитная палуба была толстой и проходила по всей длине корабля.
    палуба 2 палуба (здание) В архитектуре палуба представляет собой плоскую поверхность, способную выдерживать вес, похожую на пол, но обычно сооружаемую на открытом воздухе, часто приподнятую над землей и обычно соединяемую с здание. Обычно это деревянная площадка рядом с пешеходной тропой, которая обеспечивает путешественникам чистое и ровное место для сна.
    Банк банк 1 банк Банк - это финансовое учреждение, которое принимает депозиты от населения и создает депозит до востребования, одновременно предоставляя ссуды. банк, который ссужает игроку деньги после того, как у него есть дом под залог.
    банк 2 банк (география) В географии берег - это земля рядом с водоемом. Первый рынок Сингапура был расположен на южном берегу реки Сингапур.
    Питчер Питчер 1 Питчер В бейсболе питчер - это игрок, который бросает бейсбольный мяч с насыпи питчера в сторону кэтчера, чтобы начать каждую игру, с целью выбить отбивающего. кто пытается либо войти в контакт с поданным мячом, либо нарисовать шаг. Кейси Гаррет Олембергер (родилась 18 марта 1978 г.), итальянский профессиональный бейсбольный питчер.
    кувшин 2 кувшин (контейнер) В американском английском кувшин - это контейнер с носиком, используемый для хранения и разлива жидкостей. Керамика была найдена как погребальный инвентарь, включая кувшин и чашу.

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

    Вложения слов, выученные без учителя, за последние годы добились огромного успеха в многочисленных задачах НЛП.Настолько, что во многих архитектурах NLP они близки к полной замене более традиционных распределительных представлений, таких как функции LSA и кластеры Брауна.

    Достаточно взглянуть на прошлогодние конференции EMNLP и ACL, обе из которых очень сильно сосредоточились на встраивании слов, и недавний пост в коммуникациях ACM, в котором встраивание слов приветствуется как катализатор прорыва НЛП. Но достойны ли они шумихи?

    Этот пост является синопсисом двух блогов, написанных научным сотрудником AYLIEN Себастьяном Рудером.Вы можете просмотреть оригинальные сообщения Себастьяна и другие материалы о машинном обучении, НЛП и глубоком обучении в его блоге .

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

    Затем мы рассмотрим разочаровывающие вложения слов, связав их с литературой по семантике распределения и выделив факторы, которые на самом деле объясняют успех моделей встраивания слов.

    Краткая история вложения слов

    Модели векторного пространства используются в семантике распределения с 1990-х годов. С тех пор мы стали свидетелями разработки числовых моделей, используемых для оценки непрерывных представлений слов, двумя такими примерами являются скрытое распределение Дирихле (LDA) и скрытый семантический анализ (LSA).

    Термин «вложение слов» был первоначально введен Bengio et al. в 2003 году, который обучил их модели нейронного языка вместе с параметрами модели.Однако Коллоберт и Уэстон, возможно, были первыми, кто продемонстрировал силу предварительно обученных встраиваний слов в своей статье 2008 года «Унифицированная архитектура для обработки естественного языка », в которой они устанавливают встраивание слов как высокоэффективный инструмент при использовании в последующих задачах. а также анонсировала архитектуру нейронной сети, на которой были построены многие из сегодняшних подходов. Это был Миколов и др. (2013), однако, которые действительно выдвинули встраивание слов на передний план, создав word2vec, инструментарий, позволяющий обучать и использовать предварительно обученные встраивания.Годом позже Pennington et al. познакомил нас с GloVe, конкурентным набором предварительно обученных встраиваний, предположив, что вложения слов внезапно стали мейнстримом.

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

    Модели встраивания слов

    Естественно, каждая нейронная сеть с прямой связью, которая берет слова из словаря в качестве входных данных и встраивает их как векторы в пространство более низкой размерности, которое затем настраивает посредством обратного распространения, обязательно дает вложения слов в качестве весов первого слоя. , который обычно обозначается как Embedding Layer .

    Рисунок 1: Модель нейронного языка (Bengio et al., 2006)

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

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

    При сравнении моделей мы примем следующие стандарты обозначений: Мы предполагаем, что обучающий корпус содержит последовательность (T) обучающих слов (w_1, w_2, w_3, cdots, w_T), которые принадлежат словарю (V), размер которого ( | V |). Наши модели обычно рассматривают контекст из (n) слов. Мы связываем каждое слово с входным вложением (v_w) (одноименное вложение слова на уровне встраивания) с (d) измерениями и выходным вложением (v'_w) (другое представление слова, роль которого скоро станет яснее).Наконец, мы оптимизируем целевую функцию (J_ heta) с учетом параметров нашей модели (heta), и наша модель выводит некоторую оценку (f_ heta (x)) для каждого входа (x).

    Классическая нейронная языковая модель

    Классическая модель нейронного языка, предложенная Bengio et al. [1] в 2003 году состоит из нейронной сети прямого распространения с одним скрытым слоем, которая предсказывает следующее слово в последовательности, как показано на рисунке 2. T ext {log} пробел f (w_t, w_ {t-1}, cdots, w_ {t-n + 1})).

    (f (w_t, w_ {t-1}, cdots, w_ {t-n + 1})) - результат модели, то есть вероятность (p (w_t: |: w_ {t-1}, cdots , w_ {t-n + 1})) как вычислено softmax, где (n) - количество предыдущих слов, введенных в модель.

    Bengio et al. были одними из первых, кто ввел то, что стало известно как вложение слов, вектор признаков слов с действительными значениями в (mathbb {R}). Основы их модели все еще можно найти в сегодняшних моделях нейронного языка и встраивания слов.Их:

    1. Уровень внедрения : этот уровень генерирует вложения слов путем умножения вектора индекса на матрицу встраивания слов;

    2. Промежуточный уровень (и) : Один или несколько слоев, которые создают промежуточное представление ввода, например полносвязный уровень, который применяет нелинейность к конкатенации вложений слов (n) предыдущих слов;

    3. Уровень Softmax : последний уровень, который производит распределение вероятностей по словам в (V).

    Bengio et al. также определить две проблемы с текущими современными моделями:

    - Первый - это Layer 2 . заменяется LSTM, который используется современными моделями нейронных языков [6], [7].

    - Они также определяют последний слой softmax (точнее: термин нормализации) как основное узкое место сети, поскольку стоимость вычисления softmax пропорциональна количеству слов в (V), которое обычно составляет порядка сотен. тысяч или миллионов.

    Таким образом, открытие методов, снижающих вычислительные затраты, связанные с вычислением softmax в большом словаре [9], является одной из основных задач как нейронных языков, так и моделей встраивания слов.

    C&W модель

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

    В 2008 году Коллоберт и Вестон [4] (таким образом, C&W) продемонстрировали, что вложения слов, обученные на достаточно большом наборе данных, несут синтаксическое и семантическое значение и улучшают производительность последующих задач. {(w)}) скобка).{(w)}) заменой центрального слова (x) другим словом (w) из (V). Их цель теперь максимизировать расстояние между оценками, выведенными моделью для правильного и неправильного окна, с запасом (1). Их модельная архитектура, изображенная на Рисунке 3 без цели ранжирования, аналогична модели Bengio et al.

    Рисунок 3: Модель C&W без цели ранжирования (Collobert et al., 2011)

    Результирующая языковая модель производит вложения, которые уже обладают многими отношениями, благодаря которым вложения слов стали известны, например.грамм. страны сгруппированы близко друг к другу, и синтаксически похожие слова занимают аналогичные места в векторном пространстве. Хотя их цель ранжирования устраняет сложность softmax, они сохраняют промежуточный полностью связанный скрытый слой ( 2. ) Bengio et al. вокруг (слой HardTanh на рисунке 3), что составляет еще один источник дорогостоящих вычислений. Частично из-за этого их полная модель тренируется в течение семи недель с (| V | = 130000).

    Word2Vec

    Word2Vec, пожалуй, самая популярная из моделей встраивания слов.Поскольку вложения слов являются ключевым элементом моделей глубокого обучения для НЛП, обычно предполагается, что они принадлежат к одной группе. Однако word2vec технически не считается компонентом глубокого обучения, поскольку его архитектура не является ни глубокой, ни нелинейными (в отличие от модели Bengio и модели C&W).

    Миколов и др. [2] рекомендуют две архитектуры для изучения встраивания слов, которые по сравнению с предыдущими моделями менее затратны в вычислительном отношении.

    Вот два ключевых преимущества этих архитектур по сравнению с моделями Bengio и C&W;

    - Они отказываются от дорогостоящего скрытого слоя.

    - Они позволяют языковой модели учитывать дополнительный контекст.

    Успех их модели можно объяснить не только этими различиями, но и, что немаловажно, конкретными тренировочными стратегиями, которые мы сейчас рассмотрим;

    Непрерывный мешок слов (CBOW)

    В отличие от языковой модели, которая может основывать свои прогнозы только на прошлых словах, поскольку она оценивается на основе ее способности предсказывать каждое следующее слово в корпусе, модель, которая направлена ​​только на создание точных вложений слов, не подлежит такому ограничению. T ext {log} пробел p (w_t: |: w_ {tn}, cdots, w_ {t-1}, w_ {t + 1) }, cdots, w_ {t + n})).

    Вместо того, чтобы вводить (n) предыдущих слов в модель, модель получает окно из (n) слов вокруг целевого слова (w_t) на каждом временном шаге (t).

    Скип-грамм

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

    Рисунок 5: Скип-грамм (Миколов и др.T sumlimits _ {- n leq j leq n, eq 0} ext {log} пробел p (w_ {t + j}: |: w_t)).

    перчатка

    В отличие от word2vec, GloVe [5] стремится четко указать, что word2vec делает неявно: Кодирование значения как векторных смещений в пространстве встраивания - по-видимому, всего лишь случайный побочный продукт word2vec - является указанной целью GloVe.

    Рисунок 6: Векторные отношения, захваченные GloVe (Стэнфорд)

    Чтобы быть конкретным, создатели GloVe иллюстрируют, что отношение вероятностей совместного появления двух слов (а не самих вероятностей их совпадения) - это то, что содержит информацию, и поэтому стараются кодировать эту информацию как векторные разности.2)

    , где (w_i) и (b_i) - вектор слова и смещение соответственно слова (i), (ilde {w} _j) и (b_j) - вектор контекстного слова и смещение соответственно слова (j), (X_ { ij}) - количество раз, когда слово (i) встречается в контексте слова (j), а (f) - весовая функция, которая присваивает относительно меньший вес редким и частым совпадениям.

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

    Вложения слов в сравнении с моделями распределительной семантики

    Модели встраивания слов, такие как word2vec и GloVe, приобрели такую ​​популярность, поскольку они регулярно и существенно превосходили традиционные распределительные семантические модели (DSM). Многие связывали это с нейронной архитектурой word2vec или с тем фактом, что он предсказывает слова, которые, казалось, имели естественное преимущество перед тем, чтобы полагаться исключительно на количество совпадений.

    Модули DSM

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

    В 2014 г. Baroni et al. [11] продемонстрировали, что почти во всех задачах предсказывают, что модели последовательно превосходят по производительности модели count , и поэтому предоставили нам исчерпывающую проверку предполагаемого превосходства моделей встраивания слов. Это конец? №

    Что касается GloVe, мы уже видели, что различия не так очевидны: в то время как GloVe считается моделью прогнозирования Levy et al.(2015) [10], он явно факторизует матрицу совпадения слов и контекста, что приближает ее к традиционным методам, таким как PCA и LSA. Более того, Леви и др. [12] демонстрируют, что word2vec неявно факторизует матрицу PMI контекста слова.

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

    Итак, вопрос, на котором мы сосредоточимся до конца этого поста, все еще остается:

    Почему модели встраивания слов по-прежнему превосходят DSM с очень похожей информацией?

    Модели для сравнения

    Чтобы установить элементы, которые определяют успех нейронных моделей встраивания слов, и проиллюстрировать, как они могут быть перенесены в традиционные процессы, мы сравним следующие модели;

    Положительная точечная взаимная информация (PPMI)

    PMI - это типичный показатель силы связи между двумя словами.Он определяется как логарифмическое соотношение между совместной вероятностью двух слов (w) и (c) и произведением их предельных вероятностей: (PMI (w, c) = ext {log}: rac {P (w, c) } {P (w): P (c)}). Поскольку (PMI (w, c) = ext {log}: 0 = - infty) для пар ((w, c)), которые никогда не наблюдались, PMI на практике часто заменяется положительным PMI (PPMI), который заменяет отрицательные значения с (0), что дает (PPMI (w, c) = ext {max} (PMI (w, c), 0)).

    Разложение по сингулярным значениям (SVD)

    SVD является одним из наиболее популярных методов уменьшения размерности и изначально появился в НЛП посредством скрытого семантического анализа (LSA).{SVD} = V_d), которые обычно используются как представления слова и контекста соответственно.

    Пропуск грамма с отрицательной выборкой (SGNS)

    Также известен как word2vec, как показано выше.

    Глобальные векторы (GloVe)

    Как показано ранее в этом посте.

    Гиперпараметры

    Мы остановимся на следующих гиперпараметрах:

    Предварительная обработка

    Word2vec предлагает три метода предварительной обработки корпуса, каждый из которых может быть легко применен к DSM.

    Окно динамического контекста

    Обычно в DSM контекстное окно невзвешено и имеет неизменный размер. И SGNS, и GloVe, однако, используют схему, которая присваивает больший вес более близким словам, поскольку более близкие слова обычно считаются более важными для значения слова. Кроме того, в SGNS размер окна не фиксирован, но фактический размер окна является динамическим и равномерно выбирается между (1) и максимальным размером окна во время обучения.

    Подвыборка частых слов

    SGNS разбавляет очень часто встречающиеся слова, случайным образом удаляя слова, частота которых (f) выше некоторого порога (t), с вероятностью (p = 1 - sqrt {rac {t} {f}}).Поскольку эта подвыборка выполняется за до того, как фактически создает окна, контекстные окна, используемые SGNS на практике, больше, чем указано размером контекстного окна.

    Удаление редких слов

    Во время предварительной обработки SGNS редкие слова также удаляются перед созданием контекстных окон, что дополнительно увеличивает фактический размер контекстных окон. Однако, по словам Леви и др., Реальное влияние этого на производительность незначительно. (2015)

    Метрическая ассоциация

    Что касается измерения связи между двумя словами, PMI рассматривается как полезный показатель.Поскольку Леви и Голдберг (2014) показали, что SGNS неявно факторизует матрицу PMI, два варианта, вытекающие из этой формулировки, могут быть введены в обычный PMI.

    Сдвинутый PMI

    В SGNS, чем больше объем отрицательных выборок (k), тем больше данных используется, и поэтому оценка параметров должна улучшиться. (k) влияет на сдвиг матрицы PMI, которая неявно факторизуется word2vec, т.е. (k) k сдвигает значения PMI на log (k).

    Если мы перенесем это в обычный PMI, мы получим смещенный PPMI (SPPMI): (SPPMI (w, c) = ext {max} (PMI (w, c) - ext {log}: k, 0)).

    Сглаживание распределения контекста

    В SGNS отрицательные образцы отбираются в соответствии с _smoothed_ unigram distribution, то есть униграммовым распределением, возведенным в степень (lpha), которое эмпирически установлено на (rac {3} {4}). lpha}) и (f (x)) - частота слова (x).

    Постобработка

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

    Добавление векторов контекста

    Авторы GloVe рекомендуют добавлять векторы слов и векторы контекста для создания конечных векторов вывода, например (ec {v} _ {ext {cat}} = ec {w} _ {ext {cat}} + ec {c} _ {ext {cat}}). Это добавляет термины подобия первого порядка, то есть (w cdot v). Однако этот метод нельзя применить к PMI, поскольку векторы, создаваемые PMI, слишком редки.п).

    Векторная нормализация

    Наконец, мы также можем нормализовать все векторы до единичной длины.

    Результаты

    Levy et al. (2015) обучили все модели на свалке английской Википедии и оценили их по часто используемым наборам данных о сходстве и аналогии. Вы можете прочитать больше об экспериментальной установке и подробностях обучения в их статье. Ниже мы суммируем наиболее важные результаты и выводы.

    Еда на вынос

    Levy et al. обнаружили, что SVD - а не один из алгоритмов встраивания слов - лучше всего работает с задачами подобия, в то время как SGNS лучше всего работает с наборами данных аналогии.Кроме того, они проливают свет на важность гиперпараметров по сравнению с другими вариантами:

    1. Гиперпараметры и алгоритмы:
      Настройки гиперпараметров часто более важны, чем выбор алгоритма.
      Ни один алгоритм не может последовательно превзойти другие методы.
    2. Гиперпараметры против большего количества данных:
      Обучение на большом корпусе помогает для некоторых задач.
      В 3 из 6 случаев настройка гиперпараметров более выгодна.

    Разоблачение предшествующих претензий

    Теперь мы можем опровергнуть некоторые общепринятые претензии:

    1. Превосходят ли вложения методы распространения?
      При правильных гиперпараметрах ни один подход не имеет постоянного преимущества перед другим.
    2. Превосходно ли GloVe над SGNS?
      SNGS превосходит GloVe по всем задачам сравнения Levy et al. К этому обязательно следует относиться с недоверием, поскольку GloVe может лучше справляться с другими задачами.
    3. Является ли CBOW хорошей конфигурацией word2vec?
      CBOW не превосходит SGNS ни по одной задаче.

    Рекомендации

    НЕ используйте сдвинутый PPMI с SVD.

    НЕ используйте SVD "правильно", то есть без взвешивания собственного вектора (производительность падает на 15 пунктов по сравнению с взвешиванием собственных значений с (p = 0.5)).

    ОБЯЗАТЕЛЬНО использовать PPMI и SVD с короткими контекстами (размер окна (2)).

    ОБЯЗАТЕЛЬНО используйте много отрицательных образцов с SGNS.

    НЕОБХОДИМО всегда использовать сглаживание распределения контекста (возвести распределение униграмм в степень (lpha = 0,75)) для всех методов.

    ОБЯЗАТЕЛЬНО использует SGNS в качестве основы (надежный, быстрый и дешевый в обучении).

    НЕОБХОДИМО попробовать добавить контекстные векторы в SGNS и GloVe.

    Заключение

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

    Недавние исследования, проведенные группой Джурафски [13], [14], отражают эти выводы и показывают, что SVD, а не SGNS, обычно является предпочтительным выбором, важна точная репрезентация слов.

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

    Список литературы

    [1]: Bengio, Y., Ducharme, R., Vincent, P., & Janvin, C. (2003). Нейронно-вероятностная языковая модель. Журнал исследований в области машинного обучения, 3, 1137–1155. http://doi.org/10.1162/153244303322533223

    [2]: Миколов, Т., Коррадо, Г., Чен, К., и Дин, Дж. (2013). Эффективное оценивание представлений слов в векторном пространстве. Труды Международной конференции по обучающим представлениям (ICLR 2013), 1–12.

    [3]: Миколов Т., Чен, К., Коррадо, Г., и Дин, Дж. (2013). Распределенные представления слов и фраз и их композиционность. НИПС, 1–9.

    [4]: ​​Коллоберт Р. и Уэстон Дж. (2008). Унифицированная архитектура для обработки естественного языка. Труды 25-й Международной конференции по машинному обучению - ICML ’08, 20 (1), 160–167. http://doi.org/10.1145/13

    .13

  • [5]: Пеннингтон Дж., Сочер Р. и Мэннинг К. Д. (2014). Перчатка: глобальные векторы для представления слов.Труды конференции 2014 г. по эмпирическим методам обработки естественного языка, 1532–1543. http://doi.org/10.3115/v1/D14-1162

    [6]: Ким Ю., Джернит Ю., Зонтаг Д. и Раш А. М. (2016). Символьные нейронные языковые модели. AAAI. Получено с http://arxiv.org/abs/1508.06615

    .

    [7]: Jozefowicz, R., Vinyals, O., Schuster, M., Shazeer, N., & Wu, Y. (2016). Изучение ограничений языкового моделирования. Получено с http://arxiv.org/abs/1602.02410

    [8]: Коллобер Р., Уэстон, Дж., Боттоу, Л., Карлен, М., Кавукчуоглу, К., и Кукса, П. (2011). Обработка естественного языка (почти) с нуля. Журнал исследований в области машинного обучения, 12 (август), 2493–2537. Получено с http://arxiv.org/abs/1103.0398

    [9]: Чен В., Гранжер Д. и Аули М. (2015). Стратегии обучения моделей нейронного языка с большим словарным запасом, 12. Получено с http://arxiv.org/abs/1512.04906

    [10]: Леви О., Гольдберг Ю. и Даган И. (2015). Повышение распределительного сходства с помощью уроков, извлеченных из вложения слов.Труды Ассоциации компьютерной лингвистики, 3, 211–225. Получено с https://tacl2013.cs.columbia.edu/ojs/index.php/tacl/article/view/570

    .

    [11]: Барони М., Дину Г. и Крушевски Г. (2014). Не считай, предсказывай! Систематическое сравнение семантических векторов подсчета контекста и предсказания контекста. ACL, 238–247. http://doi.org/10.3115/v1/P14-1023

    [12]: Леви О. и Голдберг Ю. (2014). Вложение нейронных слов как неявная матричная факторизация.Достижения в системах обработки нейронной информации (NIPS), 2177–2185. Получено с http://papers.nips.cc/paper/5477-neural-word-embedding-as-implicit-matrix-factorization

    .

    [13]: Гамильтон, В. Л., Кларк, К., Лесковец, Дж., И Джурафски, Д. (2016). Вызвание предметно-ориентированных лексиконов настроений из немаркированных корпусов. Материалы 54-го ежегодного собрания Ассоциации компьютерной лингвистики. Получено с http://arxiv.org/abs/1606.02820

    [14]: Гамильтон, В. Л., Лесковец, Дж., И Джурафски, Д. (2016). Диахронические вложения слов раскрывают статистические закономерности семантических изменений. arXiv Препринт arXiv: 1605.09096.

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

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