Chatbot rozmawiajacy o wakacjach w Karkonoszach24.06.2008 , POLITECHNIKA WROCŁAWSKA Przedmiot: METODY I ALGORYTMY SZTUCZNEJ INTELIGENCJI Prowadzący: dr inż. Witold PALUSZYŃSKI Autor : Paweł Jabłoński 133096 ARS |
1. WstępCzym jest czatbot?Chatbot (pisane także 'czatbot'), zwany inaczej chatterbot to wirtualny asystent, zadaniem którego jest rozmowa z internautą przebywającym na stronie internetowej. Rozmowa ma charakter tradycyjnego czatu tekstowego. Docelowo chatbot może pełnić najróżniejsze funkcje. W rzeczywistości jest to program komputerowy działający on-line, pewien system, zbiór alogorytmów odpowiadających za prowadzenie konwersacji i wszystkie działania z nią związane. Jego zasadniczym zadaniem jest rozmowa z internautami, nawet wieloma jednocześnie. Wirtualny asystent dzięki swojemu oprogramowaniu rozpoznaje zadane pytanie i stara się dopasować odpowiedź. W przypadku, gdy pytanie zadane przez użytkownika jest niezrozumiałe (lub po prostu nie ma na nie odpowiedzi w bazie wiedzy) chatbot stara się dopasować jedną z wypowiedzi 'awaryjnych', bądź próbuje nauczyć się od rozmówcy, aby następnym razem przy takowym pytaniu skorzystać z tej wiedzy. Posiada pewną wiedzę z danego zakresu, przykładowo na temat firmy, instytucji, produktu, usług, osób. Chatterbot korzysta z własnych baz danych, ma także możliwość czerpania informacji z zewnętrznych źródeł (inne bazy danych, wyszukiwarki, informacyjne strony www).Jak stworzyć czatbota?Artificial Intelligence Markup Language (ang. Język Opisu Sztucznej Inteligencji) jest pochodną języka XML. AIML został wymyślony pierwotnie jako baza wiedzy dla chatterbota A.L.I.C.E., który stanowi mocno rozwiniętą wersję innego znanego chatterbota „Eliza”. Należy tutaj wspomnieć, iż chatterbot A.L.I.C.E. wygrał trzykrotnie konkurs o Nagrodę Loebnera1 oraz zdobył mistrzostwo w turnieju „Chatterbox Challenge” w 2004 roku. Początkowo, jeszcze przed tym nim został uznany za standard i nim nabrał cech języka pochodnego do XML’a, AIML różnił się dość znacząco od obecnej wersji. AIML został opracowany w 1995 roku przez amerykańskiego naukowca dr Richarda Walles’a i rozwijany przez niego, a potem również przez światową społeczność wolnego oprogramowania przez następne kilka lat. Język AIML służy, jak już zostało to nieformalnie wspomniane, do opisu bazy wiedzy dla programów, których celem jest prowadzenie rozmowy, potocznie zwanych „chatterbotami”. Jest językiem bardzo prostym strukturalnie i raczej nie należy sądzić, że ma faktycznie, jakby sugerowała nazwa, dużo wspólnego ze sztuczną inteligencją, przynajmniej nie z taką, jaka jest w chwili obecnej rozwijana. Opiera się na prostym schemacie „szablon – odpowiedź”, ma więc raczej charakter algorytmiczny niż inteligentny, gdyż projektant bazy wiedzy musi sam przewidzieć i przemyśleć różne scenariusze rozmowy użytkownika z chatterbotem.2. Opis projektuW ramach realizacji "dużego" projektu chciałem stworzyć chatbota, który bedzie mógł porozmawiać z osobą o wakacjach w Karkonoszach. Rozmowa ta jest bardzo ogólna, dotyczy ona kilku miast w Karkonoszach, a konkretnie: Karpacz, Borowice i Szklarska Poręba. Chatbot może nam pomóc wybrać ośrodek wypoczynkowy w zależnosci od naszych potrzeb, może zaproponowac wiele miejsc do których powinien się udać rozmówca. Chatbot może nam zaproponować:
3. Opis narzędziDo tworzenia mojego projektu posłużyłem się programem "GaiToBot" oraz "Editix". Ten pierwszy pomocny był na początku pracy z językiem AIML, można było w klarowny sposób stworzyć bazę wiedzy chatbota. Mozna było też sprawdzić jak to działa Natomiast w dalej części pracy nad projektem używałem programu "Editix". Dużo szybciej szła praca w tym programie, a do testowania wykorzystalem strone internetową www.pandorabots.com . Do kożystania z tej strony należy założyć konto, a następnie umieścić tam swoje pliki z bazą wiedzy bota. W moim przypadku jest kilka plików napisanych w języku AIML. Wygląd programu "GaitoBot" ![]() Rysunek 01. Wygląd programu "Editix" ![]() Rysunek 02. 4. Testowanie chatbotaDo pierwszych testów mojego chatbota wykorzystałem program "GaitoBot", w zasadzie sprawdzałem odpowiedzi bota na proste pytania. Nastenie po stworzeniu większej bazy wiedzy, dokonywałem testów za pomocą strony internetowej www.pandorabots.com. Po otrzymaniu satysfakcjonujących wyników przeszedłem do kolejnej fazy testów. Mianowicie poprosiłem kilka osób aby przeprowdziły rozmowe z moim chatbotem. Okazało się, że moja baza wiedzy jest za mała i chatbot czesto nie potrafił odpowiedzieć na zadane pytania przez użytkowników. W miere możliwości uzupełniałem bazę wiedzy.Oto przykładowe rezultaty testów chatbota: I.Pierwsza rozmowa. Human : WITAM Japatas : HEJ , JESTEM CHATBOTEM, MOGE Z TOBA POROZMAWIAC O WAKACJACH W GORACH . Human : A CO CIEKAWEGO MOZESZ MI POWIEDZIEC O GORACH Japatas : W KARKONOSZACH ZNAM KILKA MIAST, MOGE CI ZAPROPONOWAC: KARPACZ, SZKLARSKA POREBA, BOROWICE. NA TEMAT INNCH MIEJSCOWOSCI NIE MAM ZADNEJ WIEDZY . Human : POWIEDZMY ZE CHCIALBYM SIE WYBRAC DO KARPACZA Japatas : CZEGO SZUKASZ W KARPACZU, JAKIEGOS OSRODKA JAKIS ATRAKCJI ? POSTARAM SIE POMOC CI ZNALESC TO CZEGO SZUKASZ. Human : NA POCZATEK CHCIALBYM ZNALESC JAKIS OSRODEK Japatas : CZY WOLISZ OSRODEK W KARPACZU GORNYM CZY DOLNYM? Human : MOZE W KARPACZU DOLNYM Japatas : W KARPACZU DOLNYM POLECAM PENSJONAT "HALNY" 58-540 Karpacz ul. Kamienna 3 A tel. (075) 761-91-85. Human : A SA JAKIES OSRODKI Z BASENEM ? Japatas : CALKIEM PRZYZWOITY OSRODEK Z BASENEM TO "PERLA KARKONOSZY" 58-540 Karpacz ul. Konstytucji 3 Maja 59a tel. (075) 76 16 098. Human : A CZY SA JAKIES CIEKAWE ATRAKCJE W MIESCIE ? Japatas : BARDZO CIEKAWYM MIEJSCEM JEST SWIATYNIA WANG, ZBUDOWANA W CALOCI Z DREWNA, W POBLIZU SWIATYNI JEST WEJSCIE DO KARKONOWSKIEGO PARKU NARODOWEGO. Human : GDZIE WIECZOREM MOGLBYM SIE POBAWIC ? Japatas : W MIESCIE JEST DUZO MIEJSC GDZIE MOZNA SIE POBAWIC, WOLISZ JAKIS KLUB CZY W PUBIE SPEDZIC MILY WIECZOR. Human : WOLE JAKIS KLUB Japatas : JEZELI CHCESZ SIE DOBRZE WYSZALEC POLECAM KLUB"LISA". Human : POWIEDZ MI NA KONIEC JAK MOGE DOJECHAC DO MIASTA ? Japatas : DO KARPACZA MOZESZ DOJECHAC AUTOKAREM, W MIESCIE JEST DWORZEC PKS. MOZESZ TEZ DOJECHAC POCIAGIEM DO JELENIEJ GORY A POZNIEJ PRZESIASC SIE DO PKSU. II.Druga rozmowa. Human : CZESC Japatas : WITAM, JESTEM CHATBOTEM, MOGE Z TOBA POROZMAWIAC O WAKACJACH W GORACH . Human : CHACIALBYM SIE WYBRAC GDZIES NA URLOP. Japatas : MAM KILKA POMYSLOW NA UDANE SPEDZENIE URLOPU. Human : A CO MOZESZ ZAPROPONOWAC ? Japatas : W KARKONOSZACH JEST WIELE CIEKAWYCH OSRODKOW, HOTELI, DOMOW WCZASOWYCH, CZEKA CIE TAM WIELE ATRAKCJI, MYSLE ZE WYBIERZEMY ODPOWIEDNIE MIEJSCE DLA CIEBIE. Human : JAKIE MIASTA ZNASZ W KARKONOSZACH ? Japatas : W KARKONOSZACH ZNAM KILKA MIAST, MOGE CI ZAPROPONOWAC: KARPACZ, SZKLARSKA POREBA, BOROWICE. NA TEMAT INNCH MIEJSCOWOSCI NIE MAM ZADNEJ WIEDZY . Human : CO CIEKAWEGO JEST W SZKLARSKIEJ POREBIE ? Japatas : CZEGO SZUKASZ W SZKLARSKIEJ POREBIE, JAKIEGOS OSRODKA JAKIS ATRAKCJI ? POSTARAM SIE POMOC CI ZNALESC TO CZEGO SZUKASZ. Human : PENSJONATU Japatas : CZY W TYM OSRODKU MAJA BYC JAKIS DODATKOWE ATRAKCJE TYPY BASEN, KORTY TENISOWE, BOISKA? Human : NIE, WYSTARCZY MI KWATERA W CENTRUM Japatas : NIEDALEKO CENTRUM ZNAJDUJE SIE OSRODEK "GRAZYNA" 58-580 Szklarska Poreba, ul. Rataja 1. Human : MOZESZ MI POLECIC JAKIES CIEKAWE MIEJSCE NA WYCIECZKE Japatas : POLECAM WYRAC SIE NA WYCIECZKE NA SNIEZNIK, JEZELI JESTES NA SILACH PROPONUJE CZARNY SZLAK. Human : A GDZIE MOGE COS ZJESC? Japatas : W SZKLARSKIEJ POREBIE ZNAJDZIESZ KILKA MILYCH RESTAURACJI, NATOMIAST JEZELI NIE CHCESZ WYDAC DUZO PIENIEDZY NA POSILEK MOZESZ ZJESC W JAKIMS FASTFUDZIE. III.Trzecia rozmowa. Human : CZESC Japatas : SIEMA, JESTEM CHATBOTEM, MOGE Z TOBA POROZMAWIAC O WAKACJACH W GORACH . Human : CO MI ZAPROPONUJESZ ? Japatas : POWIEDZ CO CIE INTERESUJE MOZE TO BYC MIASTO, LOKALIZACJA OSRODKA DODATKOWE ATRAKCJE, MIEJSCA GDZIE MOZNA SIE POBAWIC. Human : CO WIESZ O BOROWICACH Japatas : CZEGO SZUKASZ W BOROWICACH, JAKIEGOS OSRODKA JAKIS ATRAKCJI ? POSTARAM SIE POMOC CI ZNALESC TO CZEGO SZUKASZ. MOGE CI POWIEDZIEC ZE W BOROWICE SA MALUTKIM MIASTECZKIEM LECZ BARDZO UROKLIWYM. Human : CHCIALBYM ZNALESC JAKOS OSRODEK Japatas : W BOROWICACH JEST NIEWIELE OSRODKOW, ALE MYSLE ZE COS WYBIERZEMY. WOLISZ DUZY OSRODEK CZY RACZEJ TAKI KAMERALNY. Human : SA JAKIES IMPREZY W MIESCIE? Japatas : POLECAM DYSKOTEKE W HOTELU "HOTTOUR", ALE MOZESZ TEZ POBAWIC SIE W LOKALNYCH BARACH. Human : A SA JAKIES ATRAKCJE W MIESCIE ? Japatas : JEDYNYMI ATRAKCJAMI W BOROWICACH SA OBIEKTY SPORTOWE, NATOMIAST POLECAM WYBRAC SIE NA WYCIECZKE W GORY. IV. Przykład rozmowy z błędem Human : DZIEN DOBRY Japatas : WITAM, JESTEM CHATBOTEM, MOGE Z TOBA POROZMAWIAC O WAKACJACH W GORACH . Human : CHCE OSRODEK W CENTRUM Japatas : CZY CHCESZ MIESZKAC W OSRODKU BLISKO CENTRUM CZY GDZIES NA UBOCZU? V. Przykład braku odpowiedzi Human : CO WIESZ O KARPACZU ? Japatas : CZEGO SZUKASZ W KARPACZU, JAKIEGOS OSRODKA JAKIS ATRAKCJI ? POSTARAM SIE POMOC CI ZNALESC TO CZEGO SZUKASZ. Human : W SUMIE TO WOLE BOROWICE Japatas : I have no answer for that. Pierwsza konwersacja to luźna rozmowa o Karpaczu, chatbot proponuje nam ośrodek w zależności od naszych preferencji, następnie sugeruje nam ciekawe miejsca do odwiedzenia, poźniej proponuje nam klub do zabawy i na koniec doradza nam jak możemy dojechać do miasta. Podobnie wyglądają kolejne dwie rozmowy, zmienia się tylko kilka rzeczy (miasto, chatbot poleca miejsca gdzie można coś zjeść, itp). Natomiast jeżeli chodzi o rozmowę, w której wystąpiła błędna odpowiedź, chatbot niezrozumiał pytania i udzielił błędną odpowiedź. Stało się tak ponieważ w zdaniu użyłem dwóch słów kluczowych, którym są przypisane różne odpowiedzi. Program odpowiedział tylko na słowo "ośrodek" nie zwracając uwagi na słowo "centrum". Aby rozwiązać ten problem wprowadziłem temat rozmowy "lokalizacja_osrodka". Czasami ten błąd się pojawia ale rzadziej niż poprzednio. Jeżeli, chodzi o konwersacje gdzie chatbot nie miał odpowiedzi, to problemem była zbyt mała baza wiedzy. Starałem się systematycznie rozwijać wiedzę chatbota lecz zawsze znajdzie się jakieś słowo, którego nie zna program. 5. Uwagi końcoweBardzo łatwo stworzyć prostego chatbota, który odpowiada na pojedyńcze słowa. Ułatwiają nam to zadanie programy, które są bardzo proste i szybkie w obsłudze. Natomiast jeżeli chodzi o stworzenie chatbota, który posiada dużą bazę wiedzy jest już dużo trudniejsze. Zawsze znajdzie sie jakieś słowo którego chatbot nie zna. Gdy ja testowałem program to wyniki wyglądały całkiem nieźle, natomiast gdy z chatbotem rozmawiał ktoś kto nie miał styczności z tworzeniem tego programu, błędy pojawiały się już na samym początku. Okazywało się że nie ma konkretnch zwrotów w bazie wiedzy, lub słowa występują w nieznanej odmianie dla chatbota. Starałem się wprowadzać nowe zwroty, lecz to za wiele nie pomogło. Tak naprawde należało przetestować program na grupie kilkudziesięciu osób aby chatbot działał poprawnie w rozmowie z przypadkową osobą. Okazało się również, że pojawiały się błędy na stronie gdzie testowałem chatbota, na proste zwroty, które były w bazie wiedzy program nie miał odpowiedzi, lub wypowiedzi nie miały sensu. 6. Rozmowa z chatbotemTutaj można przetestować chatbota. http://www.pandorabots.com/pandora/talk?botid=c57f12e86e36b64c 7. Linki do materiałów pomocniczych.Strona z informacjami o języku "AIML": http://www.alicebot.org/aiml.html Program "GaitoBot": http://www.gaito.de Program "Editix": http://www.editix.com Strona gdzie można zamieścić swojego chatbota : http://www.pandorabots.com Strona z informacjami o Karpaczu : http://www.karpacz.wgorach.pl Strona z informacjami o Szkalarskiej Porębie : http://www.szklarskaporeba.com.pl/ Strona z informacjami o Borowicach : http://www.borowice.pl/ |