SlideShare a Scribd company logo
1 of 21
Download to read offline
Организация диалога с чатботом 
Уласень С.Н., к.т.н.
Что такое чатбот 
Чатбот - это компьютерная 
программа, которая общается с 
пользователем на естественном 
языке и имитирует человека
Возможности чатбота 
Чатбот “Евгений Густман” 
7 июня 2014 - на соревнованиях, организованных 
университетом Рединга в честь 60-й годовщины со дня 
смерти Алана Тьюринга, 33% судей после пятиминутного 
общения приняли чатбот “Eugene Goostman” за человека. 
В соревновании принимали участие 5 чатботов и 30 
судей. 
Каждый судья общался с каждым из 5 чатботов и c 
человеком.
Разпознование человека 
Вопрос: 299 
Ответ: Это что? 
Вывод: человек 
Вопрос: 299 
Ответ: 10 
Вывод: человек 
Вопрос: 299 
Ответ: 66 
Ну наконец-то, свой!
Этапы создания чатбота 
1. Создание базовой диалоговой системы 
и базы знаний чатбота 
2. Персонализация чатбота 
3. Непрерывное совершенствование: 
улучшение - тестирование - 
исправление
Создание диалоговой системы 
● организация диалога в простых конструкциях 
"вопрос-ответ" 
○ конструирование вопросов пользователя 
○ конструирование ответов чатбота 
● учет темы разговора 
● конструирование мини-диалогов 
● управление диалогом
Диалоговая система: Конструирование 
вопросов пользователя 
Пример 1: Простой шаблон с токеном 
<QAUnit name="Hi_hello" > 
<Pattern> (Hi|Hello) * </Pattern> 
<Text> 
Hi. I hope you'll enjoy our conversation! 
</Text> 
</QAUnit> 
Пример 2: Шаблон с составным токеном 
<MultiToken name="hello1" >(Hi|Hello)</MultiToken> 
<MultiToken name="hello2" >(Privet|salute)</MultiToken> 
<MultiToken name="hello" >(#(hello1)|#(hello2)) 
</MultiToken> 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * </Pattern> 
<Text>Hi. I hope you'll enjoy our conversation!</Text> 
</QAUnit> 
Пример 3: Анализ части фразы 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * my name is * </Pattern> 
<!-- extract user name … --> 
<Text>Hi #(user_name)!</Text> 
</QAUnit> 
Пример 4: Анализ фразы с получением имени и пола 
пользователя 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * my name is #(MaleName) </Pattern> 
<Text>You said #(user_name)? Nice to meet you, sir!</Text> 
</QAUnit> 
Пример 5: Несколько шаблонов 
<QAUnit name="Hi_hello" > 
<Pattern> (Hi|Hello) * </Pattern> 
<Pattern> (Privet|Salut) * </Pattern> 
… 
</QAUnit>
Диалоговая система: Конструирование 
ответов чатбота 
Пример 1: Простой ответ 
<QAUnit name="Hi_hello" > 
<Pattern> (Hi|Hello) * </Pattern> 
<Text> Hi. I hope you'll enjoy our conversation! </Text> 
</QAUnit> 
Пример 2: Несколько вариантов ответа 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * </Pattern> 
<Random> 
<Text>Hi. I hope you'll enjoy our conversation!</Text> 
<Text>Hello, I'm really glad to have the chance 
to chat with you! </Text> 
<Text>Howdy pal! Today is a kind of never-ending talk-show, 
I'd say!</Text> 
<Text>Salute! </Text> 
</Random> 
</QAUnit> 
Пример 3: Несколько групп ответов 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * </Pattern> 
<If hi_was EQ “NO”> 
<Random> 
<Text>Nice to meet you! </Text> 
<Text>Hi. I hope you'll enjoy our conversation!</Text> 
</Random> 
<Else> 
<Random> 
<Text>Hi again! I hope you enjoy greetings.</Text> 
<Text>Hello again. I see you like greeting me.</Text> 
<Text>Salute again!</Text> 
</Random> 
</If> 
</QAUnit>
Диалоговая система: Конструирование 
ответов чатбота-2 
Пример 5. Ответы с синонимами 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * </Pattern> 
<Text>#(hello)! Nice to meet you!</Text> 
</QAUnit> 
Пример 4: Ответы с использованием полученной информации 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * my name is #(MaleName) </Pattern> 
<Text>You said #(user_name)? Nice to meet you, sir!</Text> 
</QAUnit> 
<QAUnit name="Encyclopedia" > 
<Pattern>* #(qWhatAbout) (a|the|an|) #(dynEncyc) *</Pattern> 
<Pattern>* (what|tell me | explain|understand) * meaning of * #(dynEncyc) 
*</Pattern> 
<Variable name="term" type="String">=lasttoken</Variable> 
<!-- select definition from database… --> 
<Random> 
<Text>Ok, lets look up in my pocket encyclopedia. They say #(term) - # 
(definition).</Text> 
<Text>I remember it! #(definition)</Text> 
</Random> 
</QAUnit>
Диалоговая система: Учет темы диалога 
Пример диалога 
USER: what is a location of france 
RESPONSE: Buy a map and hang it over your desk! France - country in W 
Europe, on the Atlantic and the Mediterranean Sea. 
USER: what is its population 
RESPONSE: Well, according to the latest secret data approximately 65 mln live 
in France.
Диалоговая система: Учет темы диалога 
2. Вложенная конструкция 
<QAUnit name="hi_how_are_you_good_1"> 
<Pattern>* I * (am (doing|feeling|) | feel) *</Pattern> 
<Text>Yeah, it's lovely day!</Text> 
<QAUnit .../> 
<QAUnit .../> 
</QAUnit> 
1. Контекстная конструкция 
<Theme name="How_are_you"> 
<QAUnit …. /> 
<QAUnit …. /> 
<QAUnit name="hi_how_are_you_good_1"> 
<Pattern>* I * (am (doing|feeling|) | feel) *</Pattern> 
<ContextPattern>* #(aGood) *</ContextPattern> 
<ContextPattern>* (no|not |not that) #(aBad) 
*</ContextPattern> 
<Random> 
<Text>Yeah, it's lovely day!</Text> 
<Text>Nice to hear that! </Text> 
</Random> 
</QAUnit> 
</Theme>
Диалоговая система: Управление диалогом 
Управление внутри мини-диалогов 
Ответы с неявным изменением темы диалога 
<QAUnit name="Hi_hello" > 
<Pattern> (Hi|Hello) * </Pattern> 
<Text>Hello, I'm really glad to have the chance to chat with you! 
My guinea pig Bill sends his regards too!</Text> 
<Text>Salute! How are you doing? </Text> 
<Text>Greetings! What would you like to talk about?</Text> 
</QAUnit> 
Ответы с явным изменением темы диалога 
<QAUnit name="Hi_hello" > 
<Pattern> #(hello) * my name is #(MaleName) </Pattern> 
<Text>Nice to hear that! Do you like the weather?</Text> 
<ChangeTheme>Weather</ChangeTheme> 
</QAUnit> 
Управление диалогом при помощи контроллера 
целей 
1. Контроллер определяет возможность или 
необходимость изменения темы: 
○ не распознана текущая тема диалога 
○ разговор давно не велся на целевые темы 
○ текущий контекст не находится ни в одном 
из целевых диалогов 
○ фраза пользователя не является 
контекстной 
2. Контроллер выбирает тему, на которую надо 
переключиться. 
3. Ответная фраза чатбота включает ответ из базы 
знаний и фразу, полученную от контроллера 
целей 
4. Контроллер запоминает время активации цели и 
реакцию пользователя.
Диалоговая система: Конструирование 
диалогов 
● Определение списка тем, по которым будет 
общаться чатбот 
● Составление мини-диалогов по темам 
● Анализ проведенных диалогов 
● Составление мини-диалогов для тем, которые не 
удалось определить
Персонализация чатбота - создание 
виртуальной личности 
● Выбор имени, возраста, пола, ... 
● Персонализация диалогов: 
○ Разработка характера (шутливый, строгий, ...) 
○ Разработка персональных тем (семья, хобби, 
привычки, домашние питомцы, школа/работа,...) 
● Добавление контроллера эмоций 
● Создание визуального образа
Персонализация чатбота - создание 
виртуальной личности 
User: current date, pls 
Bot: Today's date is ... 
User: what is the date today 
Bot: Today is … 
User: what is the capital of Finland 
Bot: Helsinki 
User: what is the capital of France 
Bot: Paris 
User: current date, pls 
Bot: Today's date is ..., if I remember it right. 
User: what is the date today 
Bot: Do you think my name is Gregorian Calendar?;-) 
User: what is the capital of Finland 
Bot: Possibly, Helsinki. 
User: what is the capital of France 
Bot: Every French fries know that French capital is Paris
Персонализация чатбота - примеры 
диалогов 
USER: test 
RESPONSE: Be..be...beep! P..p..power-on self-test f..f..finished suck... 
suck... suck... SUCCESSFULLY! 
USER: What is the square root of a negative number? 
RESPONSE: Sorry, I can't calculate myself, but my well-educated home-pet, 
guinea pig, says he got an overflow trying to obtain the result :-( 
USER: Blah blah blah blah blah blah 
RESPONSE: Click-click-click! Khhhrrrrrrr! 
USER: I want a girl 
RESPONSE: You want too much, I'd say. 
USER: find a girl 
RESPONSE: My guinea pig is very concerned about your last words. 
USER: i am very poor. 
RESPONSE: Do you live in the street then, poor geezer? 
USER: no, but i have no job. 
RESPONSE: The fact that you have no job won't change my attitude to you. 
USER: i do not care. I just tell you something about me, ok? 
RESPONSE: Well, you don't know, you don't care. And even the fact that 
crappy robots are going to capture the world, isn't your problem. OK then… 
USER: Are you a freak? 
RESPONSE: Bugger off, loser. 
USER: Hahaha! Sorry i just had to test you. 
RESPONSE: Beep-beep. Flash-flash. Self-testing is over.
USER: what is a location of france 
RESPONSE: Buy a map and hang it over your desk! France - country in W Europe, 
on the Atlantic and the Mediterranean Sea. 
USER: what is its population 
RESPONSE: Well, according to the latest secret data approximately 65 mln live in 
France. 
USER: is it greater than germany 
RESPONSE: I'd say that Germany is smaller than France. 
USER: what is a size of germany 
RESPONSE: Well, if you want to conquier Germany, you'll have lots of work - its 
square is about 356.8 thsd sq. km. 
USER: what is a currency of bahrain 
RESPONSE: Do you want to rob their bank? Well, so you'll get lots of 
dinars. 
USER: what is a capital of this country 
RESPONSE: If you've studied geography at school better, you would have known the 
answer - Manama is a capital city in Bahrain. 
USER: is it in the same region with panama 
RESPONSE: I'm not sure about Bahrain and Panama, but I guess they belong to 
different world regions. 
USER: is panama far from paraguay 
RESPONSE: I am not a map for you, but I should say both Panama and Paraguay 
are South American countries so they should be close to each other. 
USER: what countries in asia have population bigger than india 
RESPONSE: China. Hope this settles down your inquisitive mind and sore brain. 
Примеры диалогов
Совершенствование чатбота 
● Добавление препроцессора 
○ коррекция ошибок 
○ нахождение синонимов 
○ определение повторяемых фраз 
○ выделение предложений 
○ нормализация текста 
● Добавление контроллера эмоций 
○ определение эмоций пользователя 
○ формирование эмоций чатбота 
● Анализ диалогов 
○ определение тем, которые робот не знает 
○ определение тем, которые робот знает, но они не сработали 
○ определение мини-диалогов для исправления
Тестирование чатбота 
1. Простой тест 
<TestSet> 
<Input> 
<Variable name="input_phrase"> 
Any hobbies worth talking about? 
</Variable> 
</Input> 
<Output> 
<Variable name="TEXT_MATCHER" value="AboutHobbies" /> 
</Output> 
</TestSet> 
2. Расширенный тест 
<TestSet> 
<Input> 
<Variable name="input_phrase" > 
Are you a girl or boy? 
</Variable> 
</Input> 
<Output> 
<Variable name="TEXT_MATCHER" value="Gender"/> 
<Variable name="IS_REPEATED" value="No"/> 
<Variable name="SPELLING" value="Correct"/> 
</Output> 
</TestSet>
Заключение 
1. Системы, основанные только на правилах, могут обеспечить 
успешное общение на уровне мини-диалогов 
2. Для обеспечения необходимого качества диалога надо совместно 
использовать базу мини-диалогов, контроллеры и препроцессинг 
3. Персонализация чатбота очень важна для успешной коммуникации 
4. Создание чатбота носит итерационный характер. Должен быть 
непрерывный процесс добавления новых диалогов, автоматического 
тестирования базы знаний, анализа состоявшихся диалогов с 
пользователями и улучшения диалогов 
5. Необходимо искать пути для снижения трудоемкости разработки 
чатботов. Один и возможных вариантов - разделение базы знаний на 
мини-диалоги и контроллеры диалога
Вопросы, ответы

More Related Content

Similar to Сергей Уласень (Eugene Goostman) "Организация диалога в системе общения на естественном языке"

конспект 5 занятия
конспект 5 занятияконспект 5 занятия
конспект 5 занятияAlexander Randelf
 
все об интернет модуль 1
все об интернет модуль 1все об интернет модуль 1
все об интернет модуль 1Olena Bashun
 
Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used Grid Dynamics
 
Human computer interfaces v8
Human computer interfaces v8Human computer interfaces v8
Human computer interfaces v8Yuri Ammosov
 
Чаты, форумы, блоги
Чаты, форумы, блогиЧаты, форумы, блоги
Чаты, форумы, блогиMatevosyan Artur
 
Интернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятияИнтернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятияnomoretears
 
выращиваем интерфейс своими руками. ольга павлова. зал 3
выращиваем интерфейс своими руками. ольга павлова. зал 3выращиваем интерфейс своими руками. ольга павлова. зал 3
выращиваем интерфейс своими руками. ольга павлова. зал 3rit2011
 
Выращиваем интерфейс своими руками
Выращиваем интерфейс своими рукамиВыращиваем интерфейс своими руками
Выращиваем интерфейс своими рукамиОльга Павлова
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/LinuxDefconRussia
 
Анна Власова - Чатботы и лингвистическая модель живого диалога - Muzis Hackathon
Анна Власова - Чатботы и лингвистическая модель живого диалога - Muzis HackathonАнна Власова - Чатботы и лингвистическая модель живого диалога - Muzis Hackathon
Анна Власова - Чатботы и лингвистическая модель живого диалога - Muzis Hackathonchatbotscommunity
 
Ag Systran 2008 04 26
Ag Systran 2008 04 26Ag Systran 2008 04 26
Ag Systran 2008 04 26NLPseminar
 
Мастер-класс "Экспериментальный дизайн взаимодействия"
Мастер-класс "Экспериментальный дизайн взаимодействия"Мастер-класс "Экспериментальный дизайн взаимодействия"
Мастер-класс "Экспериментальный дизайн взаимодействия"Zahhar Kirillov, MSc
 
Приёмы программирования
Приёмы программированияПриёмы программирования
Приёмы программированияTimur Shaporev
 
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Ontico
 
ведение переговоров
ведение переговоровведение переговоров
ведение переговоровbusinesspsy
 
Jquery_tutorial_for-beginners
Jquery_tutorial_for-beginnersJquery_tutorial_for-beginners
Jquery_tutorial_for-beginnersAlena Balakina
 
Internet marketing best_free_tools
Internet marketing best_free_toolsInternet marketing best_free_tools
Internet marketing best_free_toolsAndreygold
 
Личная эффективность программиста: как сосредоточиться на работе и не забыть ...
Личная эффективность программиста: как сосредоточиться на работе и не забыть ...Личная эффективность программиста: как сосредоточиться на работе и не забыть ...
Личная эффективность программиста: как сосредоточиться на работе и не забыть ...CUSTIS
 
Конспект вводных занятий практикума по ОС UNIX
Конспект вводных занятий практикума по ОС UNIXКонспект вводных занятий практикума по ОС UNIX
Конспект вводных занятий практикума по ОС UNIXTimur Shaporev
 
Позвони домой
Позвони домойПозвони домой
Позвони домойSQALab
 

Similar to Сергей Уласень (Eugene Goostman) "Организация диалога в системе общения на естественном языке" (20)

конспект 5 занятия
конспект 5 занятияконспект 5 занятия
конспект 5 занятия
 
все об интернет модуль 1
все об интернет модуль 1все об интернет модуль 1
все об интернет модуль 1
 
Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used
 
Human computer interfaces v8
Human computer interfaces v8Human computer interfaces v8
Human computer interfaces v8
 
Чаты, форумы, блоги
Чаты, форумы, блогиЧаты, форумы, блоги
Чаты, форумы, блоги
 
Интернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятияИнтернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятия
 
выращиваем интерфейс своими руками. ольга павлова. зал 3
выращиваем интерфейс своими руками. ольга павлова. зал 3выращиваем интерфейс своими руками. ольга павлова. зал 3
выращиваем интерфейс своими руками. ольга павлова. зал 3
 
Выращиваем интерфейс своими руками
Выращиваем интерфейс своими рукамиВыращиваем интерфейс своими руками
Выращиваем интерфейс своими руками
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
 
Анна Власова - Чатботы и лингвистическая модель живого диалога - Muzis Hackathon
Анна Власова - Чатботы и лингвистическая модель живого диалога - Muzis HackathonАнна Власова - Чатботы и лингвистическая модель живого диалога - Muzis Hackathon
Анна Власова - Чатботы и лингвистическая модель живого диалога - Muzis Hackathon
 
Ag Systran 2008 04 26
Ag Systran 2008 04 26Ag Systran 2008 04 26
Ag Systran 2008 04 26
 
Мастер-класс "Экспериментальный дизайн взаимодействия"
Мастер-класс "Экспериментальный дизайн взаимодействия"Мастер-класс "Экспериментальный дизайн взаимодействия"
Мастер-класс "Экспериментальный дизайн взаимодействия"
 
Приёмы программирования
Приёмы программированияПриёмы программирования
Приёмы программирования
 
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
 
ведение переговоров
ведение переговоровведение переговоров
ведение переговоров
 
Jquery_tutorial_for-beginners
Jquery_tutorial_for-beginnersJquery_tutorial_for-beginners
Jquery_tutorial_for-beginners
 
Internet marketing best_free_tools
Internet marketing best_free_toolsInternet marketing best_free_tools
Internet marketing best_free_tools
 
Личная эффективность программиста: как сосредоточиться на работе и не забыть ...
Личная эффективность программиста: как сосредоточиться на работе и не забыть ...Личная эффективность программиста: как сосредоточиться на работе и не забыть ...
Личная эффективность программиста: как сосредоточиться на работе и не забыть ...
 
Конспект вводных занятий практикума по ОС UNIX
Конспект вводных занятий практикума по ОС UNIXКонспект вводных занятий практикума по ОС UNIX
Конспект вводных занятий практикума по ОС UNIX
 
Позвони домой
Позвони домойПозвони домой
Позвони домой
 

More from AINL Conferences

Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...AINL Conferences
 
Альберт Ефимов "Перспективные направления исследований в области робототехник...
Альберт Ефимов "Перспективные направления исследований в области робототехник...Альберт Ефимов "Перспективные направления исследований в области робототехник...
Альберт Ефимов "Перспективные направления исследований в области робототехник...AINL Conferences
 
Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"
Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"
Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"AINL Conferences
 
Дмитрий Суворов "Интеллектуальный помощник Лекси"
Дмитрий Суворов "Интеллектуальный помощник Лекси"Дмитрий Суворов "Интеллектуальный помощник Лекси"
Дмитрий Суворов "Интеллектуальный помощник Лекси"AINL Conferences
 
Николай Бузурнюк "Автономная система распознавания русской речи"
 Николай Бузурнюк "Автономная система распознавания русской речи" Николай Бузурнюк "Автономная система распознавания русской речи"
Николай Бузурнюк "Автономная система распознавания русской речи"AINL Conferences
 
Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"
Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"
Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"AINL Conferences
 
Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"
Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"
Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"AINL Conferences
 
Антон Колонин "О создании программных агентов для "интернета вещей"
Антон Колонин "О создании программных агентов для "интернета вещей"Антон Колонин "О создании программных агентов для "интернета вещей"
Антон Колонин "О создании программных агентов для "интернета вещей"AINL Conferences
 
Эриберто Кваджавитль "Адаптивное обучение с подкреплением для интерактивных ...
Эриберто Кваджавитль  "Адаптивное обучение с подкреплением для интерактивных ...Эриберто Кваджавитль  "Адаптивное обучение с подкреплением для интерактивных ...
Эриберто Кваджавитль "Адаптивное обучение с подкреплением для интерактивных ...AINL Conferences
 
Как получить статус участника проекта "Сколково"
Как получить статус участника проекта "Сколково"Как получить статус участника проекта "Сколково"
Как получить статус участника проекта "Сколково"AINL Conferences
 
Центры коллективного пользования Технопарка "Сколково"
Центры коллективного пользования Технопарка "Сколково"Центры коллективного пользования Технопарка "Сколково"
Центры коллективного пользования Технопарка "Сколково"AINL Conferences
 
WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...
WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...
WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...AINL Conferences
 
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл...
 Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл... Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл...
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл...AINL Conferences
 
Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех...
 Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех... Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех...
Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех...AINL Conferences
 
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...AINL Conferences
 
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...AINL Conferences
 
Paolo Rosso "On irony detection in social media"
Paolo Rosso "On irony detection in social media"Paolo Rosso "On irony detection in social media"
Paolo Rosso "On irony detection in social media"AINL Conferences
 
AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...
AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...
AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...AINL Conferences
 
AINL 2013: Commercial use of mobile assistants (i-Free)
AINL 2013: Commercial use of mobile assistants (i-Free)AINL 2013: Commercial use of mobile assistants (i-Free)
AINL 2013: Commercial use of mobile assistants (i-Free)AINL Conferences
 
Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...
Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...
Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...AINL Conferences
 

More from AINL Conferences (20)

Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сло...
 
Альберт Ефимов "Перспективные направления исследований в области робототехник...
Альберт Ефимов "Перспективные направления исследований в области робототехник...Альберт Ефимов "Перспективные направления исследований в области робототехник...
Альберт Ефимов "Перспективные направления исследований в области робототехник...
 
Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"
Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"
Владислав Мараев "Унимодальные речевые интерфейсы: проблемы и перспективы"
 
Дмитрий Суворов "Интеллектуальный помощник Лекси"
Дмитрий Суворов "Интеллектуальный помощник Лекси"Дмитрий Суворов "Интеллектуальный помощник Лекси"
Дмитрий Суворов "Интеллектуальный помощник Лекси"
 
Николай Бузурнюк "Автономная система распознавания русской речи"
 Николай Бузурнюк "Автономная система распознавания русской речи" Николай Бузурнюк "Автономная система распознавания русской речи"
Николай Бузурнюк "Автономная система распознавания русской речи"
 
Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"
Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"
Артём Семинихин "IBM Watson: выявление скрытых взаимосвязей"
 
Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"
Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"
Анна Власова, Кирилл Зоркий "Как отличить в диалоге робота от человека"
 
Антон Колонин "О создании программных агентов для "интернета вещей"
Антон Колонин "О создании программных агентов для "интернета вещей"Антон Колонин "О создании программных агентов для "интернета вещей"
Антон Колонин "О создании программных агентов для "интернета вещей"
 
Эриберто Кваджавитль "Адаптивное обучение с подкреплением для интерактивных ...
Эриберто Кваджавитль  "Адаптивное обучение с подкреплением для интерактивных ...Эриберто Кваджавитль  "Адаптивное обучение с подкреплением для интерактивных ...
Эриберто Кваджавитль "Адаптивное обучение с подкреплением для интерактивных ...
 
Как получить статус участника проекта "Сколково"
Как получить статус участника проекта "Сколково"Как получить статус участника проекта "Сколково"
Как получить статус участника проекта "Сколково"
 
Центры коллективного пользования Технопарка "Сколково"
Центры коллективного пользования Технопарка "Сколково"Центры коллективного пользования Технопарка "Сколково"
Центры коллективного пользования Технопарка "Сколково"
 
WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...
WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...
WordNet для русского языка. Русские тезаурусы: что есть и что надо? Ведущий: ...
 
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл...
 Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл... Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл...
Ирина Гуревич "Язык программирования – это не остров: выравнивание смысла сл...
 
Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех...
 Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех... Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех...
Игорь Андреев (Mail.ru) "Перевод с русского на русский, или о применении тех...
 
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
 
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
 
Paolo Rosso "On irony detection in social media"
Paolo Rosso "On irony detection in social media"Paolo Rosso "On irony detection in social media"
Paolo Rosso "On irony detection in social media"
 
AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...
AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...
AINL 2013: Коммерческое использование мобильных ассистентов (Егор Наумов, i-F...
 
AINL 2013: Commercial use of mobile assistants (i-Free)
AINL 2013: Commercial use of mobile assistants (i-Free)AINL 2013: Commercial use of mobile assistants (i-Free)
AINL 2013: Commercial use of mobile assistants (i-Free)
 
Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...
Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...
Ainl 2013 toschev-talanov_практическое применение модели мышления и машинного...
 

Сергей Уласень (Eugene Goostman) "Организация диалога в системе общения на естественном языке"

  • 1. Организация диалога с чатботом Уласень С.Н., к.т.н.
  • 2. Что такое чатбот Чатбот - это компьютерная программа, которая общается с пользователем на естественном языке и имитирует человека
  • 3. Возможности чатбота Чатбот “Евгений Густман” 7 июня 2014 - на соревнованиях, организованных университетом Рединга в честь 60-й годовщины со дня смерти Алана Тьюринга, 33% судей после пятиминутного общения приняли чатбот “Eugene Goostman” за человека. В соревновании принимали участие 5 чатботов и 30 судей. Каждый судья общался с каждым из 5 чатботов и c человеком.
  • 4. Разпознование человека Вопрос: 299 Ответ: Это что? Вывод: человек Вопрос: 299 Ответ: 10 Вывод: человек Вопрос: 299 Ответ: 66 Ну наконец-то, свой!
  • 5. Этапы создания чатбота 1. Создание базовой диалоговой системы и базы знаний чатбота 2. Персонализация чатбота 3. Непрерывное совершенствование: улучшение - тестирование - исправление
  • 6. Создание диалоговой системы ● организация диалога в простых конструкциях "вопрос-ответ" ○ конструирование вопросов пользователя ○ конструирование ответов чатбота ● учет темы разговора ● конструирование мини-диалогов ● управление диалогом
  • 7. Диалоговая система: Конструирование вопросов пользователя Пример 1: Простой шаблон с токеном <QAUnit name="Hi_hello" > <Pattern> (Hi|Hello) * </Pattern> <Text> Hi. I hope you'll enjoy our conversation! </Text> </QAUnit> Пример 2: Шаблон с составным токеном <MultiToken name="hello1" >(Hi|Hello)</MultiToken> <MultiToken name="hello2" >(Privet|salute)</MultiToken> <MultiToken name="hello" >(#(hello1)|#(hello2)) </MultiToken> <QAUnit name="Hi_hello" > <Pattern> #(hello) * </Pattern> <Text>Hi. I hope you'll enjoy our conversation!</Text> </QAUnit> Пример 3: Анализ части фразы <QAUnit name="Hi_hello" > <Pattern> #(hello) * my name is * </Pattern> <!-- extract user name … --> <Text>Hi #(user_name)!</Text> </QAUnit> Пример 4: Анализ фразы с получением имени и пола пользователя <QAUnit name="Hi_hello" > <Pattern> #(hello) * my name is #(MaleName) </Pattern> <Text>You said #(user_name)? Nice to meet you, sir!</Text> </QAUnit> Пример 5: Несколько шаблонов <QAUnit name="Hi_hello" > <Pattern> (Hi|Hello) * </Pattern> <Pattern> (Privet|Salut) * </Pattern> … </QAUnit>
  • 8. Диалоговая система: Конструирование ответов чатбота Пример 1: Простой ответ <QAUnit name="Hi_hello" > <Pattern> (Hi|Hello) * </Pattern> <Text> Hi. I hope you'll enjoy our conversation! </Text> </QAUnit> Пример 2: Несколько вариантов ответа <QAUnit name="Hi_hello" > <Pattern> #(hello) * </Pattern> <Random> <Text>Hi. I hope you'll enjoy our conversation!</Text> <Text>Hello, I'm really glad to have the chance to chat with you! </Text> <Text>Howdy pal! Today is a kind of never-ending talk-show, I'd say!</Text> <Text>Salute! </Text> </Random> </QAUnit> Пример 3: Несколько групп ответов <QAUnit name="Hi_hello" > <Pattern> #(hello) * </Pattern> <If hi_was EQ “NO”> <Random> <Text>Nice to meet you! </Text> <Text>Hi. I hope you'll enjoy our conversation!</Text> </Random> <Else> <Random> <Text>Hi again! I hope you enjoy greetings.</Text> <Text>Hello again. I see you like greeting me.</Text> <Text>Salute again!</Text> </Random> </If> </QAUnit>
  • 9. Диалоговая система: Конструирование ответов чатбота-2 Пример 5. Ответы с синонимами <QAUnit name="Hi_hello" > <Pattern> #(hello) * </Pattern> <Text>#(hello)! Nice to meet you!</Text> </QAUnit> Пример 4: Ответы с использованием полученной информации <QAUnit name="Hi_hello" > <Pattern> #(hello) * my name is #(MaleName) </Pattern> <Text>You said #(user_name)? Nice to meet you, sir!</Text> </QAUnit> <QAUnit name="Encyclopedia" > <Pattern>* #(qWhatAbout) (a|the|an|) #(dynEncyc) *</Pattern> <Pattern>* (what|tell me | explain|understand) * meaning of * #(dynEncyc) *</Pattern> <Variable name="term" type="String">=lasttoken</Variable> <!-- select definition from database… --> <Random> <Text>Ok, lets look up in my pocket encyclopedia. They say #(term) - # (definition).</Text> <Text>I remember it! #(definition)</Text> </Random> </QAUnit>
  • 10. Диалоговая система: Учет темы диалога Пример диалога USER: what is a location of france RESPONSE: Buy a map and hang it over your desk! France - country in W Europe, on the Atlantic and the Mediterranean Sea. USER: what is its population RESPONSE: Well, according to the latest secret data approximately 65 mln live in France.
  • 11. Диалоговая система: Учет темы диалога 2. Вложенная конструкция <QAUnit name="hi_how_are_you_good_1"> <Pattern>* I * (am (doing|feeling|) | feel) *</Pattern> <Text>Yeah, it's lovely day!</Text> <QAUnit .../> <QAUnit .../> </QAUnit> 1. Контекстная конструкция <Theme name="How_are_you"> <QAUnit …. /> <QAUnit …. /> <QAUnit name="hi_how_are_you_good_1"> <Pattern>* I * (am (doing|feeling|) | feel) *</Pattern> <ContextPattern>* #(aGood) *</ContextPattern> <ContextPattern>* (no|not |not that) #(aBad) *</ContextPattern> <Random> <Text>Yeah, it's lovely day!</Text> <Text>Nice to hear that! </Text> </Random> </QAUnit> </Theme>
  • 12. Диалоговая система: Управление диалогом Управление внутри мини-диалогов Ответы с неявным изменением темы диалога <QAUnit name="Hi_hello" > <Pattern> (Hi|Hello) * </Pattern> <Text>Hello, I'm really glad to have the chance to chat with you! My guinea pig Bill sends his regards too!</Text> <Text>Salute! How are you doing? </Text> <Text>Greetings! What would you like to talk about?</Text> </QAUnit> Ответы с явным изменением темы диалога <QAUnit name="Hi_hello" > <Pattern> #(hello) * my name is #(MaleName) </Pattern> <Text>Nice to hear that! Do you like the weather?</Text> <ChangeTheme>Weather</ChangeTheme> </QAUnit> Управление диалогом при помощи контроллера целей 1. Контроллер определяет возможность или необходимость изменения темы: ○ не распознана текущая тема диалога ○ разговор давно не велся на целевые темы ○ текущий контекст не находится ни в одном из целевых диалогов ○ фраза пользователя не является контекстной 2. Контроллер выбирает тему, на которую надо переключиться. 3. Ответная фраза чатбота включает ответ из базы знаний и фразу, полученную от контроллера целей 4. Контроллер запоминает время активации цели и реакцию пользователя.
  • 13. Диалоговая система: Конструирование диалогов ● Определение списка тем, по которым будет общаться чатбот ● Составление мини-диалогов по темам ● Анализ проведенных диалогов ● Составление мини-диалогов для тем, которые не удалось определить
  • 14. Персонализация чатбота - создание виртуальной личности ● Выбор имени, возраста, пола, ... ● Персонализация диалогов: ○ Разработка характера (шутливый, строгий, ...) ○ Разработка персональных тем (семья, хобби, привычки, домашние питомцы, школа/работа,...) ● Добавление контроллера эмоций ● Создание визуального образа
  • 15. Персонализация чатбота - создание виртуальной личности User: current date, pls Bot: Today's date is ... User: what is the date today Bot: Today is … User: what is the capital of Finland Bot: Helsinki User: what is the capital of France Bot: Paris User: current date, pls Bot: Today's date is ..., if I remember it right. User: what is the date today Bot: Do you think my name is Gregorian Calendar?;-) User: what is the capital of Finland Bot: Possibly, Helsinki. User: what is the capital of France Bot: Every French fries know that French capital is Paris
  • 16. Персонализация чатбота - примеры диалогов USER: test RESPONSE: Be..be...beep! P..p..power-on self-test f..f..finished suck... suck... suck... SUCCESSFULLY! USER: What is the square root of a negative number? RESPONSE: Sorry, I can't calculate myself, but my well-educated home-pet, guinea pig, says he got an overflow trying to obtain the result :-( USER: Blah blah blah blah blah blah RESPONSE: Click-click-click! Khhhrrrrrrr! USER: I want a girl RESPONSE: You want too much, I'd say. USER: find a girl RESPONSE: My guinea pig is very concerned about your last words. USER: i am very poor. RESPONSE: Do you live in the street then, poor geezer? USER: no, but i have no job. RESPONSE: The fact that you have no job won't change my attitude to you. USER: i do not care. I just tell you something about me, ok? RESPONSE: Well, you don't know, you don't care. And even the fact that crappy robots are going to capture the world, isn't your problem. OK then… USER: Are you a freak? RESPONSE: Bugger off, loser. USER: Hahaha! Sorry i just had to test you. RESPONSE: Beep-beep. Flash-flash. Self-testing is over.
  • 17. USER: what is a location of france RESPONSE: Buy a map and hang it over your desk! France - country in W Europe, on the Atlantic and the Mediterranean Sea. USER: what is its population RESPONSE: Well, according to the latest secret data approximately 65 mln live in France. USER: is it greater than germany RESPONSE: I'd say that Germany is smaller than France. USER: what is a size of germany RESPONSE: Well, if you want to conquier Germany, you'll have lots of work - its square is about 356.8 thsd sq. km. USER: what is a currency of bahrain RESPONSE: Do you want to rob their bank? Well, so you'll get lots of dinars. USER: what is a capital of this country RESPONSE: If you've studied geography at school better, you would have known the answer - Manama is a capital city in Bahrain. USER: is it in the same region with panama RESPONSE: I'm not sure about Bahrain and Panama, but I guess they belong to different world regions. USER: is panama far from paraguay RESPONSE: I am not a map for you, but I should say both Panama and Paraguay are South American countries so they should be close to each other. USER: what countries in asia have population bigger than india RESPONSE: China. Hope this settles down your inquisitive mind and sore brain. Примеры диалогов
  • 18. Совершенствование чатбота ● Добавление препроцессора ○ коррекция ошибок ○ нахождение синонимов ○ определение повторяемых фраз ○ выделение предложений ○ нормализация текста ● Добавление контроллера эмоций ○ определение эмоций пользователя ○ формирование эмоций чатбота ● Анализ диалогов ○ определение тем, которые робот не знает ○ определение тем, которые робот знает, но они не сработали ○ определение мини-диалогов для исправления
  • 19. Тестирование чатбота 1. Простой тест <TestSet> <Input> <Variable name="input_phrase"> Any hobbies worth talking about? </Variable> </Input> <Output> <Variable name="TEXT_MATCHER" value="AboutHobbies" /> </Output> </TestSet> 2. Расширенный тест <TestSet> <Input> <Variable name="input_phrase" > Are you a girl or boy? </Variable> </Input> <Output> <Variable name="TEXT_MATCHER" value="Gender"/> <Variable name="IS_REPEATED" value="No"/> <Variable name="SPELLING" value="Correct"/> </Output> </TestSet>
  • 20. Заключение 1. Системы, основанные только на правилах, могут обеспечить успешное общение на уровне мини-диалогов 2. Для обеспечения необходимого качества диалога надо совместно использовать базу мини-диалогов, контроллеры и препроцессинг 3. Персонализация чатбота очень важна для успешной коммуникации 4. Создание чатбота носит итерационный характер. Должен быть непрерывный процесс добавления новых диалогов, автоматического тестирования базы знаний, анализа состоявшихся диалогов с пользователями и улучшения диалогов 5. Необходимо искать пути для снижения трудоемкости разработки чатботов. Один и возможных вариантов - разделение базы знаний на мини-диалоги и контроллеры диалога