Systemy dialogowe

Transcription

Systemy dialogowe
www.dsp.agh.edu.pl
http://rozpoznawaniemowy.blogspot.com/
Technologie Mowy
Interfejs głosowy, systemy
dialogowe
Bartosz Ziółko
Wykorzystano materiały Aleksandra Pohla, MIT, Stanusch
Technologies i AIML
429
Interfejs głosowy
430
Początki komunikacji człowiek komputer
431
Kilka zasad dobrego interfejsu
• Szybkość vs potwierdzanie komend
• Syndrom bankomatu
• Rozumienie potrzeb i możliwości użytkownika
(rozpoznawanie vs przypominanie)
• Ilość dźwięków w interfejsie
• Szkocka winda
• Standaryzacja (dlaczego McDonalds odniosło
sukces)
• Jasna i łatwo powtarzalna nawigacja
• Problem zniecierpliwienia (10 sekund)
432
Interfejs głosowy vs ekrany
dotykowe
Według Microsoftu
ekrany dotykowe będą
przyszłością komunikacji
człowiek – komputer.
Na razie bez znaczących
sukcesów komercyjnych,
poza urządzeniami
mobilnymi.
433
Obecne zastosowania
ekranów dotykowych
434
Przyszłość, już teraz tylko
nikt jej nie chce *
* (poza Billem Gatesem)
Microsoft Surface - a new
$10,000 touchscreen table. 435
Problemy z ekranami
dotykowymi
Touch Table Microsoftu miał
być przełomem w sprzęcie
korporacyjnym. Sprzedano
jednak bardzo niewielką ilość.
- Za bardzo nastawiony na
pracę zespołową (?),
- zbyt rewolucyjny pod kątem
ergonomicznym – nie tylko
usunięcie klawiatury, ale także
patrzenie na ekran w dół (?).
436
Kto to?
437
HAL 9000 –Odyseja kosmiczna
438
Systemy dialogowe
• Najbardziej naturalny sposób
komunikacji dla człowieka
• Atrakcyjny
• Prosty dla nieprzeszkolonych osób
• Sprzyja miniaturyzacji
439
Wirtualni doradcy
•Symulacja osobowości
•Mowa ciała
•Zaskakiwanie
•Synteza mowy
•Planowane ASR
440
Wirtualni doradcy
• WD: Witaj w centrum
obsługi technicznej naszej
telewizji. Nazywam się Jerzy
i postaram się rozwiązać
Twoje problemy. Bedzie
nam łatwiej jeżeli będę się
do Ciebie zwracać po
imieniu. Powiedz mi jak
masz na imię?
• Użytkownik: Ewa
• WD: Witaj Ewo. Jaki masz
problem.
• Użytkownik: Nie ma obrazu.
• WD: Czy telewizor jest
włączony i czy świeci się
kontrolka jego włączenia?
•Użytkownik: Tak
•WD: Czy dekoder telewizji jest
włączony?
•Użytkownik: Tak
•WD: Czy telewizor jest ustawiony na
kanał na którym odbierasz programy
satelitarne?
•Użytkownik: Tak
•WD: Podejdź do telewizora i sprawdź
czy kable łączące telewizor i odbiornik
telewizji satelitarnej nie poluzowały
się.
•Użytkownik: Zadziałało! Jest obraz.
Dziękuje bardzo.
•WD: Bardzo proszę. Czy mogę
jeszcze w czymś pomóc?
441
Standard dialogue in a computer game
442
443
444
Rozumienie języka ludzi przez
komputery
Masz długopis? => proszę podaj mi swój
długopis, jeśli masz takowy…
Każdy rolnik, który ma owce, lubi je.
Po zebraniu makulatury, sprzedaliśmy ją razem
z panią.
Kasia to moja siostra cioteczna, Jurek też.
445
Dialogue System Architecture
MIT
Regina Barzilay
446
447
Example
448
449
450
Surface form is a weak predictor
451
452
Hidden Markov Model for Dialogue Acts
Interpretation
453
HMMs for dialogue acts interpretation
454
455
How to Generate This Semantics
456
Natural language generation
457
States in the dialogue system
458
States in the dialogue system
• greet=0 if user has to be greeted, 1 otherwise
• attr represents attribute being queried; 1/2/3
=activity/location/time, 4 = done with attributes
• conf represents confidence in the attribute value.
0,1,2=low/miidle/high confidence in the speech recognizer;
3=recognition system has received “YES” as an answer to a
confirmation; 4=system has received “NO”
• val=1 if attribute value has been obtained, 0 otherwise
• times=number of times system has asked about the attribute
• gram=type of grammar used to obtain the attribute value
• hist=0 if system has had problems in understanding the user
earlier in the conversation; 1 otherwise
459
AIML - Artificial Intelligence
Markup Language
460
AIML - Artificial Intelligence
Markup Language
461
AIML - Artificial Intelligence
Markup Language
AIML (Artificial Intelligence Markup Language) is an
XML-compliant language that's easy to learn, and
makes it possible for you to begin customising an
Alicebot or creating one from scratch within minutes.
The most important units of AIML are:
• <aiml>: the tag that begins and ends an AIML
document
• <category>: the tag that marks a "unit of
knowledge" in an Alicebot's knowledge base
• <pattern>: used to contain a simple pattern that
matches what a user may say or type to an Alicebot
• <template>: contains the response to a user input
462
Categories
The free A.L.I.C.E. AIML includes a knowledge
base of approximately 41 000 categories. Here's
an example of one of them:
<category>
<pattern>WHAT ARE YOU</pattern>
<template>
<think><set
name="topic">Me</set></think>
I am the latest result in artificial intelligence,
which can reproduce the capabilities of the human
brain with greater speed and accuracy.
</template>
</category>
463
Recursion
AIML implements recursion with the <srai>
operator. No agreement exists about the
meaning of the acronym. The "A.I." stands
for artificial intelligence, but "S.R." may
mean "stimulus-response," "syntactic
rewrite," "symbolic reduction," "simple
recursion," or "synonym resolution." The
disagreement over the acronym reflects
the variety of applications for <srai> in
AIML
464
Symbolic reduction
It refers to the process of simplifying complex grammatical
forms into simpler ones. Usually, the atomic patterns in
categories storing robot knowledge are stated in the
simplest possible terms, for example we tend to prefer
patterns like "WHO IS SOCRATES" to ones like "DO YOU
KNOW WHO SOCRATES IS" when storing biographical
information about Socrates.
<category>
<pattern>DO YOU KNOW WHO * IS</pattern>
<template><srai>WHO IS <star/></srai></template>
</category>
Whatever input matched this pattern, the portion bound to the
wildcard * may be inserted into the reply with the markup
<star/>. This category reduces any input of the form "Do
465
you know who X is?" to "Who is X?"
Divide and conquer
Many individual sentences may be reduced to two
or more subsentences, and the reply formed by
combining the replies to each. A sentence
beginning with the word "Yes" for example, if it
has more than one word, may be treated as the
subsentence "Yes." plus whatever follows it.
<category>
<pattern>YES *</pattern>
<template><srai>YES</srai>
<sr/></template>
</category>
The markup <sr/> is simply an abbreviation for
<srai><star/></srai>
466
Synonyms
The AIML 1.01 standard does not permit more than one pattern
per category. Synonyms are perhaps the most common
application of <srai>. Many ways to say the same thing reduce
to one category, which contains the reply:
<category>
<pattern>HELLO
</pattern>
<template>Hi there!
</template>
</category>
<category>
<pattern>HI
</pattern>
<template><srai>
HELLO
</srai></template>
</category>
<category>
<pattern>HI
THERE </pattern>
<template><srai>
HELLO
</srai></template>
</category>
467
Spelling and grammar correction
The single most common client spelling mistake is the
use of "your" when "you are" is intended. Not every
occurrence of "your" however should be turned into
"you are." A small amount of grammatical context is
usually necessary to catch this error:
<category>
<pattern>YOUR A *</pattern>
<template>I think you mean "you are" not "your."
<srai>YOU ARE A <star/></srai>
</template>
</category>
Here the bot both corrects the client input and acts as
468
a language tutor.
Keywords
AIML template which is activated by the appearance of a
keyword anywhere in the input sentence.
<category>
<pattern>MOTHER</pattern>
<template> Tell me more about your
family. </template>
</category>
Both, detects the
keyword when it
appears by itself, and
provides the generic
response.
<category>
<pattern>_ MOTHER</pattern>
<template><srai>MOTHER</srai>
</template>
</category>
Detects the keyword
as the suffix of a
sentence.
469
Keywords
<category>
<pattern>MOTHER _ </pattern>
<template> <srai> MOTHER </srai>
</template>
</category>
<category>
<pattern>_ MOTHER * </pattern>
<template> <srai> MOTHER
</srai></template>
</category>
Detects it as the
prefix of an input
sentence
detects the
keyword as an
infix.
Each of the last three categories uses <srai> to link to the first, so
that all four cases produce the same reply, but it needs to be
470
written and stored only once.
Conditionals
Conditional branches using only the <srai> tag.
<category>
<category>
<category>
<pattern>
<pattern>WHO IS
<pattern>WHOISHE * WHOISHE
HE</pattern>
</pattern>
UNKNOWN
<template><srai>
<template>He is <get </pattern>
WHOISHE <get
name="he"/>.
<template> I don’t
name="he"/></srai> </template>
know who he is.
</template>
</category>
</template>
</category>
</category>
Provided that the predicate "he" is initialised to "Unknown," the
categories execute a conditional branch depending on whether
"he" has been set. AIML also provides the equivalent function
471
through the <condition> tag.
Targeting
User: Where do I find the webpage with
Australopithecus?
Alice: Where do you want to find it?
User: Bad Answer Alice, time to Learn a new Line
Alice: How would you answer "Where do I find the
webpage with Australopithecus?"
User: I would say:
"http://www.ancientskulls.net/australopithecus.html"
Alice: Thanks, human. Try asking me again.
User: Where do I find the webpage with
Australopithecus?
Alice: http://www.ancientskulls.net/australopithecus.html
472
CONTEXT
The keyword "that" in AIML refers to the bot’s
previous utterance. Specifically, if the bot
responds with a multiple sentence paragraph,
the value of that is set to the last sentence in the
sequence. The choice of the keyword "that" is
motivated by its use in ordinary language:
R: Today is yesterday.
C: That makes no sense.
R: The answer is 3.1412926 approximately.
C: That is cool.
473
That
In AIML the syntax <that>...</that> encloses a pattern
that matches the robot’s previous utterance. A common
application of <that> is found in yes-no questions:
<category>
<pattern>YES</pattern>
<that>DO YOU LIKE MOVIES</that>
<template>What is your favorite movie? </template>
</category>
This category is activated when the client says YES. The
robot must find out what is he saying "yes" to. If the
robot asked, "Do you like movies?," this category
matches, and the response, "What is your favorite
movie?," continues the conversation along the same
474
lines.
Topic
INPUT <that> THAT <topic> TOPIC.
<topic name="CARS">
<category>
<pattern>*</pattern>
<template>
<random>
<li>What’s your favorite car?</li>
<li>What kind of car do you drive?</li>
<li>Do you get a lot of parking tickets?</li>
<li>My favorite car is one with a driver.</li>
</random>
</template>
475
Facade
• http://www.interactivestory.net/
• Download and play
476
Typy wypowiedzi
477
Podsumowanie
• Czym jest ontologia, czyli jak dodać Mruczka
do Facebooka
• Podchwytliwe pytanie „Co to jest CYC?”
• Podstawowe zasady projektowania
interfejsów
• Zalety i wady stosowania mowy w
interfejsach
• Czym system dialogowy różni się od zwykłego
interfejsu
• Systemu dialogowe
• AIML
478
Istniejące systemy
technologii mowy
Przyszłość technologii
mowy
Bartosz Ziółko
479
480