Разработчики системы «Антиплагиат» при содействии ученых из МФТИ и ФИЦ «Информатика и управление» РАН создали нейросетевую модель для исправления грамматических ошибок в русскоязычных текстах. Статья об этом опубликована в журнале Programming and Computer Software. Авторы воспользовались методом морфологического тегирования, для которого не требуется большой объем обучающих данных. Их результаты помогут автоматизировать процесс проверки сочинений, эссе, постов в соцсетях, в том числе написанных не носителями языка, а также улучшить программы по поиску текстовых заимствований.
В текстовые редакторы обычно встроены программы исправления ошибок. Самый известный пример — спелл-чекер в Word. Он вполне эффективно правит орфографические ошибки, а вот с грамматикой дела обстоят сложнее.
Автоматическое исправление грамматических ошибок — это самостоятельная задача для искусственного интеллекта внутри направления обработки текстов на естественном языке. На сегодняшний день эффективного ее решения нет даже для английского языка, на котором сосредоточена основная масса исследований. Не в последнюю очередь из-за нехватки размеченных данных для обучения моделей. С другими языками работают гораздо меньше, в том числе с русским. Учитывая, что морфологически он гораздо богаче английского, решение задачи сильно усложняется.
Для английского языка разработано два подхода. Первый называют Sequence-to-Sequence, это, по сути, переводчик. На вход ему подают фразу, на выходе он выдает вариант, переведенный с языка с ошибками на язык без ошибок. Для коррекции грамматики он не очень подходит, поскольку требует больших временных и ресурсных затрат. Альтернативный ему подход — Sequence Tagging, или тегирование слов предложения — лишен этих недостатков.
В предыдущих работах было показано, что модели, задействующие тегирование слов предложений, более интерпретируемые и быстрые по сравнению с «переводчиками» Seq2Seq. Наиболее эффективной Sequence Tagging моделью для английского языка считается GECToR.
Модель состоит из энкодера, который разбивает фразу на слова — токены. Затем идет поиск ошибок в токенах и их классификация согласно правилам.
«В модели множество классов для разного типа ошибок. Для каждого слова, где требуется исправление, идет поиск соответствующего класса», — пояснил Андрей Грабовой, доцент кафедры «Интеллектуальные системы» МФТИ, руководитель команды NLP отдела исследований «Антиплагиат».
На выходе получают набор токенов с ошибками и соответствующие им правила для исправления. Однако этого недостаточно. Дело в том, что каждому токену с ошибкой соответствует одно правило, тогда как в реальности и ошибок, и правил для одного токена может быть несколько.
Чтобы восполнить этого пробел, авторы исследования адаптировали GECToR для русского языка, назвав новую модель RuGECToR. Исправление ошибки проходит в несколько итераций. Классифицированное в первой итерации слово-токен «обнуляют» и включают в новую фразу, после чего анализируют еще раз, чтобы найти ошибки, нарушающие другие правила.
«На практике это выглядит так. Вы загружаете текст в программу, она его анализирует и выдает свои предложения — в каких словах ошибки и как надо исправить. Затем предлагает исправления», — отметил Грабовой.
Ученые работали над алгоритмом и моделью с 2019 года, приняв участие в конкурсе «Up Great ПРО//ЧТЕНИЕ». Изначально они создавали интеллектуального помощника учителю, проверяющему грамматику в сочинениях ЕГЭ, но сейчас очевидно, что возможности модели шире.
Вместо того чтобы создавать обширный датасет размеченных фраз (содержащий пары ошибочных и верных предложений), как того требует подход Seq2Seq, программисты заложили в модель словарь из 5183 правил грамматики русского языка, а также подготовили для обучения два синтетических набора текстов.
На первом этапе использовали датасет из русскоязычных статей Википедии и школьных сочинений, содержащий 10 миллионов предложений, на втором — миллион фраз из сочинений и литературных текстов. В оба датасета внесли ошибки случайным образом по определенной методике. Каждый этап обучения длился по 50 эпох.
В качестве тестовых наборов использовали синтетический датасет из школьных сочинений и реальные данные из базы RULEC, созданной другими исследователями.
Для оценки качества алгоритма вычислили F0.5-меру, которая показывает гармоническое среднее между точностью и полнотой. После двух этапов тренировки RuGECToR на синтетических данных F0.5-мера достигла значения 82,5. При тестировании на реальных данных параметр снизился до 22,2. Но то, что модель, обученная на синтетических датасетах, нашла ошибки в реальных предложениях, — это хороший показатель, — отметили исследователи. Им удалось добиться от модели хорошей способности к генерализации морфологии русского языка и не перетренировать ее.