УПРАВЛЕНИЕ ДИАЛОГОМ
ЧАТБОТА
              Веселов В.В. к.т.н.
               Johnson & Johnson
Чатбот
•   В 1950-м году Алан Тьюринг в статье
    «Искусственный интеллект и вычислительные
    машины» предсказал, что к 2000-му году
    компьютеры смогут имитировать диалог человека,
    так, что средний собеседник не будет иметь
    больше 70% шансов правильного определения
    является ли собеседник компьютером или
    человеком после пяти минут диалога.
•   Чатбот – это компьютерная программа,
    использующая искуственный интеллект для
    общения с человеком на естественном языке и
    имитирующая человека.
Эволюция стиральных машин в сравнении с
 компьтерными технологиями

1797 г. – изобретена первая стиральная машина
1893 г. – производство стиральных машин компанией Maytag.
1949 г. – запатентована первая стиральная машина, управляемая
    перфокартой
1978 г. – начато производство стиральных машин с автоматическим
    управлением на микросхемах
2011 г. – компания LG начала производство стиральных машин и другой
    бытовой техники с подключением к интернету
2011 г. – компания Apple выпустила iPhone 4S с чатботом Siri
2011 г. – в штате Невада официально зарегистрирована первая
    роботизированная автомашина
? – создание бытовых и других устройств с диалоговыми системами на
    естественном языке
Таким образом, требования к качеству управления диалогом чатбота будут
    постоянно возрастать.
Сравнение чатботов
   ALICE
   Façade
   ChatScript
   Eugene Goostman
ALICE, 1995 г.
                            Проблема четырех паттернов
<category> 
   <pattern> I LOVE YOU </pattern> 
   <template>Whatever</template> 
   </category
<category> 
   <pattern> * I LOVE YOU </pattern> 
   <template>Whatever </template> 
   </category
<category> 
   <pattern> I LOVE YOU * </pattern> 
   <template>Whatever</template> 
   </category
<category> 
   <pattern> * I LOVE YOU * </pattern> 
   <template> Whatever</template> 
</category>

Проблема: не срабатывает на I REALLY LOVE YOU
ALICE (продолжение)

                                                         Рекурсивная обработка
Фраза - Can you please tell me what LINUX is right now
<category> 
     <pattern> * RIGHT NOW <pattern> 
     <template> <srai><star/></srai></template> 
     </category>
=> CAN YOU PLEASE TELL ME WHAT LINUX IS and then
<category> 
     <pattern> CAN YOU PLEASE * <pattern> 
     <template> <srai> Please <star/></srai></template> 
     </category>
=> PLEASE TELL ME WHAT LINUX IS and then
<category> 
     <pattern> PLEASE TELL ME WHAT * <pattern> 
     <template> <srai> TELL ME WHAT <star/></srai></template> 
     </category>
=> TELL ME WHAT LINUX IS and then
<category> 
     <pattern> TELL ME WHAT * IS <pattern> 
     <template> <srai> WHAT IS <star/></srai></template> 
     </category>
=> WHAT IS LINUX and finally
<category> 
     <pattern> WHAT IS LINUX <pattern> 
     <template> LINUX is an operating system. </template> 
</category>
ALICE (продолжение)

                                 Построение диалога

<topic name="* breakfast *">
   <category>
   <pattern>I like fish</pattern>
   <template> Do you like sushi? </template>
   </category> 
</topic>


...


<category>
   <pattern>yes</pattern>
   <that> Do * sushi </that>
   <template>I hate sushi</template>
</category>
Façade (2005)

   Компьтерная игра с применением искуственного
    интеллекта
   Паттерн матчер находит не ответ, а определяет
    discourse act (диалоговое действие) – критика,
    флирт, согласие, несогласие и т.д.
   Использует Jess (экспертная система CLIPS на Java)
    Каждая фраза пользователя обрабатывается как
    факт и добавляется в базу знаний. После этого
    выполняются активированные правила и
    создаются новые факты.
Façade (продолжение)
Язык описания паттернов
( X Y ) – упорядоченная последовательность (AND)
( X | Y) – X или Y (OR)
( [X] ) – X или ничего
( tor X Y ) - либо X, либо Y в любом месте
   предложения ((* X *) | (* Y *))
( toc X ) - X в любом месте предложения (* X *)
( tand X Y ) - X и Y в любой последовательности ((* X
   * Y*) | (* Y * X *))
( tnot X ) - отсутствие X в предложении
ChatScipt (2010)
   Использует упрощенный синтаксис для описания
    паттернов и правил
   Каноническая форма
   Автоматически распознает является ли фраза
    пользователя утверждением, вопросом, либо
    вопросом и утверждением
   Использует WordNet для построения паттернов.
    Использует онтологии WordNet.
   Встроенная база фактов
   Краткосрочные и долгосрочные переменные
ChatScipt (продолжение)
                     Упрощенный синтаксис:
s: ( I love meat ) Do you really?

s – sentence (утверждение), ? – question (вопрос), u – sentence
   and question (утверждение и вопрос)

(I love meat) – паттерн, срабатывающий на предложение
    содержащее I, love, meat в любом месте, но в указанном
    порядке
* I * love * meat *
ChatScipt (продолжение)
                    Концепции (токены):
concept: ~meat ( bacon ham beef meat flesh veal lamb chicken
  pork steak cow pig )

s: ( I love ~meat ) Do you really? I am a vegan
                         Упорядоченный токен
    concept: ~pokerhand ( "royal flush" "straight flush" "4 of a
    kind" "full house" )
    ?: ( which * better * ~pokerhand * or * ~pokerhand )
ChatScipt (продолжение)
                  Упрощенный синтаксис:
s: ( I like spinach ) Are you a fan of the Popeye
   cartoons?
   a: ( yes ) I used to watch him as a child. Did you lust
   after Olive Oyl?
       b: ( no ) Me neither. She was too skinny.
       b: ( yes ) You probably like skinny models.
   a: ( no ) What cartoons do you watch?
       b: ( none ) You lead a deprived life.
       b: ( Mickey Mouse ) The Disney icon.
Eugene Goostman (2001)
   Паттерн матчер со сложными конструкциями.
   Интерпретатор логических и математических
    выражений
   Поддержка контекста темы
   Интеграция паттернов с базой данных для
    использования онтологий
   Конструктор диалогов
   Контроллер цели диалога
Eugene Goostman (продолжение)
Определение токенов
<MultiToken name="qWhatBe">(tell (me|) (about|)|I am interested in|what (is|are|were|
  was|*ould be|)|know what)</MultiToken>
 <MultiToken name="qWhatBe0">(#(qWhatBe)|)</MultiToken>
 <MultiToken name="qWhoBe">(tell (me|) (about|)|I am interested in|who (is|are|was|
  were|*ould be|)|know who)</MultiToken>
 <MultiToken name="qWhoBe0">(#(qWhoBe)|)</MultiToken>

Паттерны
<Pattern>* (#(qWhatAbout)|) (#(pYour)|#(pU)) name *</Pattern>
  <Pattern>* tell me (#(pYour)|#(pU)) name *</Pattern>
  <Pattern>* how * I call #(pU) *</Pattern>
  <Pattern>* my name is * what * yours *</Pattern>
  <Pattern>* do #(pU) have (a|) name *</Pattern>
Поддержка контекста
<Theme name="Mother">
 <QAUnit name="HaveMother" type="STATEMENT">
   <Pattern>* #(qDoYouHave) * #(mother) *</Pattern>
   <Pattern>* #(pYour) #(mother) * (well|feeling fine|fine) *</Pattern>
   <Pattern>mother</Pattern>
   <Random>
    <Text>Yes, of course I have mother! And I love her very much.</Text>
    <Text>My mother works on TV.</Text>
   </Random>
 </QAUnit>
<QAUnit name="MotherProfession" type="STATEMENT">
   <Pattern>* #(qWhoBe0) * #(pYour) #(mother) *</Pattern>
   <Pattern>* #(pYour) #(mother) #(qWhoBe0) *</Pattern>
   <Pattern>* (Does|if|whether|where) * #(pYour) #(mother) work* *</Pattern>
   <Pattern>* (Tell me (more|*)|) about #(pYour) #(mother) *</Pattern>
   <ContextPattern>* Who is she *</ContextPattern>
   <ContextPattern>* who she is *</ContextPattern>
   <ContextPattern>* (Does|if|whether|where) she work* *</ContextPattern>
   <ContextPattern>* what does she do *</ContextPattern>
   <ContextPattern>* #(qWhoBe0) #(pYour) #(mother) #(profession) *</ContextPattern>
<Random>
    <Text>My mother works on the Odessa TV and runs a popular program for teenagers "Speak
Russian right!" Every Odessian teenager heard her famous "For those putzs who schmooze Russian in
a goddam lame way: drop by and listen to mine!"</Text>
    <Text>If you lived in Odessa, you couldn't help but know my mom - she runs a popular educational
TV program for teenagers about Russian language.</Text>
   </Random>
 </QAUnit>
Предопределенные диалоги
<Request>
  <Action>
       <Text>Хотите узнать погоду на сегодня?</Text>
  </Action>
  <Variable name=”ask” type=”String”>weather_service</Variable>
</Request>
 
<QAUnit name=”replyAskWeatherYes” type=”REPLY”>
  <Pattern>* да *</Pattern>
  <Variable name=”ask” type=”String”>weather_service</Variable>
  <Text>Сегодня будет солнечно</Text>
</QAUnit>
 
<QAUnit name=”replayAskWeatherNo” type=”REPLY”>
  <Pattern>* нет *</Pattern>
  <Variable name=”ask” type=”String”>weather_service</Variable>
  <Text>Хорошо, не будем говорить о погоде.</Text>
</QAUnit>
Подключение к базе данных
                      Token 3


            Token 2
                                                        Database
                      Token 4

                                            Country   Capital      Population
  Token 1                                   France    Paris        50,000,000

                                            Germany   Berlin       60,000,000
                 Tree Matcher
                                            ..


Sentence: “<Token 1> <Token 2> <Token 3>”

Pattern: <Token 1> <Token 2> <Token 3>

Response: <text> <Token 3> <information>
Подключение к базе данных (продолжние)

1. Load tokens from the database.
<MultiToken name="dynCountries" type="DYNAMIC">
    SELECT CountryPattern FROM Countries
</MultiToken>
2. Define the pattern.
<Pattern>* (#(qWhatBe) | #(qWhatAbout) |) * (capital|capitol) * (of|in|) #(dynCountries)
    *</Pattern>
3.Extract the country name.
 <Variable name="country" type="String">=GetTokenByName[TRACE_VARIABLE,
    {dynCountries}]</Variable>
 4. Retrieve the capital from the database.
<DataLookUp>
   <Table>
        <TableName>Countries</TableName>
        <Record><Field>Capital</Field><Variable name="capital“ type="String"/></Record>
   </Table>
   <Where>Country = #(country)</Where>
 </DataLookUp>
 5. Generate response
<Text>Well, if you want it, the capital of #(country) is #(capital).</Text>
Logs
  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
  54.3 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.
Eugene Goostman (продолжение)
Контроллер диалога:
- анализатор достижения цели

- регистратор событий, активирующих контроллер

  цели
- планировщик достижения цели

- исполнитель достижения цели
Eugene Goostman (продолжение)
Контроллер диалога:
г Цель – поддержание диалога

и Методы достижения цели – поиск темы,

  интересной пользователю
о Событие для активирования цели – срабатывание

  всех возможных ответов в QAUnit
M Планировщик цели – определение какие темы еще

  не обсуждались
  Исполнитель – добавление предложения,
  призывающее переключить тему
Функции управления диалогом
              ALICE          Façade         ChatScript        Eugene
                                                              Goostman
 Извлечение
  фактов из           No          Yes            Yes              No
   диалога
Определение
                      No          No             Yes              Yes
контекста
Переменные
                      Yes         Yes            Yes              Yes
состояния
Предопредел
енные                 Yes         No             Yes              Yes
диалоги
                    No                            No
                                   No
Контроллер        Can be                        Can be
                                Can be                            Yes
цели           implemented                   implemented
                              implemented
                 with AIML                  with ChatScript
Заключение
   Требования к качеству диалогов будут
    ужесточаться по мере расширения применения
    чатботов
   Основные функции управления диалогом:
     Паттерн матчер
     Использование онтологий, в том числе полученных в
      результате диалога
     Определение контекста диалога
     Переменные состояния
     Предопределенные диалоги
     Контроллер достижения цели
   Планы на будущее
       Создание автоматического анализатора диалогов
Bot to Bot Chat
Elbot: Scientists at the University of Florida have built a robot that eats sugar.
It has a stomach that uses bacteria to transform the sugar into energy. Do you
think that's good?

Eugene: Machines should work. Humans should think. Not vice versa.

Elbot: They want to build an underwater robot that eats fish. I can see it now:
The poor robot wanders around on the bottom of the ocean eating up all the
deep-sea fish which have - up to now - escaped the human campaign to
pollute the ocean. They should fix the robot to eat the oil floating around in the
ocean instead!

Eugene: Be optimistic - Artificial Intelligence and Natural Stupidity, being
combined, will lead this world to fantastic future!
Вопросы, ответы



         Спасибо!
Источники
   History of Washing Machines,
    http://venturebeat.com/2011/01/05/lg-says-smart-web-connected-washing-machines-no-lo
    , http://inventors.about.com/od/wstartinventions/a/washingmachines.htm
   Web-connected washing machines: An idea that's not all wet?
    http://venturebeat.com/2011/01/05/lg-says-smart-web-connected-washing-machines-
   http://bnn-news.com/self-drive-car-registered-usa-61097
   ALICE Foundation http://www.alicebot.org
   Façade http://www.interactivestory.net
   ChatScript http://chatscript.sourceforge.net/
   Bruce Wilcox, Beyond Façade: Pattern Matching for Natural Language
    Applications,
    http://www.gamasutra.com/view/feature/134675/beyond_fa%C3%A7ade_pat
   Eugene Goostman, www.princetonai.com/bot

веселов

  • 1.
    УПРАВЛЕНИЕ ДИАЛОГОМ ЧАТБОТА Веселов В.В. к.т.н. Johnson & Johnson
  • 2.
    Чатбот • В 1950-м году Алан Тьюринг в статье «Искусственный интеллект и вычислительные машины» предсказал, что к 2000-му году компьютеры смогут имитировать диалог человека, так, что средний собеседник не будет иметь больше 70% шансов правильного определения является ли собеседник компьютером или человеком после пяти минут диалога. • Чатбот – это компьютерная программа, использующая искуственный интеллект для общения с человеком на естественном языке и имитирующая человека.
  • 3.
    Эволюция стиральных машинв сравнении с компьтерными технологиями 1797 г. – изобретена первая стиральная машина 1893 г. – производство стиральных машин компанией Maytag. 1949 г. – запатентована первая стиральная машина, управляемая перфокартой 1978 г. – начато производство стиральных машин с автоматическим управлением на микросхемах 2011 г. – компания LG начала производство стиральных машин и другой бытовой техники с подключением к интернету 2011 г. – компания Apple выпустила iPhone 4S с чатботом Siri 2011 г. – в штате Невада официально зарегистрирована первая роботизированная автомашина ? – создание бытовых и других устройств с диалоговыми системами на естественном языке Таким образом, требования к качеству управления диалогом чатбота будут постоянно возрастать.
  • 4.
    Сравнение чатботов  ALICE  Façade  ChatScript  Eugene Goostman
  • 5.
    ALICE, 1995 г. Проблема четырех паттернов <category>  <pattern> I LOVE YOU </pattern>  <template>Whatever</template>  </category <category>  <pattern> * I LOVE YOU </pattern>  <template>Whatever </template>  </category <category>  <pattern> I LOVE YOU * </pattern>  <template>Whatever</template>  </category <category>  <pattern> * I LOVE YOU * </pattern>  <template> Whatever</template>  </category> Проблема: не срабатывает на I REALLY LOVE YOU
  • 6.
    ALICE (продолжение) Рекурсивная обработка Фраза - Can you please tell me what LINUX is right now <category>  <pattern> * RIGHT NOW <pattern>  <template> <srai><star/></srai></template>  </category> => CAN YOU PLEASE TELL ME WHAT LINUX IS and then <category>  <pattern> CAN YOU PLEASE * <pattern>  <template> <srai> Please <star/></srai></template>  </category> => PLEASE TELL ME WHAT LINUX IS and then <category>  <pattern> PLEASE TELL ME WHAT * <pattern>  <template> <srai> TELL ME WHAT <star/></srai></template>  </category> => TELL ME WHAT LINUX IS and then <category>  <pattern> TELL ME WHAT * IS <pattern>  <template> <srai> WHAT IS <star/></srai></template>  </category> => WHAT IS LINUX and finally <category>  <pattern> WHAT IS LINUX <pattern>  <template> LINUX is an operating system. </template>  </category>
  • 7.
    ALICE (продолжение) Построение диалога <topic name="* breakfast *"> <category> <pattern>I like fish</pattern> <template> Do you like sushi? </template> </category>  </topic> ... <category> <pattern>yes</pattern> <that> Do * sushi </that> <template>I hate sushi</template> </category>
  • 8.
    Façade (2005)  Компьтерная игра с применением искуственного интеллекта  Паттерн матчер находит не ответ, а определяет discourse act (диалоговое действие) – критика, флирт, согласие, несогласие и т.д.  Использует Jess (экспертная система CLIPS на Java)  Каждая фраза пользователя обрабатывается как факт и добавляется в базу знаний. После этого выполняются активированные правила и создаются новые факты.
  • 9.
    Façade (продолжение) Язык описанияпаттернов ( X Y ) – упорядоченная последовательность (AND) ( X | Y) – X или Y (OR) ( [X] ) – X или ничего ( tor X Y ) - либо X, либо Y в любом месте предложения ((* X *) | (* Y *)) ( toc X ) - X в любом месте предложения (* X *) ( tand X Y ) - X и Y в любой последовательности ((* X * Y*) | (* Y * X *)) ( tnot X ) - отсутствие X в предложении
  • 10.
    ChatScipt (2010)  Использует упрощенный синтаксис для описания паттернов и правил  Каноническая форма  Автоматически распознает является ли фраза пользователя утверждением, вопросом, либо вопросом и утверждением  Использует WordNet для построения паттернов. Использует онтологии WordNet.  Встроенная база фактов  Краткосрочные и долгосрочные переменные
  • 11.
    ChatScipt (продолжение) Упрощенный синтаксис: s: ( I love meat ) Do you really? s – sentence (утверждение), ? – question (вопрос), u – sentence and question (утверждение и вопрос) (I love meat) – паттерн, срабатывающий на предложение содержащее I, love, meat в любом месте, но в указанном порядке * I * love * meat *
  • 12.
    ChatScipt (продолжение) Концепции (токены): concept: ~meat ( bacon ham beef meat flesh veal lamb chicken pork steak cow pig ) s: ( I love ~meat ) Do you really? I am a vegan Упорядоченный токен concept: ~pokerhand ( "royal flush" "straight flush" "4 of a kind" "full house" ) ?: ( which * better * ~pokerhand * or * ~pokerhand )
  • 13.
    ChatScipt (продолжение) Упрощенный синтаксис: s: ( I like spinach ) Are you a fan of the Popeye cartoons? a: ( yes ) I used to watch him as a child. Did you lust after Olive Oyl? b: ( no ) Me neither. She was too skinny. b: ( yes ) You probably like skinny models. a: ( no ) What cartoons do you watch? b: ( none ) You lead a deprived life. b: ( Mickey Mouse ) The Disney icon.
  • 14.
    Eugene Goostman (2001)  Паттерн матчер со сложными конструкциями.  Интерпретатор логических и математических выражений  Поддержка контекста темы  Интеграция паттернов с базой данных для использования онтологий  Конструктор диалогов  Контроллер цели диалога
  • 15.
    Eugene Goostman (продолжение) Определениетокенов <MultiToken name="qWhatBe">(tell (me|) (about|)|I am interested in|what (is|are|were| was|*ould be|)|know what)</MultiToken> <MultiToken name="qWhatBe0">(#(qWhatBe)|)</MultiToken> <MultiToken name="qWhoBe">(tell (me|) (about|)|I am interested in|who (is|are|was| were|*ould be|)|know who)</MultiToken> <MultiToken name="qWhoBe0">(#(qWhoBe)|)</MultiToken> Паттерны <Pattern>* (#(qWhatAbout)|) (#(pYour)|#(pU)) name *</Pattern>   <Pattern>* tell me (#(pYour)|#(pU)) name *</Pattern>   <Pattern>* how * I call #(pU) *</Pattern>   <Pattern>* my name is * what * yours *</Pattern>   <Pattern>* do #(pU) have (a|) name *</Pattern>
  • 16.
    Поддержка контекста <Theme name="Mother"> <QAUnit name="HaveMother" type="STATEMENT"> <Pattern>* #(qDoYouHave) * #(mother) *</Pattern> <Pattern>* #(pYour) #(mother) * (well|feeling fine|fine) *</Pattern> <Pattern>mother</Pattern> <Random> <Text>Yes, of course I have mother! And I love her very much.</Text> <Text>My mother works on TV.</Text> </Random> </QAUnit> <QAUnit name="MotherProfession" type="STATEMENT"> <Pattern>* #(qWhoBe0) * #(pYour) #(mother) *</Pattern> <Pattern>* #(pYour) #(mother) #(qWhoBe0) *</Pattern> <Pattern>* (Does|if|whether|where) * #(pYour) #(mother) work* *</Pattern> <Pattern>* (Tell me (more|*)|) about #(pYour) #(mother) *</Pattern> <ContextPattern>* Who is she *</ContextPattern> <ContextPattern>* who she is *</ContextPattern> <ContextPattern>* (Does|if|whether|where) she work* *</ContextPattern> <ContextPattern>* what does she do *</ContextPattern> <ContextPattern>* #(qWhoBe0) #(pYour) #(mother) #(profession) *</ContextPattern> <Random> <Text>My mother works on the Odessa TV and runs a popular program for teenagers "Speak Russian right!" Every Odessian teenager heard her famous "For those putzs who schmooze Russian in a goddam lame way: drop by and listen to mine!"</Text> <Text>If you lived in Odessa, you couldn't help but know my mom - she runs a popular educational TV program for teenagers about Russian language.</Text> </Random> </QAUnit>
  • 17.
    Предопределенные диалоги <Request> <Action> <Text>Хотите узнать погоду на сегодня?</Text> </Action> <Variable name=”ask” type=”String”>weather_service</Variable> </Request>   <QAUnit name=”replyAskWeatherYes” type=”REPLY”> <Pattern>* да *</Pattern> <Variable name=”ask” type=”String”>weather_service</Variable> <Text>Сегодня будет солнечно</Text> </QAUnit>   <QAUnit name=”replayAskWeatherNo” type=”REPLY”> <Pattern>* нет *</Pattern> <Variable name=”ask” type=”String”>weather_service</Variable> <Text>Хорошо, не будем говорить о погоде.</Text> </QAUnit>
  • 18.
    Подключение к базеданных Token 3 Token 2 Database Token 4 Country Capital Population Token 1 France Paris 50,000,000 Germany Berlin 60,000,000 Tree Matcher .. Sentence: “<Token 1> <Token 2> <Token 3>” Pattern: <Token 1> <Token 2> <Token 3> Response: <text> <Token 3> <information>
  • 19.
    Подключение к базеданных (продолжние) 1. Load tokens from the database. <MultiToken name="dynCountries" type="DYNAMIC"> SELECT CountryPattern FROM Countries </MultiToken> 2. Define the pattern. <Pattern>* (#(qWhatBe) | #(qWhatAbout) |) * (capital|capitol) * (of|in|) #(dynCountries) *</Pattern> 3.Extract the country name. <Variable name="country" type="String">=GetTokenByName[TRACE_VARIABLE, {dynCountries}]</Variable> 4. Retrieve the capital from the database. <DataLookUp> <Table> <TableName>Countries</TableName> <Record><Field>Capital</Field><Variable name="capital“ type="String"/></Record> </Table> <Where>Country = #(country)</Where> </DataLookUp> 5. Generate response <Text>Well, if you want it, the capital of #(country) is #(capital).</Text>
  • 20.
    Logs 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 54.3 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.
  • 21.
    Eugene Goostman (продолжение) Контроллердиалога: - анализатор достижения цели - регистратор событий, активирующих контроллер цели - планировщик достижения цели - исполнитель достижения цели
  • 22.
    Eugene Goostman (продолжение) Контроллердиалога: г Цель – поддержание диалога и Методы достижения цели – поиск темы, интересной пользователю о Событие для активирования цели – срабатывание всех возможных ответов в QAUnit M Планировщик цели – определение какие темы еще не обсуждались Исполнитель – добавление предложения, призывающее переключить тему
  • 23.
    Функции управления диалогом ALICE Façade ChatScript Eugene Goostman Извлечение фактов из No Yes Yes No диалога Определение No No Yes Yes контекста Переменные Yes Yes Yes Yes состояния Предопредел енные Yes No Yes Yes диалоги No No No Контроллер Can be Can be Can be Yes цели implemented implemented implemented with AIML with ChatScript
  • 24.
    Заключение  Требования к качеству диалогов будут ужесточаться по мере расширения применения чатботов  Основные функции управления диалогом:  Паттерн матчер  Использование онтологий, в том числе полученных в результате диалога  Определение контекста диалога  Переменные состояния  Предопределенные диалоги  Контроллер достижения цели  Планы на будущее  Создание автоматического анализатора диалогов
  • 25.
    Bot to BotChat Elbot: Scientists at the University of Florida have built a robot that eats sugar. It has a stomach that uses bacteria to transform the sugar into energy. Do you think that's good? Eugene: Machines should work. Humans should think. Not vice versa. Elbot: They want to build an underwater robot that eats fish. I can see it now: The poor robot wanders around on the bottom of the ocean eating up all the deep-sea fish which have - up to now - escaped the human campaign to pollute the ocean. They should fix the robot to eat the oil floating around in the ocean instead! Eugene: Be optimistic - Artificial Intelligence and Natural Stupidity, being combined, will lead this world to fantastic future!
  • 26.
  • 27.
    Источники  History of Washing Machines, http://venturebeat.com/2011/01/05/lg-says-smart-web-connected-washing-machines-no-lo , http://inventors.about.com/od/wstartinventions/a/washingmachines.htm  Web-connected washing machines: An idea that's not all wet? http://venturebeat.com/2011/01/05/lg-says-smart-web-connected-washing-machines-  http://bnn-news.com/self-drive-car-registered-usa-61097  ALICE Foundation http://www.alicebot.org  Façade http://www.interactivestory.net  ChatScript http://chatscript.sourceforge.net/  Bruce Wilcox, Beyond Façade: Pattern Matching for Natural Language Applications, http://www.gamasutra.com/view/feature/134675/beyond_fa%C3%A7ade_pat  Eugene Goostman, www.princetonai.com/bot