Конференция «Диалог» Тестирование работы синтаксического анализатора Богуславский И.М., Дружкин К.Д., Иомдин Л.Л., Сизов В.Г., Цинман Л.Л.
Тестирование работы синтаксического анализатора Зачем тестировать. Как тестировать. Что сделали мы.
Зачем тестировать? Для разработчика: получить обратную связь. Для научного сообщества: сравнить достоинства и недостатки разных подходов.
Зачем тестировать? Для разработчика: получить обратную связь. Для научного сообщества: сравнить достоинства и недостатки разных подходов. Для потребителя: понять, что он покупает.
Цикл разработки Анализ Разработка Тестирование
Для тестирования работы парсера нужны: 1.корпус текстов, 2.эталонный разбор этого корпуса, 3.метод оценки расхождений между эталоном и тем, что делает система.
Отсюда вытекают три вопроса: 1.Какой корпус нам нужен? 2.Насколько хорошим должен быть эталон? 3.Как будет устроена наша система оценки?
Два способа создать корпус Корпус собирается из связных текстов. Корпус собирается из отдельных фраз.
Корпус из связных текстов (естественный корпус) Плюсы: отражает реальное употребление языка создаётся легко и быстро.
Корпус из связных текстов (естественный корпус) Минусы: слишком много однотипных примеров на частотные явления могут так и не встретиться редкие явления оченьтолько очень большой корпус будет представительным (Но слишком большой корпус мы взять не можем: трудно будет делать эталонный разбор.)
Пример редкого явления – инфинитив между предлогом и существительным: отдохнуть «для усталого и мечтающего отдохнуть человека»
Корпус из подобранных фраз (искусственный корпус) Плюсы: сравнительно невелик отражает все явления, которые (по мнению разработчика) система должна охватить.
Корпус из подобранных фраз (искусственный корпус) Минусы: его создание требует большого труда нельзя предусмотреть все возможные события
Проект TSNLP: Test Suites for Natural Language Processing Цель проекта – создание тестовой последовательности фраз, в совокупности покрывающих все грамматические явления (для каждого из языков проекта) Только фразы, без эталонного разбора.
Два способа создать эталон прогнать корпус через синтаксический анализатор и фиксировать результат вручную создать эталонный разбор для каждой фразы в корпусе.
Фиксированный результат (отражает текущее состояние) получить такой эталон легко отслеживаем все изменения на небольшом промежутке времени расхождений с эталоном накапливается мало, и их можно проверить вручную не можем дать глобальную оценку работе системы
Идеальный результат (указывает далёкую цель) Любое отклонение является ошибкой; это позволяет автоматически оценивать работу системы. Показывает, насколько мы далеки от идеала и где наши основные недостатки. На фоне огромного количества ошибок плохо заметны мелкие изменения. Создаётся вручную; это требует огромного труда.
Регрессионное тестирование (фиксированный хороший результат) Создаём корпус фраз, которые уже получают хороший разбор. Фиксированный и идеальный результат совпадают. Любое расхождение означает, что работа системы ухудшилась.
Два способа работы с расхождениями Каждое расхождение передаётся на суд человека. Автоматически вычисляется общая оценка работы системы.
Расхождения передаются на суд человека При работе с фиксированным результатом отслеживаются изменения. При работе с регрессионным тестом отслеживаются ухудшения. Разработчик вовремя замечает мелкие изменения. Разработчик получает обратную связь.
Оценка вычисляется автоматически При сравнении с идеальным эталонным результатом обнаруживаются недостатки системы. Разработчики должны быть готовы закрыть глаза на некоторые виды ошибок.
Для автоматической оценки нужен Большой текст (малые тексты непредставительны) Идеальный разбор этого текста. (создать его – трудоёмкая задача) Разработчики пользуются разными формализмами представления синтаксической структуры, поэтому не всегда можно использовать чужие результаты.
Методика оценки Сильно зависит от формализма, которым пользуются разработчики. Чем более богатую информацию даёт парсер, тем сложнее построить для него систему оценки. Важна типизация ошибок.
Результаты достигнутые лабораторией компьютерной лингвистики ИППИ
Регрессионное тестирование Создан корпус русских фраз, каждая из которых: (а) иллюстрирует некоторое синтаксическое явление, (б) уже получает правильный разбор. Создаётся аналогичный корпус английских фраз.
Фразы создаются как иллюстрации к синтагмам (правилам синтаксического анализа) Например, одна синтагма описывает сочинение с эллипсисом. В регрессионном тесте появляется фраза: Он принёс одну большую и две маленькие коробки.
Регрессионный тест уже доказал свою полезность: благодаря нему были вовремя замечены и исправлены некоторые ухудшения.
Оценочное тестирование Эталон уже есть: лаборатория уже располагает большим корпусом синтаксически размеченных текстов. Система оценки только начинает разрабатываться. В настоящее время каждое расхождение либо штрафуется одним баллом, либо игнорируется.
Представление синтаксической структуры в формате XML
Предложение … …
Словоформа …
«Стрелка» зависимости представлена в виде двух атрибутов зависимой словоформы: DOM =порядковый номер хозяина LINK =синтаксическое отношение
Вершина предложения DOM =_root Атрибут LINK отсутствует.
Слово не представлено в словаре? Аварийная морфология относит его к словарной статье «фиктивной лексемы»: KSNAME = ФИКТ-ЛЕКС FEAT = NID (non-identified)
Узел не нашёл своего места в синтаксической структуре? Аварийный синтаксис присоединяет его к вероятному хозяину по фиктивной связи: LINK =fictit
Волки выли на луну. Волки выли на луну.
Сравнение двух синтаксических структур сводится к сравнению двух XML-представлений: Назовём их Э и Т: Э = эталонная синтаксическая структура предложения Т = синтаксическая структура, построенная процессором в ходе тестирования
Типизация расхождений 1.Расхождения, вызванные неполнотой словаря. 2.Лексико-морфологические расхождения. 3.Синтаксические расхождения.
Неполнота словаря Для узла в Т отсутствует словарная статья. KSNAME = ФИКТ-ЛЕКС FEAT = NID
Лексико-морфологические расхождения: 1.Для узла в Т выбрана другая лексема. жаль KSNAME=ЖАЛЬ vs. KSNAME=ЖАЛИТЬ 2.Для узла в Т выбрана та же лексема, но другой набор морфологических характеристик. богатым FEAT=… ЕД ТВОР vs. FEAT=… МН ДАТ
Синтаксические расхожения: 1.Узел является вершиной в Э, но не в Т 2.Узел является вершиной в Т, но не в Э 3.Узел в Т сменил своего хозяина 4.Узел в Т зависит от правильного хозяина по неправильному отношению 5.Узел в Т висит на фиктивной связи.
Игнорируются следующие расхождения: Разные хозяева у обстоятельств: Завтра я буду работать. Предложная группа – атрибут существительного или обстоятельство при глаголе: (видел город в тумане). Использование некоторых синтаксических отношений вместо других, но близких к ним.
Применение Регрессионный тест работает как аварийная сигнализация. Появились ошибки во фразах … Оценочный тест тоже позволяет понять динамику развития ЭТАПа. Общий штраф увеличился/ уменьшился на … баллов.
Пример сравнения двух прогонов оценочного теста: … 18. Боюсь, что утомил читателей нудным перечислением чиновной номенклатуры, но без этого никак не обойтись: на наших глазах возводится совершенно новая конструкция, никакой конституцией и законами не предусмотренная - новая властная вертикаль. target_v54_2_test_po.tgt: Штраф: 14 target_v54_2_cgi.tgt: Штраф: Аппарат НАК будет сформирован из сотрудников ФСБ и в рамках ее же структуры, потому центральный аппарат Лубянки расширят еще на 300 штатных единиц. target_v54_2_test_po.tgt: Штраф: 2 target_v54_2_cgi.tgt: Штраф: Власть в руках директора ФСБ сосредоточится поистине колоссальная, сама же система и вовсе не имеет прецедентов: когда и где шеф секретной службы брал под свой контроль, скажем, Генштаб? target_v54_2_test_po.tgt: Штраф: 19 target_v54_2_cgi.tgt: Штраф: 8 … Oбщий штраф уменьшился на 150 Среднее квадратичное отклонение
Спасибо за внимание.