Download - Analysis by-variants
Анализ текста на естественном языке,управляемый вариантами разбора
Носков Алексей
МГУ им. М.В.Ломоносова, ВМК
СодержаниеАнализ текста и неоднозначность
Анализ по этапамНеоднозначность анализаАнализ по вариантам
Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов
Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов
Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики
Программная реализация
2
Независимые этапы анализа
Несколько этапованализа, которые:
I независимыI применяются
последовательно
Текст
Графематический анализ
Морфологический анализ
Синтаксический анализ
Семантический анализ
Внутреннее представление
3
Независимые этапыПричины
Почему так именно так?
I Декомпозиция сложной задачи на более простыеI Удобно описывать и тестировать алгоритмы, работающие
на независимых этапахI Можно проводить разработки в рамках одного этапа, а
другие использовать уже какие-то готовые
Но есть проблема:
I Неоднозначность анализа
4
Неоднозначность анализа
I Проявляется на каждом из этаповI мимо гор. КалугиI мылаI вернулся из поездки в Москву
I Как правило не может быть разрешена в рамках одногоэтапа
I Иногда не может быть разрешена в рамках одного“предложения“
I Река Ока протекает через южную часть гор. Калуги -административного центра области.
5
Неоднозначность анализаПрименяемые решения
I Фильтрация вариантов перед следующим этапомI Можно упустить правильные вариантыI Фильтрация представляет из себя упрощенный вариант
последующих этапов – порождает усложнение идублирование кода
I Передача на следующий этап нескольких вариантовI Можно проанализировать то, что совсем не нужно
6
Неоднозначность анализаРефлексия
Дорога
ложка к обеду
7
Неоднозначность анализаРефлексия
Дорога ложка к обеду
7
Неоднозначность анализаАнализ человеком
Наблюдения о человеке:
I анализирует текст сразу при поступлении словI строит вариант анализа того, что уже поступило и
предполагает что будет дальшеI если новый участок текста не согласуется с
предположением - происходит возвратI расстояние на которое возврат может сделан быстро
ограничено кратковременной памятью
8
Анализ по вариантам
Основные идеи:
I Максимально глубокий анализ (через все возможныеэтапы) того участка текста, который уже поступил
I Анализ дальнейшего текста исходя из результатов анализатого, что уже получено ранее
I Возврат в случае невозможности дальнейшего анализа
9
Анализ по этапамНаправление анализа
Этапы
анал
иза
Варианты анализа
10
Анализ по вариантамНаправление анализа
Этапы
анал
иза
Варианты анализа
11
Анализ по вариантамОсновные проблемы
I Вариантов анализа может быть очень многоI Не рассматривать все варианты - только те, которые
нужны для достижения результатаI Не повторять анализ одних и тех же участков
I Разбиение по этапам удобнее для описанияI Описание этапов не обязательно должно явно
соответствовать последовательности их примененияI Описывать этапы так, чтобы:
I они остались независимымиI при этом позволяли производить анализ по вариантам
12
СодержаниеАнализ текста и неоднозначность
Анализ по этапамНеоднозначность анализаАнализ по вариантам
Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов
Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов
Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики
Программная реализация
13
Представление вариантов анализа
I На каждом уровне текст можно представить как наборнекоторым образом связанных единиц. Например, лексемили синтаксических конструкций.
I Для начала – просто последовательность этих единиц безсвязей.
I Но вариантов представления может быть много.
I Как представлять набор этих вариантов?
14
Представление вариантов анализаCписок вариантов
Простейший способ - просто перечислить все варианты
Я мою пол
I Я мой полыйI Я мой полI Я мой полаI Я мыть полыйI Я мыть полI Я мыть пола
15
Представление вариантов анализаДерево вариантов
Очевидноеулучшение –склеить началовариантов
0 1
2
2
3
3
3
3
3
3
Я
мыть
мой
полый
пол
пола
полый
пол
пола
16
Представление вариантов анализаГраф вариантов
Некоторые неопределенности локальны и не вляют надальнейший текст – можно склеить в граф
0 1 2 3Я
мыть
мой
полыйполпола
В этом графе каждый путь определяет некоторый допустимыйвариант разбора. Будем называть такой граф «графомвариантов».
17
Представление вариантов анализаГраф вариантов
Некоторые неопределенности локальны и не вляют надальнейший текст – можно склеить в граф
0 1 2 3Я
мыть
мой
полыйполпола
В этом графе каждый путь определяет некоторый допустимыйвариант разбора. Будем называть такой граф «графомвариантов».
17
СодержаниеАнализ текста и неоднозначность
Анализ по этапамНеоднозначность анализаАнализ по вариантам
Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов
Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов
Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики
Программная реализация
18
Обработка множества вариантовЭтап анализа как преобразование
Этап анализа – преобразование одного графа вариантов вдругой с сохранением отношений между вариантами:
I Каждый путь из входного графа преобразуется в подграфвыходного графа (возможно пустой)
I Пути выходного подграфа - варианты анализа этого пути
19
Обработка множества вариантовГрафематический анализ
Я мою пол
преобразуется в
Я мою пол
20
Обработка множества вариантовМорфологический анализа
Я мою пол
преобразуется в
0Я
мыть
мой
полыйполпола
21
Обработка множества вариантовСинтаксический анализ
Ямыть
мой
полыйполпола
преобразуется в
0NG(Я) V(мыть) NG(пол) VG(2) S(2)
22
Обработка множества вариантовЭтап анализа как процесс
Этап анализа – процесс, который:
I Имеет состояние, изменяющееся в рамках анализа одноговарианта
I Обрабатывает вариант анализа поэлементно – получает навход один элемент входного варианта и выдает новыеэлементы на выход сразу, как только возможно
I Копируется в случае возникновения неоднозначностиI Склеивается в случае окончания локальной
неоднозначностиI Работает независимо от других процессов (в том числе
своих копий)
23
Обработка множества вариантовРабота процессов
Процессы осуществляют последовательное преобразованиевходного графа в выходной.
Synan|Morphan|GraphanЯ мою пол
24
Обработка множества вариантовРабота процессов
Synan|MorphanЯ мою пол
25
Обработка множества вариантовРабота процессов
Synan MorphanЯ мою пол
26
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan|MorphanNG(Я) мою пол
27
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
1 Synan MorphanNG(Я)
мыть
мойпол
28
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
MorphanNG(Я)
мыть
мой
пол
29
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
MorphanNG(Я)
V(мыть)
мой
пол
30
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
NG(Я)
V(мыть)
мой
полыйполпола
31
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
Synan
Synan
NG(Я)
V(мыть)
мой
полыйпол
полаполый
пол
пола32
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
Synan
Synan
NG(Я)
V(мыть)
A(полый)
мой
пол
полаполый
пол
пола 33
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
Synan
NG(Я)
V(мыть)
мой
пол
полаполый
пол
пола
34
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
Synan
NG(Я)
V(мыть)
N(пол)
мой
полаполый
пол
пола35
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
Synan
NG(Я)
V(мыть) N(пол)
мой
VG(2)
полаполый
пол
пола
36
Обработка множества вариантовРабота процессов
Грамматика для синтаксического анализа:
NG -> N | Pn | A NGVG -> V [NG]S -> NG VG
Synan
Synan
NG(Я)
V(мыть) N(пол)
мой
VG(2)S(2)
полаполый
пол
пола
37
Обработка множества вариантовПорядок работы процессов
От того в каком порядке работают процессы зависитколичество операций для нахождения первого полноговарианта анализа.
I последовательное движение - поиск в глубинуI параллельное движение - поиск в ширинуI введение оценок перспективности анализа - эвристический
поиск
38
СодержаниеАнализ текста и неоднозначность
Анализ по этапамНеоднозначность анализаАнализ по вариантам
Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов
Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов
Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики
Программная реализация
39
Регулярные преобразователи
I Конечные автоматы-преобразователи замечательноподходят под роль процесов:
I Имеют состояние, которое поддерживает сравнение икопирование
I Обрабатывают входящие символы по одномуI Выдают результаты сразу после накопления необходимой
информации
I Языки описания регулярных преобразователей работаютповерх графов вариантов и реализуются процессами
I Все это остается верным и при их расширенииконтекстными условиями (например, как в языкахJape/LSPL)
40
Регулярные преобразователиПример грамматики
adj.agrTo(’noun).* - noun.$(’noun)==> nameGroup(’noun)
nameGroup.$(’subj) - verb.agrTo(’subj) - nameGroup==> action
Может быть использована для преобразования:
I Произвольных подпутей в графе (например, отдельныхконструкций)
I Подпутей в графе, составляющих полный путь (например,последовательных предложений)
I Полного пути в графе (например, единственногопредложения)
41
Контекстно-свободные грамматикиУпаковка дерева
I Упаковка дерева в путь в графе вариантовI Постфиксная запись дереваI Два типа элементов в пути:
I Лист дереваI Промежуточный узел, создаваемый на основе N
предыдущих
I При проходе по графу дерево может быть распакованопутем построения снизу вверх
NG(Я) V(мыть) NG(пол) VG(2) S(2)
42
Контекстно-свободные грамматикиРаспакованное дерево
S
NG(Я) VG
V(мыть) V(пол)
43
Контекстно-свободные грамматикиПлюсы такой упаковки
I Сохраняет последовательность появления листьев
I Допускает обход и преобразование снизу вверх безраспаковки
I Позволяет представлять локальные неоднозначности наразличных уровнях дерева
I Естественное представление, которое получается впроцессе работы LR-анализатора
44
Контекстно-свободные грамматикиПрименение алгоритмов
I Алгоритмы анализа, использующие явный стек легкоадаптируются для работы в виде процессов
I Стек просто становится частью состояния
I Особенно хорошо адаптируются LR-алгоритмыI Последовательность шагов shift-reduce – и есть описанное
выше упакованное дерево
45
Программная реализацияОбщая информация
Прототип на языке Scala
I Простейший графематический анализI Морфологический анализ на базе библиотеки для Lucene,
использующей словари AOTI Реализация графов и процессовI Реализация регулярных преобразователей поверх
процессовI DSL для описания регулярных грамматик непосредственно
в кодеI Визуализация полученных графов вариантов
46
Программная реализацияГраф вариантов
I Ленивая структура данных
I Несколько типов узлов:I Конец вариантаI ВозвратI Множественное ветвление - ленивый список вариантовI Вывод элемента - ленивое вычисление следующего узла
I Может быть раскрыт в ленивый список вариантовI Для получения первых N вариантов анализаI Для отладки
47
Программная реализацияРегулярные преобразователи
DSL для описания грамматики в коде
val grammar = new RegularWordGrammar[Any] {
adj.aggrTo(’main).* - noun.bind(’main) ==> nameGroup
}
val nameGroupGraph = grammar.gsubMatcher(wordsGraph)
48
Дальнейшие направленияI Адаптация более сложных подходов к анализу
I Введение оценок перспективности для эвристическогопоиска
I Ограничение кратковременной памяти
I Проведение экспериментовI Качество работыI Вычислительная эффективность
I Реализация программной системы для экспериментов сподходом
I Базовая библиотека, реализующая подходI Средства для описания более сложных методов анализаI Графическая среда для экспериментов без
программирования49
Вопросы?