BOT rozmawiający o możliwości spędzenia
wolnego czasu we Wrocławiu

BOT with knowledge about spending free time in Wroclaw City

chatbot

Ogólny zarys problemu

Opis

**Raport został przygotowany w ramach przedmiotu: Metody i algorytmy sztucznej inteligencji, ARE3513

Opracował : Kulikjan Karol - Wydział Elektroniki Pwr
Prowadzący: dr inż. Witold Paluszyński
Data: 12 czerwca 2008 rok

Celem tego raportu jest pokazanie możliwości tworzenia botów Internetowych. Mówiąc bot(od robot), mam na myśli samodzielnie
działającą softwarową aplikację. Logiczny umysł bota zawarty jest w bazie danych bota. Ważne, aby wspomnieć, że inteligencja
bota zależy jedynie od wcześniej przygotowanej właśnie bazy wiedzy, co jest wyjaśnione w raporcie. Jak jest napisane w temacie
raportu, stworzony bot posiada wiedzę na temat spędzania wolnego czasu we Wrocławiu. Bot może podać informacje takie jak adresy
i numery telefonów do interesujących nas obiektów w mieście. Potrafi rozmawiać o restauracjach, kinach i teatrach. W raporcie
zawarte są także informacje na temat języka AIML oraz opis programu GaitoBot AIML editor, w którym to wykonałem swojego bota. Na
końcu raportu znajduje się przykład przeprowadzonej rozmowy użytkownika z botem.

Description

**This report has been prepared as a requirement for the course: Methods and algorithms of artificial intelligence, ARE3513

Author : Kulikjan Karol - Faculty of Electronics, Wroclaw University of Technology
Coordinator: dr inż. Witold Paluszyński
Date: 12 June 2008 year

The aim of this report is to show possibilities creating Internet bots. Saying bot(from robot) I mean software application that
runs itself. The whole logical brain of bot is contained in database. It is important to note that the bot's intelligence depends
only on earlier prepared database, what is explained inside this report. As it is written in the topic, created bot owns knowledge
about spending free time in Wroclaw City. My bot machine can give the user imformations like adresses and phone numbers to interesting
points in the town. It is able to speak about restaurants, cinemas, and theaters. In this report are also included informations about
AIML language and description of softwear GaitoBot AIML editor, in which I made my bot. In the end of the report there is an example of
conversation user with performed bot machine.



Wrobot

Stworzonego przez siebie bota informacyjnego nazwałem Wrobot. Posiada on wiedzę na temat Wrocławia. Jego umiejętności
są ograniczone do konwersacji o restauracjach, kinach i teatrach na terenie Wrocławia. Wrobot potrafi się przedstawić i
prowadzić ciągą rozmowę z użytkownikiem. Dodatkowo w bazie wiedzy posiada adresy, numery telefonów i niektóre adresy portali
internetowych.



Język AIML

Język AIML(Artificial Intelligence Markup Language) jest to prosty język znacznikowy oparty składniowo na języku XML.
Pierwotnie został opracowany przez Richarda S. Wallace'a. AIML'a stworzono do pisania bazy wiedzy botów internetowych.
Głównym i podstawowym elementem w AIML jest category(kategoria), składający się z pattern(wzorzec) i template(szablon)
oraz opcjonalnego kontekstu. Mechanizm działania tego języka jest następujący: "jeżeli -> to", inaczej pattern -> template

Trzeba wiedzieć, że każdy dokument w języku AIML zaczyna się i kończy dwoma głównymi tagami

Podstawowy i całkowicie poprawny dokument AIML składa się z jednego pattern i template. Przy czym jedna kategoria może
zawierać w sobie maksymalnie po jednym takim znaczniku.

Między pattern znajduje się wyrażenie warunkowe, czyli to co może powiedzieć potencjalny user. Dla odmiany pomiędzy template umieszczamy reakcję tworzonego bota na dane wyrażenie warunkowe. Np:

Czyli, gdy użytkownik wprowadzi hasło "kolor", bot odpowie automatycznie "Lubię kolorowe obrazy." Teoretycznie takie umiejętności wystarczą do napisania całej bazy wiedzy bota. Tworzymy pytanie -> odpowiedź itd.

+

itd.

Oczywiście język AIML daje nam wielkie możliwości tworzenia skomplikowanych baz danych dla botów. Służą do tego dodatkowe znaczniki, które tylko omówię w skrócie.



GaitoBot AIML Editor

chatbot

GaitoBot AIML editor jest prostym w obsłudze narzędziem do pracy w języku AIML. Jego darmową wersję można pobrać na stronie producenta.
Szata graficzna oraz łatwo dotępne buttony ułatwiają pracę na tej aplikacji. Z tego względu zdecydowałem się na skorzystanie z tego edytora przy tworzeniu bota Wrobot.

chatbot

Kliknięcie na poszczególne buttony powoduje dodanie wybranego znacznika w oknie roboczym. Nad oknem roboczym znajduje się tabela ze wszystkimi kategoraiami, które zostały stworzone w ramach bieżącego pliku. Jest to ogromna zaleta. Gdy nagle wymyślimy nowe wyrażenie regularne, które chcielibyśmy dodać do kategorii wystarczy przewinąć listę w celu upewnienia się, że takie już nie istnieje. W ten sposób mamy szybki dostęp do naszej bazy danych.

chatbot

Podstawowa lista buttonów generujących znaczniki AIML. Po kliknięciu na dany button w oknie roboczym uzyskujemy znacznik. Sprawa jest o tyle prosta, że edytor GaitoBot pozwala na dodanie określonego znacznika tylko w dozwolonym miejscu tzn. zgodnym z logiką i standardem AIML.

chatbot

Praca w aplikacji za pomocą buttonów jest prosta, ale niestety program nie ma możliwości pisania skryptu. Jedynie istnieje opcja wyświetlania fragmentu kodu z jedną kategorią bez możliwości edycji. Stanowi to raczej probelm, gdy chcemy dołączyć lub dopisać fragment skryptu w AIML.

chatbot

Generalnie po krótkim zapoznaniu się z obsługą GaitoBot editor można sprawnie tworzyć nowe kategorie. Po utworzeniu szkieletu bota, praca staje się dosyć schematyczna i automatyczna. Polega ona na kopiowaniu kategorii poprzez clone i zmienianiu wyrażenia regularnego. Oto przykład prostej kategorii z bazy wiedzy Wrobot'a.

chatbot

Program do pobrania na:



Dane

Informacje zgromadzone w bazie wiedzy Wrobot'a pochodzą z portali internetowych:



Test

Internetowe boty jak sam nazwa wskazuje można i należy testować w sieci. To właśnie w trakcie testowania okazuje się, jakie są braki w bazie wiedzy bota. Tymczasem program GaitoBot editor posiada specjalne okno testowe. Właśnie tam przeprowadzałem testy na Wrobocie. Po wcześniejszym przeładowaniu bazy danych robota pojawia się okno dialogowe. Wielką zaletą jest dodatkowy panel obok okna dialogowego, w któyrm są wyświetlane kolejne kroki rozmowy oraz ewentualne błędy, a newet wskazówki do potencjalnych błędów.
Jeśli jednak byśmy chcieli udostępnić naszego bota choćby do tesów dla innych możemy to zrobić na za pomocą Pandorabot (http://www.pandorabots.com/botmaster/en/home). Istnieje tam opcja dopisywania nowych kategorii, przez testujących bota.
Istnieje jeszcze jeden dodatkowy ciekawy sposób testowania botów. A mianowicie narzędziem Chracter Builder firmy Media Semantics (http://www.mediasemantics.com/). Możemu tutaj wizualizować naszego bota poprzez różne postaci, a nawet generować głos bota. Zdecydowanie bardziej interesującą wersją jest bot, którego możemy zobaczyć i jeszcze usłyszeć. Niestety tego typu darmowe narzędzia dostępne są tylko w wersji angielskiej, a to stanowi dużą przeszkodę przy czytaniu polskich znaków. Dlatego pozostałem przy testowaniu robota w GaitoBot editor.

chatbot


Uwagi

Stworzony prze mnie bot, nazwany Wrobot spełnił zakładane wcześniej oczekiwania. Jego wiedza została ukierunkowana na znajomość kin, restauracji i teatrów na terenie Wrocławia. Naturalnie uzupełnianie bazy wiedzy bota jest czynnością bardzo pracochłonną i teoretycznie nieskończoną, gdyż istnieje ogromna liczba możliwości wyrażeń warunkowych. Pisanie wiedzy bota w języku AIML jest uproszczonym podejściem do zjawiska sztucznej inteligencji. W zasadzie, nie jest to AI bo z góry znamy reakcję bota na każdą wypowiedź użytkownika. Zatem bot jest tym inteligentniejszy im obszerniejsza jest jego baza wiedzy. Jest to jedyny wyznacznik inteligencji bot maszyny.
Warto zwrócić uwagę na subtelności związane z językiem polskim. Po pierwsze język AIML nie uznaje polskich znaków specjalnych. Drugim mankamentem tworzenia bota w języku polskim jest deklinacja. Powoduje ona kilkukrotne zwiększenie nakładu pracy. Dajmy na to, że mamy wzorzec w języku ang. DOG, DOGS. To samo w języku polskim występuje w następującej postaci: PIES, PSU, PSEM, PSY, PSAMI, PSOM itd. Wniosek z tego taki, że może warto pisząc takiego bota zastanowić się nad agnielską wersją językową.



Przykładowa rozmowa z Wrobot'em

User: Witaj.
Wrobot: Dzien dobry, jak masz na imie?
User: Jestem Karol.
Wrobot: Spoko... Mi mow Wrobot. Oprowadze Cie Karol po Wroclawiu. Raczej nie bedzie
czasu sie nudzic w tym miescie.

User: Dopiero przyjechalem do Wroclawia.
Wrobot: Wroclaw to piekne miasto. Mozesz tu wiele zobaczyc jesli tylko chcesz. Na co
masz ochote, gdzie chcesz Karol pojsc? Moze kino, teatr,a moze restauracja?

User: Mam ochote na kino.
Wrobot: No tak Karol, mysle, ze doradze Ci cos w tej sprawie.
User: Jakie znasz kina?
Wrobot: Swietny pomysl na spedzenie wolnego czasu! Tez lubie kino. We Wroclawiu mamy
teraz duzo roznych kin. Na pewno znajdziesz cos dla siebie. Ja znam takie: Warszawa,
Multikino pasaz grunwaldzki, Kino Lwow, Cinema City, Lalka, Helios... Sa jeszcze jakies nowe,
ale jeszcze ich nie znam.

User: A gdzie jest kino Lwow?
Wrobot: Wroclaw, ul. Hallera 15, telefon 071 361 2078.
User: Ok.
Wrobot: Jest ok.
User: A dojade tam autobusem?
Wrobot: Hmmm... A która jest teraz godzina? Najlepiej jak sprawdzisz sobie szybko na
rozkladzie: www.wroclaw.pl/m3298/.

User: Spoko.
Wrobot: Oki doki, jestem tutaj caly czas. Jak cos to sie pytaj.
User: Fajny ten Wrobot.
Wrobot: Jestem w stanie Ci pomoc? Wrobot to ja - bot informacyjny. Wiem kilka rzeczy o
Wroclawiu. Moze kino, teatr, moze pizza?

User: A jakie znasz restauracje?
Wrobot: Mamy tu tysiace knajpek, do wyboru do koloru. To zalezy co chcesz zjesc.
User: Nie wiem.
Wrobot: Ja glodny nie jestem. To ty musisz zadecydowac.
User: Moze fast food.
Wrobot: Chyba nie musze Ci mowic, ze McDonaldy sa wszedzie i na kazdym rogu.
User: Dobra, zjadlbym pizze.
Wrobot: Dobry pomsyl. Pizzerii we Wroclawiu nie brakuje. Polecam chocby: Pizza Madano,
Pizza Speed, Pizza Hut, Da Grasso, La Luna, Pizza Station albo Pizza Roma... A jest ich jeszcze wiecej.

User: Hmm, moze Da Grasso?
Wrobot: Coz... Wroclaw, ul. Wyszynskiego 71, a telefon 071 793 70 70.
User: Fajnie, adres mam, a mapa?
Wrobot: Brak orientacji w terenie? Nie ma problemu, jesli jeszcze nie wiesz, jak gdzies dojsc wejdz
na emapy.com/wroclaw/index.php Teraz juz wiesz... A tak swoja droga to najlepiej przemieszczaj sie autobusem
lub tramwajem, albo taxi.

User: Teraz juz wszystko wiem.
Wrobot: Skoro juz wszystko wiesz to moja obecnosc jest juz zbedna.
User: Dzieki.
Wrobot: Na mnie mozna polegac.



Bibliografia



Valid HTML 4.01 Transitional