Нейросетевые модели НКРЯ

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

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

Токенизатор

Для токенизации Основного, Газетного и нескольких других корпусов НКРЯ используется токенизатор из библиотеки Stanza, обученный на подготовленной выборке текстов: открыто доступных корпусах Тайга и СинТагРус, а также на внутренних данных из корпусов прозы XX-XXI веков, поэзии, корпусов со старой орфографией XVIII века, текстах новостей XXI века. Качество сегментации на предложения на тестовых данных из этой же выборки составляет 95,6% по метрике F1, качество токенизации — 99,6%.

Для запуска модели необходимо установить библиотеку stanza:

Bash
pip install stanza~=1.8.1

Пример загрузки и использования модели:

Python
import stanza

if __name__ == "__main__":
    STANZA_PATH = "YOUR_PATH_HERE.pt"
    ppln = stanza.Pipeline(
        lang='ru',
        processors='tokenize',
        tokenize_model_path=STANZA_PATH,
        use_gpu=True
    )
    SOME_TEXT = "Однажды весною, в час небывало жаркого заката, в Москве, на Патриарших прудах, появились два гражданина. Первый из них, одетый в летнюю серенькую пару, был маленького роста, упитан, лыс, свою приличную шляпу пирожком нес в руке, а на хорошо выбритом лице его помещались сверхъестественных размеров очки в черной роговой оправе. Второй – плечистый, рыжеватый, вихрастый молодой человек в заломленной на затылок клетчатой кепке – был в ковбойке, жеваных белых брюках и в черных тапочках."
    doc = ppln(SOME_TEXT)
    print(doc)

Векторные модели

Для поиска слов-ассоциатов в НКРЯ используются обученные на текстах конкретного корпуса word2vec-модели. В настоящее время обучены модели для семи корпусов: Основного, Газетных, Обучающего, Старорусского, корпусов «‎Русская классика»‎ и «От 2 до 15». Для обучения использован алгоритм Continious Bag-of-Words (реализация из библиотеки gensim). Для всех моделей используется размерность вектора 300 и окно в 5 слов. Порог зависит от корпуса и составляет: 

  • 5 вхождений для Основного, Старорусского корпусов, корпусов «‎Русская классика»‎, «От 2 до 15» и корпуса Центральных СМИ;
  • 7 вхождений для корпуса Региональных СМИ;
  • 10 вхождений для Обучающего корпуса.

Если в корпусе нет ручной разметки предложений и слов, то перед обучением тексты корпуса разбиваются на предложения и токены при помощи токенизатора. Затем тексты лемматизируются и размечаются по частям речи в соответствии с морфологическим стандартом НКРЯ при помощи модели РуБик.

Для запуска потребуется установить библиотеку gensim:

Bash
pip install gensim~=4.3.1

Пример загрузки и использования модели:

Python
from gensim.models import Word2Vec

if __name__ == "__main__":
    MODEL_PATH = "YOUR_PATH_HERE.model"
    model = Word2Vec.load(MODEL_PATH)
    print(model.wv.most_similar(f'лингвистика_S', topn=10))

Модель для Основного корпуса:

Модель для корпуса Региональных СМИ:

Модель для корпуса «‎Русская классика»‎:

Модель для Старорусского корпуса:

Модель для Древнерусского корпуса:

Модель для корпуса «‎От 2 до 15»‎:

Модель для Обучающего корпуса:

Морфемные модели

Для генерации морфемных разборов слов, отсутствующих в словарях, в НКРЯ используется модель с архитектурой на основе модели RuRoberta-large, дообученной для задачи морфемной сегментации. Мы подготовили две таких модели, различающиеся обучающей выборкой :

  • для Основного корпуса используется модель, обученная на морфемном словаре Morphodict-K, разработанном специально для Корпуса на основании идеологии «Словаря морфем русского языка» А. И. Кузнецовой и Т. Ф. Ефремовой (М., 1986);
  • для Обучающего корпуса обучена, но не интегрирована модель на словаре Morphodict-T, опирающемся на «Морфемно-орфографический словарь» А. Н. Тихонова (2002).

Эти словари различаются парадигмой деления слова на морфемы. Подробнее про принципы словообразовательной разметки, встречающейся в Корпусе, можно прочитать тут. Качество получившихся моделей мы оценили при помощи кросс-валидации (N=5) по пяти метрикам из работы А. Сорокина и А. Кравцовой.

Модель, использующаяся в НКРЯ сегодня, пришла на смену ансамблю свёрточных нейронных сетей, предложенному в работе А. Сорокина и А. Кравцовой. Упомянутый ансамбль обладает рядом преимуществ, например, его можно обучить и использовать без использования видеокарты. Однако при работе с незнакомыми корнями его качество заметно падает. Лучшего качества как при работе с незнакомыми корнями, так и в среднем нам удалось добиться при помощи дообучения модели RuRoBERTа. Актуальные версии моделей, дообученных/обученных для морфемного анализа, и код для их запуска можно скачать ниже.

 

CNN-T CNN-K Morphberta-T Morphberta-K

Precision

97.79

98.58

98.69

99.04

Recall

98.38

98.74

98.84

99.17

F1

98.09

98.66

98.76

99.10

Accuracy

96.61

97.40

97.78

98.19

WordAccuracy

88.49

90.82

92.47

93.54

Для запуска моделей CNN-T и CNN-K потребуется скачать библиотеку. Установить необходимые ресурсы и запустить алгоритм можно при помощи скрипта mpe_morphemes.sh, лежащего в архиве с моделью. Скрипт запуска для моделей Morphberta-T и Morphberta-K, а также requirements.txt находятся в скачиваемом архиве с моделью.

Ансамбль свёрточных нейронных сетей, обученный на Morphodict-K:

Ансамбль свёрточных нейронных сетей, обученный на Morphodict-T:

RuRoBERTa, обученная на Morphodict-K:

RuRoBERTa, обученная на Morphodict-T:

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

Morozov D., Garipov T., Lyashevskaya O., Savchuk S., Iomdin B., & Glazkova A. (2024). Automatic Morpheme Segmentation for Russian: Can an Algorithm Replace Experts? Journal of Language and Education, 10(4), 71-84. https://doi.org/10.17323/jle.2024.22237

Dmitry Morozov, Lizaveta Astapenka, Anna Glazkova, Timur Garipov, and Olga Lyashevskaya. 2025. BERT-like Models for Slavic Morpheme Segmentation. In Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 6795–6815, Vienna, Austria. Association for Computational Linguistics. https://doi.org/10.18653/v1/2025.acl-long.337

 

Модели метаразметки текстов

В настоящее время в НКРЯ используются три модели для разметки свойств текстов: для жанров в корпусе Социальные сети, а также для тематики и типов в корпусе Региональных СМИ. Для каждого из этих случаев подготовлена обучающая выборка, состоящая из текстов соответствующего корпуса; на этих данных была дообучена модель RuRoBERTа

Метаразметка жанров текстов

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

Скрипт запуска для модели и requirements.txt находится в скачиваемом архиве с моделью.

Разметка тематики текстов

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

Скрипт запуска для модели и requirements.txt находится в скачиваемом архиве с моделью.

Разметка типов текстов

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

Скрипт запуска для модели и requirements.txt находится в скачиваемом архиве с моделью.

Обновлено 18.02.2026