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