Проблемы синтаксического анализа
Синтаксический анализ (парсинг) — построение структуры предложения: какие слова связаны, что от чего зависит и какую роль играет. Он опирается на морфологию и служит основой для извлечения фактов, машинного перевода и вопросно-ответных систем.
Вход
Последовательность токенов с морфологической разметкой: леммы, части речи, граммемы.
Выход
Дерево составляющих или дерево зависимостей, где у каждого слова есть вершина и тип связи.
Главная трудность
Неоднозначность: у одного предложения бывают десятки и сотни формально допустимых разборов.
Две модели синтаксической структуры
Грамматика составляющих (Хомский)
Предложение делится на вложенные группы — NP, VP, PP. Узлы дерева — фразы, листья — слова.
Грамматика зависимостей (Теньер)
Каждое слово, кроме корня, подчинено одному слову-вершине. Дуги подписаны типами связей.
Основные проблемы
Структурная неоднозначность
«Я видел человека с биноклем» — бинокль у меня или у него? Это проблема присоединения предложной группы (PP-attachment). Число разборов растёт экспоненциально с длиной предложения.
Свободный порядок слов
В русском роли определяет падеж, а не позиция: Мать любит дочь допускает два прочтения, потому что падежи совпадают по форме.
Непроективность
Дуги зависимостей пересекаются при разрывных конструкциях: Интересную он прочёл книгу. Простые алгоритмы строят только проективные деревья.
Сочинение и эллипсис
Что с чем сочинено в «старые книги и журналы»? Пропуски слов: Я — в кино, а он — домой; нулевая связка: Он врач.
Дальние зависимости
Связанные слова разнесены далеко: придаточные, обособленные обороты, вводные конструкции. Точность падает с ростом длины предложения.
Каскад ошибок
Ошибки токенизации и морфологии (стали — глагол или существительное?) переходят в синтаксис и портят дерево.
Нехватка трибанков
Синтаксическая разметка дорога: нужны эксперты и единые правила. Для тюркских и многих других языков трибанки маленькие.
Смена домена и «шум»
Парсер, обученный на новостях, хуже работает на соцсетях, речи и научных текстах: нет пунктуации, есть опечатки и разговорные конструкции.
Пример: «садовая дорожка» (garden path)
В предложении The horse raced past the barn fell читатель сначала считает raced сказуемым, а на слове fell разбор рушится: на самом деле это «Лошадь, которую прогнали мимо амбара, упала». Жадный парсер, который не возвращается назад, ошибается так же, как человек.
Методы решения
| Подход | Идея | Сильные стороны | Слабые стороны |
|---|---|---|---|
| Правила и КС-грамматики (CKY, Эрли) | Ручная грамматика, перебор разборов динамическим программированием | Прозрачность, точность на «своих» конструкциях | Трудоёмкость, сотни разборов, сложность O(n³) |
| PCFG (вероятностные КС-грамматики) | Правилам приписаны вероятности, выбирается самое вероятное дерево | Снимает неоднозначность | Не учитывает лексику; нужен трибанк |
| Переходный (transition-based) парсинг зависимостей | Стек, буфер и действия SHIFT / LEFT-ARC / RIGHT-ARC; классификатор выбирает действие | Линейное время, высокая скорость | Ошибки накапливаются, жадный выбор |
| Графовый (graph-based) парсинг | Оценки всех дуг и поиск лучшего дерева (Чу-Лю — Эдмондс, Айснер) | Глобальная оптимизация, непроективные деревья | Медленнее, ограниченные признаки |
| Нейросетевой (BiLSTM, biaffine, BERT) | Контекстные векторы слов и биаффинная оценка дуг | Лучшее качество (LAS выше 90% для крупных языков) | Много данных и вычислений, слабая интерпретируемость |
Инструменты и ресурсы
UDPipe, Stanza
Конвейеры от токенизации до синтаксиса по стандарту Universal Dependencies, модели для 100+ языков.
spaCy, Natasha
Python-библиотеки с парсером зависимостей; Natasha (Slovnet) — для русского.
MaltParser, Stanford Parser
Классика: переходный парсер зависимостей и вероятностный парсер составляющих.
SynTagRus
Крупнейший синтаксически размеченный корпус русского (ИППИ РАН), основан на модели «Смысл ⇔ Текст».
Penn Treebank
Английский трибанк составляющих, на котором выросли статистические парсеры.
Метрики UAS / LAS
Доля слов с верной вершиной (UAS) и с верной вершиной и типом связи (LAS).
Тесты: 30 вариантов по 20 вопросов
30 вариантов по 20 вопросов из банка в 300 вопросов. Любые два варианта совпадают не больше чем в двух вопросах. В каждом вопросе один правильный ответ.
Результаты
Сохраняются в этом браузере. Оценка: 17–20 — «5», 13–16 — «4», 9–12 — «3», меньше — «2».