>>1.00<<>>1.00<<Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 4:03Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -4:03 1xСкорость воспроизведения2x1.75x1.5x1.25x1x, выбрано0.75x0.5xГлавыГлавыОписанияОтключить описания, выбраноСубтитрынастройки субтитров, откроется диалог настройки субтитровСубтитры выкл., выбраноЗвуковая дорожкаPicture-in-PictureПолноэкранный режимThis is a modal window.Начало диалоговго окна. Кнопка Escape закроет или отменит окноТекстColorБелыйЧерныйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйФонColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйПрозрачныйОкноColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачныйПолупрозрачныйПрозрачностьРазмер шрифта50%75%100%125%150%175%200%300%400%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Спустя несколько лет модель word2vec получила вполне естественное развитие. Важной особенностью естественных языков является то, что слова могут принимать различные формы, при этом не меняя смысла. Ну, а мы же хотим чтобы наши вектора описывали именно смысл. Другими, словами мы хотим получить инвариантность к словоизменению. Один способ получить такую инвариантность — это нормализовать текст перед обучением модели — например, с помощью стэмминга или лемматизации. Однако первое ненадёжно, а второе сложно — не для всех языков есть хорошие морфологические анализаторы и лемматизаторы. Томаш — парень находчивый. Он и в этот раз не растерялся, а сказал: "Давайте будем учить не на целых словах, а на N-граммах символов". N-граммы символов встречаются чаще, чем целые слова, при этом, какие-то N-раммы могут совпадать с корнями, а какие-то — с окончаниями. Он назвал такую модель: FastText. Работает она, в целом, так же, как и word2vec, но с одним важным отличием. Вот, допустим, мы выбрали какое-то окно и дальше, для центрального слова, мы начинаем извлекать все возможные N-граммы. И делать градиентные шаги, такие же, как мы делали в word2vec, но для каждой N-граммы. При этом мы работаем только с достаточно частотными N-граммами, а редкие игнорируем. Это позволяет использовать FastText для получения векторов слов, которых не было в обучающей выборке. Мы просто берём все возможные N-граммы, которые встречаются в слове, для которого нам нужно получить вектор, берём N-граммы, которые мы видели в обучающей выборке, берём их вектора и усредняем. Оказывается, что у векторов слов, полученных способами, которые мы сейчас рассмотрели, есть полезные и забавные свойства. Например, мы можем измерять сходство смыслов слов через скалярное произведение их векторов. Кстати на сайте "rusvectores.org" выложено много обученных моделей для русского языка, а также на этом сайте можно поисследовать возможности этих моделей в интерактивном режиме. Например, поискать слова, наиболее похожие на слово-запрос. Забавно, что среди похожих слов для запроса "язык", нет ничего связанного с биологией, только лингвистические термины. Это связано с тем, что word2vec для каждого слова хранит только один вектор, и это может привести к тому, что некоторые смыслы слова потеряются, а вектор будет описывать только наиболее частотный смысл. А ещё можно выбрать несколько слов и посмотреть графически, как они соотносятся друг с другом. Например, видно, что слово "молоток" ближе к глаголу "забивать", чем к глаголу "любить", например. А глагол "пить" находится недалеко от объектов действия "чай", "кофе". Другое свойство заключается в том, что мы можем складывать и вычитать вектора слов, при этом, как бы, переходя по семантическим связям. Например, если мы вычтем из вектора для снова "женщина" вектор для слова "мужчина", а потом прибавим вектор для слова "дядя" и попробуем поискать ближайшие вектора к полученному, то найдем слова "тётя". Это работает не для всех отношений не для всех слов, но для некоторых частотных — работает.
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.