• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Автоматический синтаксический анализ

Хотите узнать, как с помощью автоматического синтаксического анализа машины создают осмысленные тексты, нейросети помогают журналистам и копирайтерам, а лингвокриминалисты решают, кто прав, а кто виноват? Мы заглянем внутрь этих процессов и посмотрим, какие механизмы лежат в их основе!

Что такое автоматический синтаксический анализ? 


Обработка естественного языка (Natural Language Processing)
ー на сегодняшний день одна из самых популярных областей науки о данных. Последние достижения в этой сфере знаний позволяют создавать приложения, с исключительной точностью распознающие текст и речь. 
Рассмотрим ситуацию: мы создаем свою поисковую систему. Чтобы что-то найти с ее помощью, нужно задать некоторый запрос (чаще всего это целое предложение). 
Чтобы наш поисковик понимал, что требуется найти, должен быть проведен автоматический анализ текста запроса, то есть операция, которая из заданного текста на естественном языке извлечет его грамматическую и смысловую информацию.
 Эта операция проводится по некоторому алгоритму: 
●      Предложение делится на отдельные слова, или токены, т.е. проводится токенизация. 
●      Для выделенных токенов определяется часть речи, и токены приводятся к начальной форме, т.е. проводится морфологический анализ и лемматизация. 
●      Но для реализации механизма поиска необходимо не только знать значение отдельных слов из запроса, но и понимать, как эти слова соотносятся друг с другом, т.е. нужно проанализировать целое предложение. 
Для решения последней задачи используются модули синтаксического анализа – синтаксические парсеры (или анализаторы), которые зачастую представляют структуру предложения в виде некоторой иерархии, где есть зависимые и главные элементы.
 Такая иерархия элементов может быть представлена линейной последовательностью элементов (Схема 1) или же в виде дерева (Схема 2).
 

           Схема 1
 
 
    Схема 2

Для чего используется автоматический синтаксический анализ?

 
  •  Генерация текстов 
Генератор текста — это программа, которая создаёт тексты, корректные с точки зрения большинства языковых норм.
Генераторы различаются своими возможностями. 
1) Одни («бредогенераторы», или «генераторы шизофазии») создают грамматически правильные тексты, лишенные смысла. Сегодня с помощью таких программ можно создать «бред» разного жанра: от детективов до любовных романов, от политической речи до фэнтези. 
2) Другие представляют собой «умные» алгоритмы, позволяющие создавать уникальные тексты, которые мало чем отличаются от написанных реальным человеком. Монолог для светской беседы? Рецепт котлеток с пюрешкой? Комплимент для любимой девушки? Подобные генераторы легко могут составить осмысленный текст на самые разнообразные темы. 

Нейросетевой моделью RuGPT-3 заинтересовались студенты 3 курса Полина Савинова, Егор Жариков, Вита Зайцева и Евгения Парешина в рамках дисциплины «Программирование для лингвистов».

 Справка: RuGPT-3 (Generative Pretrained Transformer 3 for Russian) — русскоязычный аналог GPT-3 — нейронной сети по работе с текстовыми данными. Модели RuGPT-3 умеют продолжать тексты на русском и частично на английском языках. Для этого пользователю необходимо сформулировать «затравку» — фразу, которую модель допишет.

 На основе данной модели студенты создали генератор анекдотов. Представляем вашему вниманию результат (орфография и пунктуация «автора» сохранены):

  •     Автоматическое реферирование (суммаризация)
 В общем случае цель реферирования такова: на вход программе подается один или несколько документов, задача — составить краткое, грамматически корректное и связное изложение материала.
Как работает суммаризатор? Существуют 2 способа: экстрактивный, когда из документа выбираются наиболее важные предложения, и абстрактивный, подразумевающий генерацию нового текста, содержащего основные мысли исходного. В соответствии с требованиями пользователя из первичного документа на выходе может быть получен заголовок, одно предложение или сжатый до ключевых моментов текст. 
Попробуйте проверить себя и найти оригинальный заголовок статьи среди автоматически сгенерированных названий.
 

1. В электричке в Подмосковье произошло задымление вагона.
  2. Задымление произошло в электричке на подмосковной железной дороге.
3. Задымление произошло в вагоне поезда Москва - Фрязино Ярославского направления.

 Барабанная дробь… Оригинальный заголовок – под номером 1.
 
  •  Определение авторства произведений (атрибуция)
Авторство неизвестного текста определяется экспертами на основе характерных языковых (в частности, синтаксических) особенностей, присущих этому тексту. 
Анна Юрьевна Хоменко, действующий судебный эксперт-лингвист, совместно со специалистами «Центра экспертизы и оценки “ЕСИН”» исследовали 13 протоколов допросов подозреваемых в рамках громкого дела «Сети», или «Пензенского дела»: «Была цель установить, имеются ли в протоколах допросов совпадения. Эти совпадения говорили бы о том, что протоколы составлены не разными авторами-следователями со слов разных подозреваемых, а одним/одними и теми же следователями по единому шаблону вне привязки к реальным показаниям свидетелей и подозреваемых. С помощью парсинга документов, выявления сходных синтаксических структур, а также некоторых других методов удалось определить, что протоколы действительно имеют значимый процент сходства, исключена возможность, что они были составлены разными авторами-следователями. Фактически это признак фальсификации доказательств». 

Так, на примере этого конкретного случая можно говорить о том, что автоматические методы обработки естественного языка сейчас в полной мере стоят на страже закона и порядка.
 
 

Сложности при парсинге

Существует много разных парсеров синтаксического анализа. Однако в статье мы рассмотрим только два парсера, которые считаются наиболее точными по сравнению с другими синтаксическими анализаторами (хоть и могут допускать ошибки в разборах): 
●      UDPipe – программная библиотека для обработки естественного языка. Поддерживает около 45 языков, среди которых русский и английский. Создана в рамках международного проекта Universal Dependencies, целью которого является создание универсальной синтаксической разметки для разных языков.
●       SpaCy программная библиотека для обработки естественного языка. Поддерживает более 72 языков, в том числе русский и английский. Распространена в профессиональной разработке программ. 
При проведении автоматического синтаксического анализа естественного языка возникают ситуации, когда парсер не справляется с поставленной задачей и разбирает предложение неверно. 
Большинство проблем в работе парсеров связано с понятием неоднозначность.
 
 
Что такое неоднозначность?

Смысл данного термина вытекает из самого его названия – языковая единица имеет не одно значение, а два или больше.
Рассмотрим следующие случаи неоднозначности: морфологическую и синтаксическую омонимию. 
  1. Морфологическая омонимия возникает, когда слова, принадлежащие к разным частям речи, совпадают в одной или нескольких грамматических формах.
Вручную мы бы разобрали предложение с морфологической омонимией следующим образом:

В первом случае светило представляет собой существительное со значением «небесное тело, излучающее свет», а во втором случае светило – глагол с семантикой «излучать свет». 
  1. Синтаксическая омонимия – двусмысленность, которая возникает в предложении из-за возможности по-разному интерпретировать отношения между словами. Подробно о ней можно прочитать в этой статье.
 Например, в предложении "Роняет лес багряный свой убор" две возможные интерпретации можно вручную отобразить следующим образом: 

Багряный лес роняет свой убор.
 
 
Лес роняет свой багряный убор.
 
 





Однако как справится с такими ситуациями парсер?

Ниже представлены результаты работы библиотек UDPipe и SpaCy в сопоставлении с ручной разметкой.

Парсеры оказались невосприимчивы к морфологической омонимии, поэтому в обоих случаях определили словоформу светило как глагол. 
Однако синтаксические связи внутри деревьев, построенных парсерами, оказались разными. 
  1. Библиотека UDPipe построила неверную связь от существительного светило к косвенному дополнению студентам. На самом деле, эта связь должна была возникнуть от глагола светило к косвенному дополнению студентам.
  2. Библиотека SpaCy правильно создала все связи. 
Таким образом, можно сделать вывод, что хотя оба рассмотренных парсера не различили морфологическую омонимию, тем не менее одна из библиотек успешно справилась с синтаксическим анализом данного предложения.
 
А как у парсеров обстоят дела с синтаксической омонимией?
 
Библиотеки UDPipe и SpaCy представили только одну интерпретацию данного предложения.

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

Итак, в статье мы рассмотрели одно из важных направлений исследований в области компьютерной лингвистики и синтаксиса. Мы узнали, что такое автоматический синтаксический анализ и с помощью чего он осуществляется. Увидели, с какими трудностями сталкиваются парсеры, и обратили внимание на основные лингвистические проблемы, которые на данный момент препятствуют точной обработке текста.
Хотя задача повышения точности работы парсеров нетривиальна, многие специалисты в области компьютерной лингвистики и машинного обучения всё же стараются её решить.
Кто знает, может быть именно вы поможете компьютеру понять все лингвистические тонкости текста?...

Автор: Карина Закирова, Ирина Новикова, Василиса Блюдова, Екатерина Кондрашова (20ФиПЛ) 

Полезные ресурсы для тех, кто заинтерсовался темой: 
  1. Большакова Е.И., Воронцов К.В., Ефремова Н.Э., Клышинский Э.С., Лукашевич Н.В., Сапин А.С. Автоматическая обработка текстов на естественном языке и анализ данных:учеб. пособие. М.: Изд-во НИУ ВШЭ,2017. 269 с.
  2. Степанов М.А. Генерация заголовков новостных статей, использующая стемы, леммы и граммемы // Компьютерная лингвистика и интеллектуальные технологии. 2019. С. 658-666.
  3. Раренко М. Б. Машинный перевод: от перевода «по правилам» к нейронному переводу //Социальные и гуманитарные науки. Отечественная и зарубежная литература. Сер. 6, Языкознание: Реферативный журнал. 2021. №. 3. С. 70-79.
  4. Бредогенератор
  5. Генератор светских бесед
  6. Балабола - генератор текстов
  7.  Программа для автоматической обработки текста на русском языке - Natasha
  8. Джорджтаунский эксперимент