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

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

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

Токенизатор

Для токенизации Основного, Газетного и нескольких других корпусов НКРЯ используется токенизатор из библиотеки 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»‎:

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

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

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

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

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

 

Morphodict-T

Morphodict-K

Precision

97.79

98.58

Recall

98.38

98.74

F1

98.09

98.66

Accuracy

96.61

97.40

WordAccuracy

88.49

90.82

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

Модель, обученная на Morphodict-K:

Модель, обученная на Morphodict-T:

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

T. Garipov, D. Morozov and A. Glazkova, "Generalization Ability of CNN-Based Morpheme Segmentation," 2023 Ivannikov Ispras Open Conference (ISPRAS), Moscow, Russian Federation, 2023, pp. 58-62, doi: 10.1109/ISPRAS60948.2023.10508171

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

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

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

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

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

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

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

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

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

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

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

Обновлено 28.10.2024