RusVectōrēs 5: новые модели в 2019 году

Веб-сервис дистрибутивно-семантических моделей для русского языка RusVectōrēs снова с вами! Напомним, что RusVectōrēs — это инструмент для работы с лексическими моделями дистрибутивной семантики для русского языка (word embeddings) прямо в браузере.

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

В январе 2019 мы выложили новый набор word2vec- и fastText-моделей для русского языка. Вы уже можете скачать их (идентификаторы с постфиксом "_2019"), также они задействованы по умолчанию в веб-интерфейсе. Обновлены модели на основе следующих корпусов:

  1. Национальный корпус русского языка (НКРЯ)

  2. НКРЯ + русская Википедия

  3. Тайга

  4. Новостной корпус

Основные изменения

  1. Все корпуса заново предобработаны (в том числе и "Тайга"), включая токенизацию, лемматизацию и разметку по частям речи. В частности, тексты были дополнительно очищены на основе фильтров от Тани Шавриной. Это позволило избавиться от большого количества неправильно токенизированных и лемматизированных слов (вы могли их наблюдать в предыдущих моделях, после того, как RusVectōrēs перешел на UDPipe). Через несколько дней будет соответствующим образом обновлен тьюториал по работе с моделями.

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

  3. Корпус "НКРЯ + Википедия" использует обновленный дамп русской Википедии за декабрь 2018 года

  4. Новостной корпус стал меньше (2.5 миллиарда слов), но разнообразнее: теперь это микс новостного сегмента "Тайги", газетного корпуса НКРЯ, обкачанных русскоязычных новостных сайтов и датасета lenta.ru. К сожалению, этот корпус по-прежнему не доступен публично целиком.

  5. Сделана более строгой процедура склейки непосредственно идущих друг за другом в корпусе имен собственных (например, «Василий_PROPN Иванович_PROPN» становится «Василий::Иванович_PROPN»). Теперь склейка происходит только если имена согласуются друг с другом по числу и падежу.

  6. В большинстве моделей на RusVectōrēs отсутствуют слова, принадлежащие к функциональным частям речи (предлоги, союзы, знаки пунктуации и т.п.). Тем не менее, для некоторых задач NLP (например, для анализа тональности с использованием нейронных сетей) может быть нужно иметь хотя бы какие-то репрезентации для таких единиц. Поэтому теперь доступны для скачивания модели, обученные на "Тайге" и "НКРЯ+Википедия" с сохранением функциональных слов (tayga-func_upos_skipgram_300_5_2019 и ruwikiruscorpora-func_upos_skipgram_300_5_2019).

  7. Появились fastText-модели, обученные на "Тайге" (tayga_none_fasttextcbow_300_10_2019) и на НКРЯ (ruscorpora_none_fasttextskipgram_300_2_2019). Никаких больше out-of-vocabulary слов! :-).

  8. В прошлом наши модели предлагались для скачивания с векторами, приведенными к единичной длине (unit-normed). В подавляющем большинстве случаев это наилучшая форма в работе с NLP-задачами. Тем не менее, в некоторых кейсах сохранение исходных размеров векторов может быть полезно, при этом получить из нормированных векторов обратно ненормированные невозможно. Поэтому, начиная с января 2019, модели на RusVectōrēs по умолчанию содержат ненормированные вектора. Для нормирования, например, в Gensim, достаточно после загрузки модели вызвать MODEL.init_sims(replace=True).

  9. Для новых моделей мы перешли на загрузку с использованием инфраструктуры Nordic Language Processing Laboratory. Это должно повысить скорость и надежность скачивания больших архивов, а также прорекламировать наши модели по новым каналам. :-) На практике это означает, что теперь по клику на модель вы скачиваете zip-архив с уникальным числовым идентификатором (например, '180.zip'). Внутри архива всегда находится файл meta.json, содержащий в структурированном и стандартном виде информацию о модели и корпусе, на котором она обучена. word2vec-модели лежат в архивах сразу в двух word2vec-форматах: бинарном model.bin (удобен для быстрой загрузки) и текстовом model.txt (удобен для просмотра человеком). Их можно загружать прямо из архива, без распаковки. fastText-модели перед загрузкой следует извлечь из zip-архива, после чего загружать в Gensim командой "gensim.models.KeyedVectors.load('model.model')".

  10. В ближайшие недели также ожидается релиз контекстуализированных дистрибутивных моделей для русского языка на базе ELMo.

У нас ещё много планов по дальнейшему совершенствованию RusVectōrēs. Подписывайтесь на наш Telegram-канал и на наш RSS и оставайтесь с нами!

Команда RusVectōrēs:
Андрей Кутузов (Университет Осло)
Елизавета Кузьменко (Университет Тренто)