analysis by-variants

52
Анализ текста на естественном языке, управляемый вариантами разбора Носков Алексей МГУ им. М.В.Ломоносова, ВМК [email protected]

Upload: natalia-ostapuk

Post on 16-Jun-2015

523 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analysis by-variants

Анализ текста на естественном языке,управляемый вариантами разбора

Носков Алексей

МГУ им. М.В.Ломоносова, ВМК

[email protected]

Page 2: Analysis by-variants

СодержаниеАнализ текста и неоднозначность

Анализ по этапамНеоднозначность анализаАнализ по вариантам

Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов

Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов

Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики

Программная реализация

2

Page 3: Analysis by-variants

Независимые этапы анализа

Несколько этапованализа, которые:

I независимыI применяются

последовательно

Текст

Графематический анализ

Морфологический анализ

Синтаксический анализ

Семантический анализ

Внутреннее представление

3

Page 4: Analysis by-variants

Независимые этапыПричины

Почему так именно так?

I Декомпозиция сложной задачи на более простыеI Удобно описывать и тестировать алгоритмы, работающие

на независимых этапахI Можно проводить разработки в рамках одного этапа, а

другие использовать уже какие-то готовые

Но есть проблема:

I Неоднозначность анализа

4

Page 5: Analysis by-variants

Неоднозначность анализа

I Проявляется на каждом из этаповI мимо гор. КалугиI мылаI вернулся из поездки в Москву

I Как правило не может быть разрешена в рамках одногоэтапа

I Иногда не может быть разрешена в рамках одного“предложения“

I Река Ока протекает через южную часть гор. Калуги -административного центра области.

5

Page 6: Analysis by-variants

Неоднозначность анализаПрименяемые решения

I Фильтрация вариантов перед следующим этапомI Можно упустить правильные вариантыI Фильтрация представляет из себя упрощенный вариант

последующих этапов – порождает усложнение идублирование кода

I Передача на следующий этап нескольких вариантовI Можно проанализировать то, что совсем не нужно

6

Page 7: Analysis by-variants

Неоднозначность анализаРефлексия

Дорога

ложка к обеду

7

Page 8: Analysis by-variants

Неоднозначность анализаРефлексия

Дорога ложка к обеду

7

Page 9: Analysis by-variants

Неоднозначность анализаАнализ человеком

Наблюдения о человеке:

I анализирует текст сразу при поступлении словI строит вариант анализа того, что уже поступило и

предполагает что будет дальшеI если новый участок текста не согласуется с

предположением - происходит возвратI расстояние на которое возврат может сделан быстро

ограничено кратковременной памятью

8

Page 10: Analysis by-variants

Анализ по вариантам

Основные идеи:

I Максимально глубокий анализ (через все возможныеэтапы) того участка текста, который уже поступил

I Анализ дальнейшего текста исходя из результатов анализатого, что уже получено ранее

I Возврат в случае невозможности дальнейшего анализа

9

Page 11: Analysis by-variants

Анализ по этапамНаправление анализа

Этапы

анал

иза

Варианты анализа

10

Page 12: Analysis by-variants

Анализ по вариантамНаправление анализа

Этапы

анал

иза

Варианты анализа

11

Page 13: Analysis by-variants

Анализ по вариантамОсновные проблемы

I Вариантов анализа может быть очень многоI Не рассматривать все варианты - только те, которые

нужны для достижения результатаI Не повторять анализ одних и тех же участков

I Разбиение по этапам удобнее для описанияI Описание этапов не обязательно должно явно

соответствовать последовательности их примененияI Описывать этапы так, чтобы:

I они остались независимымиI при этом позволяли производить анализ по вариантам

12

Page 14: Analysis by-variants

СодержаниеАнализ текста и неоднозначность

Анализ по этапамНеоднозначность анализаАнализ по вариантам

Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов

Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов

Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики

Программная реализация

13

Page 15: Analysis by-variants

Представление вариантов анализа

I На каждом уровне текст можно представить как наборнекоторым образом связанных единиц. Например, лексемили синтаксических конструкций.

I Для начала – просто последовательность этих единиц безсвязей.

I Но вариантов представления может быть много.

I Как представлять набор этих вариантов?

14

Page 16: Analysis by-variants

Представление вариантов анализаCписок вариантов

Простейший способ - просто перечислить все варианты

Я мою пол

I Я мой полыйI Я мой полI Я мой полаI Я мыть полыйI Я мыть полI Я мыть пола

15

Page 17: Analysis by-variants

Представление вариантов анализаДерево вариантов

Очевидноеулучшение –склеить началовариантов

0 1

2

2

3

3

3

3

3

3

Я

мыть

мой

полый

пол

пола

полый

пол

пола

16

Page 18: Analysis by-variants

Представление вариантов анализаГраф вариантов

Некоторые неопределенности локальны и не вляют надальнейший текст – можно склеить в граф

0 1 2 3Я

мыть

мой

полыйполпола

В этом графе каждый путь определяет некоторый допустимыйвариант разбора. Будем называть такой граф «графомвариантов».

17

Page 19: Analysis by-variants

Представление вариантов анализаГраф вариантов

Некоторые неопределенности локальны и не вляют надальнейший текст – можно склеить в граф

0 1 2 3Я

мыть

мой

полыйполпола

В этом графе каждый путь определяет некоторый допустимыйвариант разбора. Будем называть такой граф «графомвариантов».

17

Page 20: Analysis by-variants

СодержаниеАнализ текста и неоднозначность

Анализ по этапамНеоднозначность анализаАнализ по вариантам

Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов

Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов

Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики

Программная реализация

18

Page 21: Analysis by-variants

Обработка множества вариантовЭтап анализа как преобразование

Этап анализа – преобразование одного графа вариантов вдругой с сохранением отношений между вариантами:

I Каждый путь из входного графа преобразуется в подграфвыходного графа (возможно пустой)

I Пути выходного подграфа - варианты анализа этого пути

19

Page 22: Analysis by-variants

Обработка множества вариантовГрафематический анализ

Я мою пол

преобразуется в

Я мою пол

20

Page 23: Analysis by-variants

Обработка множества вариантовМорфологический анализа

Я мою пол

преобразуется в

мыть

мой

полыйполпола

21

Page 24: Analysis by-variants

Обработка множества вариантовСинтаксический анализ

Ямыть

мой

полыйполпола

преобразуется в

0NG(Я) V(мыть) NG(пол) VG(2) S(2)

22

Page 25: Analysis by-variants

Обработка множества вариантовЭтап анализа как процесс

Этап анализа – процесс, который:

I Имеет состояние, изменяющееся в рамках анализа одноговарианта

I Обрабатывает вариант анализа поэлементно – получает навход один элемент входного варианта и выдает новыеэлементы на выход сразу, как только возможно

I Копируется в случае возникновения неоднозначностиI Склеивается в случае окончания локальной

неоднозначностиI Работает независимо от других процессов (в том числе

своих копий)

23

Page 26: Analysis by-variants

Обработка множества вариантовРабота процессов

Процессы осуществляют последовательное преобразованиевходного графа в выходной.

Synan|Morphan|GraphanЯ мою пол

24

Page 27: Analysis by-variants

Обработка множества вариантовРабота процессов

Synan|MorphanЯ мою пол

25

Page 28: Analysis by-variants

Обработка множества вариантовРабота процессов

Synan MorphanЯ мою пол

26

Page 29: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan|MorphanNG(Я) мою пол

27

Page 30: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

1 Synan MorphanNG(Я)

мыть

мойпол

28

Page 31: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

MorphanNG(Я)

мыть

мой

пол

29

Page 32: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

MorphanNG(Я)

V(мыть)

мой

пол

30

Page 33: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

NG(Я)

V(мыть)

мой

полыйполпола

31

Page 34: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

Synan

Synan

NG(Я)

V(мыть)

мой

полыйпол

полаполый

пол

пола32

Page 35: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

Synan

Synan

NG(Я)

V(мыть)

A(полый)

мой

пол

полаполый

пол

пола 33

Page 36: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

Synan

NG(Я)

V(мыть)

мой

пол

полаполый

пол

пола

34

Page 37: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

Synan

NG(Я)

V(мыть)

N(пол)

мой

полаполый

пол

пола35

Page 38: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

Synan

NG(Я)

V(мыть) N(пол)

мой

VG(2)

полаполый

пол

пола

36

Page 39: Analysis by-variants

Обработка множества вариантовРабота процессов

Грамматика для синтаксического анализа:

NG -> N | Pn | A NGVG -> V [NG]S -> NG VG

Synan

Synan

NG(Я)

V(мыть) N(пол)

мой

VG(2)S(2)

полаполый

пол

пола

37

Page 40: Analysis by-variants

Обработка множества вариантовПорядок работы процессов

От того в каком порядке работают процессы зависитколичество операций для нахождения первого полноговарианта анализа.

I последовательное движение - поиск в глубинуI параллельное движение - поиск в ширинуI введение оценок перспективности анализа - эвристический

поиск

38

Page 41: Analysis by-variants

СодержаниеАнализ текста и неоднозначность

Анализ по этапамНеоднозначность анализаАнализ по вариантам

Представление вариантов анализаСписок вариантовДерево вариантовГраф вариантов

Обработка множества вариантовПреобразование графов вариантовПроцессы на графах вариантов

Применение алгоритмов анализаРегулярные преобразователиКонтекстно-свободные грамматики

Программная реализация

39

Page 42: Analysis by-variants

Регулярные преобразователи

I Конечные автоматы-преобразователи замечательноподходят под роль процесов:

I Имеют состояние, которое поддерживает сравнение икопирование

I Обрабатывают входящие символы по одномуI Выдают результаты сразу после накопления необходимой

информации

I Языки описания регулярных преобразователей работаютповерх графов вариантов и реализуются процессами

I Все это остается верным и при их расширенииконтекстными условиями (например, как в языкахJape/LSPL)

40

Page 43: Analysis by-variants

Регулярные преобразователиПример грамматики

adj.agrTo(’noun).* - noun.$(’noun)==> nameGroup(’noun)

nameGroup.$(’subj) - verb.agrTo(’subj) - nameGroup==> action

Может быть использована для преобразования:

I Произвольных подпутей в графе (например, отдельныхконструкций)

I Подпутей в графе, составляющих полный путь (например,последовательных предложений)

I Полного пути в графе (например, единственногопредложения)

41

Page 44: Analysis by-variants

Контекстно-свободные грамматикиУпаковка дерева

I Упаковка дерева в путь в графе вариантовI Постфиксная запись дереваI Два типа элементов в пути:

I Лист дереваI Промежуточный узел, создаваемый на основе N

предыдущих

I При проходе по графу дерево может быть распакованопутем построения снизу вверх

NG(Я) V(мыть) NG(пол) VG(2) S(2)

42

Page 45: Analysis by-variants

Контекстно-свободные грамматикиРаспакованное дерево

S

NG(Я) VG

V(мыть) V(пол)

43

Page 46: Analysis by-variants

Контекстно-свободные грамматикиПлюсы такой упаковки

I Сохраняет последовательность появления листьев

I Допускает обход и преобразование снизу вверх безраспаковки

I Позволяет представлять локальные неоднозначности наразличных уровнях дерева

I Естественное представление, которое получается впроцессе работы LR-анализатора

44

Page 47: Analysis by-variants

Контекстно-свободные грамматикиПрименение алгоритмов

I Алгоритмы анализа, использующие явный стек легкоадаптируются для работы в виде процессов

I Стек просто становится частью состояния

I Особенно хорошо адаптируются LR-алгоритмыI Последовательность шагов shift-reduce – и есть описанное

выше упакованное дерево

45

Page 48: Analysis by-variants

Программная реализацияОбщая информация

Прототип на языке Scala

I Простейший графематический анализI Морфологический анализ на базе библиотеки для Lucene,

использующей словари AOTI Реализация графов и процессовI Реализация регулярных преобразователей поверх

процессовI DSL для описания регулярных грамматик непосредственно

в кодеI Визуализация полученных графов вариантов

46

Page 49: Analysis by-variants

Программная реализацияГраф вариантов

I Ленивая структура данных

I Несколько типов узлов:I Конец вариантаI ВозвратI Множественное ветвление - ленивый список вариантовI Вывод элемента - ленивое вычисление следующего узла

I Может быть раскрыт в ленивый список вариантовI Для получения первых N вариантов анализаI Для отладки

47

Page 50: Analysis by-variants

Программная реализацияРегулярные преобразователи

DSL для описания грамматики в коде

val grammar = new RegularWordGrammar[Any] {

adj.aggrTo(’main).* - noun.bind(’main) ==> nameGroup

}

val nameGroupGraph = grammar.gsubMatcher(wordsGraph)

48

Page 51: Analysis by-variants

Дальнейшие направленияI Адаптация более сложных подходов к анализу

I Введение оценок перспективности для эвристическогопоиска

I Ограничение кратковременной памяти

I Проведение экспериментовI Качество работыI Вычислительная эффективность

I Реализация программной системы для экспериментов сподходом

I Базовая библиотека, реализующая подходI Средства для описания более сложных методов анализаI Графическая среда для экспериментов без

программирования49

Page 52: Analysis by-variants

Вопросы?