advertisement

NLU/RG: интерпретация команд с помощью OpenCCG

50 %
50 %
advertisement
Information about NLU/RG: интерпретация команд с помощью OpenCCG
Education

Published on March 14, 2014

Author: vtqveant

Source: slideshare.net

advertisement

SmartHouse SynSem MMCCG & HLDS FTW Константин Соколов Mathlingvo, СПбГУ, i-Free http://nlu-rg.ru Санкт-Петербург, 2014

План • Постановка задачи • Концепция решения • Теоретические основы и технологии • Демонстрация • Результаты прототипирования, оценки 1

Большая задача Мультимодальное управление умным домом Подзадача Семантический анализ запросов в рамках естественно-языкового интерфейса управления умным домом 2

Постановка задачи • Умный дом • согласованное взаимодействие разнородного оборудования • обратная связь, видимость, прозрачность • персонализированное, адаптивное, проактивное поведение • Мультимодальное управление • сосуществование различных способов управления • естественно-языковой интерфейс не должен уметь всё 3

Допущения и предпосылки 4

Допущения и предпосылки (1) Командный режим работы: • Это не диалоговая система и не IVR • Обратная связь • изменение состояния устройств • панель управления • носимые устройства • звуковые сигналы и пр. • Голосовое взаимодействие одностороннее • уточнений и наводящих вопросов от системы нет • синтеза речи нет • mixed initiative нет 5

Допущения и предпосылки (2) Контролируемый язык: • Две крайности, которых хотелось бы избежать: • всё что угодно • список команд для заучивания • Ограниченный домен • мы работаем с очень узкой предметной областью • мы контролируем набор языковых конструкций и словарь • Цель: говорить как угодно, но ”только про лампочки”. 6

Допущения и предпосылки (3) Дискурс: • Поддержка контекста взаимодействия в пределах сессии • В пределах сессии пользователь может • чего-то не уточнять, предполагать известным • ссылаться на предшествующее состояние системы • ссылаться на свои прошлые слова 7

Допущения и предпосылки (4) Голосовое управление: • ASR может ошибаться • ASR может возвращать список гипотез • ASR можно настраивать с учетом текущего контекста 8

Допущения и предпосылки (5) Ежедневное использование: • Пользователей мало, но они взаимодействуют постоянно • Доля успешных взаимодействий должна быть большой • Требуется качественный анализ и быстродействие 9

Допущения и предпосылки (6) Технические особенности: • Возможность опереться на знания о системе и пользователях • Возможность использовать специализированное оборудование для решения задачи управления • Возможность использовать вычислительно тяжелые подходы • Нет возможности ”ходить в облако” 10

Близкие области исследований 11

Близкие области исследований (1) • Вычислительная семантика • теоретико-модельная формальная семантика • синтактико-семантический интерфейс • NLU как компонент систем распознавания речи • Искусственный интеллект • символьные методы в компьютерной лингвистике • робототехника (анализ сцен, восприятие) • представление знаний и interactive grounding • Computer Science • логический вывод • проверка и построение моделей • верификация программ 12

Близкие области исследований (2) • Известные решения • C&C Tools • OpenCCG • LKB, PATR-II и др. • Дорожки • Recognizing Textual Entailment (c 2005 г.) • Supervised Semantic Parsing of Robotic Spatial Commands (SemEval-2014) 13

Основные проблемы 14

Основные проблемы (1) • Ошибки распознавания • “включи” и “выключи” • “включи свет и лампу” и “включи свет у лампы” • Неоднозначность • “красная и белая лампа” • две лампы, одна красная и одна белая • одна красно-белая лампа (“большой и сильный человек”) • “красная лампа в прихожей” • в прихожей много ламп, одна из них красная • красных ламп много, одна из них в прихожей • “включи свет и телевизор на кухне” • и свет, и телевизор - на кухне • телевизор на кухне, свет - нет 15

Основные проблемы (2) • Учет семантических и прагматических факторов • “включи лампу на кухне и телевизор в комнате” • кухня не может стоять в комнате • “включи лампу на столе и телевизор в комнате” • лампа на столе, стол в комнате • лампа на столе, но стол не в комнате • “включи лампу” • зависимость от местоположения • зависимость от конфигурации (несколько ламп) • “сделай музыку погромче” • разное поведение днем и ночью • различные пользовательские предпочтения 16

Предлагаемый подход 17

Предлагаемый подход (1) • Синтактико-семантический компонент • получает список вариантов от ASR • формирует варианты интерпретации • устраняет заведомо некорректные варианты • расширяет пространство гипотез, делая допущения • вычисляет оценки правдоподобности гипотез • формирует ранжированный список гипотез • Модуль принятия решений делает выбор на основе • прагматической информации • местоположения пользователя • состояния оборудования • времени суток • эвристик и правила (интеллектуальное поведение) • модели пользователя (персонализация) • статистики прошлых запросов (адаптация) • текущих предпочтений (режим работы, энергосбережение) 18

Предлагаемый подход (2) Суть подхода - генерация гипотез и фильтрация Компонент Число гипотез Параметры для расчета оценки Распознавание речи 10 score, confidence Расширение запроса 100 количество вставок, удалений, пропусков, словарных замен, расстояние редактирования Парсер 100 сложность разборов, проективность, использование доп. правил Логическая форма 200 глубина для рекурсивных структур, количество переменных, число клауз и пр. Оценка модели 10 выполнимость всей формы или отдельных её частей 19

Цели 20

Цели прототипирования (1) • Работа с русским языком • Работа с неоднозначностью • Оценка реализуемости и трудоемкости • Оценка возможностей имеющихся open-source решений для работы с deep semantic parsing • Оценка возможности интеграции в существующую инфраструктуру (включая интеграцию с ASR) • Оценка вариативности языковых конструкций, поддающихся реализации 21

Цели прототипирования (2) НЕ ставились цели: • Достичь быстродействия системы или оценить его • Покрытие кейсов по сценариям использования системы конечным пользователем 22

Цели демонстрации (1) • Рассказать о теоретических основах подхода • Рассказать об используемых компонентах • Рассказать об используемых формализмах • Посмотреть на реализацию разборов конкретных типов предложений • Дать оценки по исходным задачам прототипа 23

Цели демонстрации (2) • Рассказать об ограничених текущего прототипа и как их можно решать • Рассказать, что еще не было сделано • Рассказать о дополнительных возможностях, которые может предостаавить выбранный подход 24

Теоретический минимум и технологии 25

Теоретический минимум • Multimodal Combinatory Categorial Grammar (MMCCG) • Hybrid Logic Dependency Semantics (HLDS) • Hybrid Logic Model Checking (HLMC) 26

MMCCG This page intentionally left blank 27

Модальная логика Модальный оператор • φ - “необходимо p” • ♦φ - “возможно p” • ♦φ ≡ ∼ ∼ φ Аксиомы некоторых модальных систем: • K: (φ ⊃ ψ) ⊃ ( φ ⊃ ψ) • T: φ ⊃ φ • S4: φ ⊃ φ 28

Реляционная семантика (1) Шкала Крипке (Kripke frame): F = (W , R), где W - непустое множество, R ⊆ W × W . • wi ∈ W - миры, состояния, точки отнесенности • R - отношение достижимости • если wRv, то говорят, что v возможен относительно w 29

Реляционная семантика (2) Модель Крипке M = (F, V ), где • F - шкала Крипке • V : P → 2W - функция оценивания, т.е. отображение из атомарных выражений в подмножества множества миров 30

Реляционная семантика (3) Пусть M = (F, V ), w ∈ W , φ - формула, p ∈ P Истинность φ в модели M в точке w определяется рекурсивно • M, w |= p ⇐⇒ w ∈ V (p) • M, w |= ¬φ ⇐⇒ M, w |= φ • M, w |= φ ∨ ψ ⇐⇒ M, w |= φ или M, w |= ψ • M, w |= φ ⇐⇒ ∀v ∈ W . (wRv → M, v |= φ) • M, w |=⊥ Если M, w |= φ, говорят, что φ логически следует из M, w 31

Мультимодальная логика • Набор модальных операторов i (соотв., ♦i ) • Шкала Крипке - размеченный граф 32

Гибридная логика (1) • Будем писать π и [π] вместо ♦π и π • π α ≡ ¬[π]¬α • Введем дополнительно класс номиналов (обозн. i, j, k) • Введем оператор @i со значением “истинно в точке i” Язык гибридной логики HL(@): WFFHL(@) := | i | p | ¬α | α ∧ β | π α | @i α 33

Гибридная логика (2) Гибридная модель Крипке: M = (W , {Rπ|π ∈ MOD}, V ), где • F = (W , {Rπ|π ∈ MOD}) - шкала Крипке • V : PROP ∪ NOM → 2W • V (i) - синглетон 34

Гибридная логика (3) Денотационная семантика для HL(@): • M, w |= i ⇔ w = V (i) • M, w |= @i α ⇔ M, w |= α и w = V (i) 35

Гибридная логика и XML (1) <biblio> <book id="b1"> <author>Marx</author> <author>de Rijke</author> <title>Hybrid Logics</title> <date>1998</date> <cites idref="b1"/> </book> <book id="b2"> <author>Franceschet</author> <title>Model Checking</title> <date>2000</date> <cites idref="a1"/> </book> </biblio> 36

Гибридная логика и XML (2) XML документ - модель, формула гибридной логики - запрос. • Существует ли в точности одна книга автора Franceschet? • @root biblio book ↓ x . author Franceschet ∧ @root biblio [book]x • Существует ли две разных книги? • @root biblio book ↓ x . @root biblio book ¬x 37

Гибридная логика и проверка моделей Дана гибридная модель M и формула α, найти все узлы в M, в которых α истинна: T(M, α) = {w ∈ W | M, w |= α} 38

Hybrid Logic Dependency Semantics Hybrid Logic Dependency Semantics: • Композициональный семантический формализм • Описание семантических структур зависимостей с помощью выражений гибридной логики • Cемантическая композиция реализуется как унификация логических форм (ср. с формализмами на основе λ-исчисления: конкатенация с последующей редукцией) • Реализован в системе OpenCCG (Baldridge et al., 2007) 39

Технологии • OpenCCG (Baldridge et al., 2007) • Грамматика Moloko (DFKI) • HLMC (L. Dragone) 40

Формализмы 41

dotCCG (1) • DSL для создания MMCCG-грамматик • Транслируется в XML-формат OpenCCG • MOLOKO - около 4 kLOC • Мой прототип - около 0.5 kLOC (из-за морфологии) 42

dotCCG (2) Определение семейства слов: family tv(V) { entry : s ! np / np : E:event(* <Actor>(S:entity) <Patient>(X:entity)); } Запись в словарной части: word лампа:Noun(thing, pred=лампа) { лампа: s-sg nom fem; лампу: s-sg acc fem; лампы: s-pl nom fem; лампы: s-pl acc fem; } 43

dotCCG (3) Правила изменения типа: rule { typechange: s<10> [E NUM PERS MOOD POL FIN VFORM vf-to-imp] ! np<9> [S nom NUM PERS nf-real] / np<2> [X acc] => s<~10>[E fin-full s-imp] / np<2> [X acc] : E:event(<Mood>(imp) <Subject>(S:entity addressee)); } 44

dotCCG (4) Фрагмент онтологии: feature { ont-event: event { action }; ont-entity: entity { physical { animate { person }, thing, e-location { e-region, e-place } } }; }; 45

dotCCG (5) Макросы: def COORD(args) { R( args <First>(F) ^ <Next>(N) ) } # Адъективное склонение, твердая разновидность def adj-adj-h-sg-fem(base) { # sg, fem base."ая" : nom s-sg s-degree-base fem pre-n; base."ой" : gen s-sg s-degree-base fem pre-n; base."ой" : dat s-sg s-degree-base fem pre-n; base."ую" : acc s-sg s-degree-base fem pre-n; base."ой" : abl s-sg s-degree-base fem pre-n; base."ой" : loc s-sg s-degree-base fem pre-n; } 46

HLDS (1) Компактная форма: @w0:action(ON ^ <Mood>imp ^ <Actor>x1:entity ^ <Patient>(w2:thing ^ лампа ^ <Num>sg ^ <Modifier>(w1:q-color ^ красный-adj) ^ <Modifier>(w3:m-location ^ на ^ <Anchor>(w4:e-place ^ кухня ^ <Num>sg)))) 47

HLDS (2) Линеаризованная форма: @E_0:action(CLOSE) ^ @E_0:action(<Mood>imp) ^ @E_0:action(<Actor>S_0:entity) ^ @E_0:action(<Patient>T_1:thing) ^ @M_3:m-location(в) ^ @M_3:m-location(<Anchor>T_4:e-place) ^ @T_1:thing(шторы) ^ @T_1:thing(<Num>pl) ^ @T_1:thing(<Modifier>M_3:m-location) ^ @T_4:e-place(прихожая) ^ @T_4:e-place(<Num>sg)) 48

HLDS (3) HLDS в виде AVM: action              predicate on Mood imp Actor 1 Patient thing      predicate 2 лампа Num sg Modifier q-color predicate красный_adj                   49

HLMC (1) Выражение на языке гибридной логики для HLMC: # без номиналов shtory & <num>(pl) & <modifier>(na & <anchor>(kuhnya & <num>(sg))) # с номиналами и переменными @root (B x (<thing>(x <modifier>(<anchor>(kuhnya))))) 50

HLMC (2) Гибридная модель Крипке для HLMC (описывается в XML). 51

Пример анализа 52

Пример анализа (1) включи лампу и подсветку на кухне 53

Пример анализа (2) Первый вариант разбора (MMCCG): включи лампу и подсветку на кухне s − np/np np n/np∗ np n pp/ np np < n/np > pp typechange−6 n∗ n < n typechange−3 np > n typechange−4 np > s − np 54

Пример анализа (3) Первый вариант разбора (HLDS): @w0:action(ON ^ <Mood>imp ^ <Actor>x1:entity ^ <Patient>(w2:entity ^ и ^ <Num>pl ^ <First>(w1:thing ^ лампа ^ <Num>sg) ^ <Next>(w3:thing ^ подсветка ^ <Num>sg ^ <Modifier>(w4:m-location ^ на ^ <Anchor>(w5:e-place ^ кухня ^ <Num>sg))) ^ <Num>pl)) 55

Пример анализа (4) Первый вариант разбора (HLMC): > ON (lampa & <num>(sg)) : x1_node x6_node > ON (podsvetka & <num>(sg) & <modifier>((na & <anchor>((kuhnya & <num>(sg)))))) : x3_node 56

Пример анализа (5) Второй вариант разбора (MMCCG): включи лампу и подсветку на кухне s − np/np np n/np∗ np np pp/ np np < n/np > pp > n typechange−6 n∗ n < n typechange−4 np > s − np 57

Пример анализа (6) Второй вариант разбора (HLDS): @w0:action(ON ^ <Mood>imp ^ <Actor>x1:entity ^ <Patient>(w2:entity ^ и ^ <Num>pl ^ <First>(w1:thing ^ лампа ^ <Num>sg) ^ <Modifier>(w4:m-location ^ на ^ <Anchor>(w5:e-place ^ кухня ^ <Num>sg)) ^ <Next>(w3:thing ^ подсветка ^ <Num>sg) ^ <Num>pl)) 58

Пример анализа (7) Второй вариант разбора (HLMC): > ON (lampa & <num>(sg) & <modifier>((na & <anchor>((kuhnya & <num>(sg)))))) : x1_node > ON (podsvetka & <num>(sg) & <modifier>((na & <anchor>((kuhnya & <num>(sg)))))) : x3_node 59

Другие примеры (1) • лампа • красная лампа • включи красную лампу • выключи красную лампу • включи красную лампу на кухне • включи лампу на кухне • включи красную лампу и подсветку 60

Другие примеры (2) • включи красную лампу на кухне и подсветку • включи красную лампу и подсветку на кухне • включи лампу на кухне и подсветку в прихожей • включи лампу и выключи подсветку • включи красную лампу и выключи лампу на кухне • включи красную лампу и закрой шторы на кухне 61

Другие примеры (3) • включи и выключи лампу • включи и выключи лампу на кухне • включи и выключи лампу и подсветку на кухне • включи лампу и лампочку и подсветку на кухне • включи и выключи лампу на кухне и подсветку в прихожей • включи и выключи лампу на столе и подсветку в прихожей 62

Выводы и оценки 63

Работа с русским языком • Простые типы предложений портируются легко • Необходимо аккуратно реализовать онтологию • Трудоемкая реализация морфологии (но ср.: RusForIR) • Программировать не нужно • Работа для лингвиста (или нескольких) • Отличные возможности для повторного использования • Реализация большого фрагмента русского языка в формализме MMCCG может стать существенным вкладом в отечественную компьютерную лингвистику 64

Работа с неоднозначностью • Удалось реализовать все предполагавшиеся варианты • ... и обнаружить еще несколько 65

Что предстоит сделать • Поддержка дискурса • Расчет оценок • Портирование HLMC и поддержка типов • Автоматизация создания модели 66

Оценка трудоемкости • Грамматика - около месяца • Model Checking - до двух недель • Модуль принятия решений - не удалось оценить 67

Новые возможности • Генерация правого контекста для распознавания речи • Валидация модели • Извлечение семантических ролей 68

Спасибо!

Add a comment

Related presentations

Related pages

Понимание естественного языка ...

NLU/RG РАСПИСАНИЕ ... 13.03.14 Интерпретация команд средствами OpenCCG. 06.03.14 Dynamic Predicate Logic ...
Read more

Интерпретатор — Википедия

Эта статья включает описание термина «Интерпретация»; ... машинный код с помощью ...
Read more

Просмотр и интерпретация ...

Просмотр и интерпретация ... С помощью команд просмотра ... сравнение с другими ...
Read more

Интерпретация содержимого ...

Свяжитесь с нами . | . . .... | | ...
Read more

Google разработала детские ...

Интерпретация команд осуществляется с помощью ... полноценную беседу с ...
Read more

Команды и переключатели Visual Studio

С помощью команды alias ... Команда и Интерпретация, ... сходны с именами команд.
Read more

Команды и переключатели Visual Studio

... окне Команда или Интерпретация, ... С помощью команды alias ... сходны с именами команд.
Read more

Команды Telnet - Бесплатная ...

С помощью команд tlntadmn можно удаленно ... требуется ли интерпретация сервером Telnet ...
Read more

Обзор команд диспетчера сервера

При установке с помощью ... команд для ролей ... Интерпретация ...
Read more