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