BOT informujący o adresach dealerów samochodowych we Wrocławiu

BOT with knolage when you can buy a car in Wrocław

Opis projktu

Streszczenie projektu

Raport został przygotowany na zaliczenie przedmiotu: Metodyi algorytmy sztucznej inteligencji, ARE3513

Opracował : Piotr Załęcki - Wydział Elektroniki Pwr
Prowadzący: dr inż. Witold Paluszyński
Data: 20 czerwca 2008 rok

Celem mojego projektu było stworzenie Czaterbota, który bedzie informował rozmówce o miejscach
gdzie we Wrocławiu można kupić auto. Podstawowym składnikiem Czaterbota jest tzw. "baza wiedzy"
to dzieki niej bot jest w stanie odpowiadać na nasze pytania.
Bazę napisałem za pomocą języka AIML. Jest to język pochodny od XML i składa się z tzw. tagów w których
zapisuje sie pytania i odpowiedzi.Niestety język ten ma niewiele wspólnego z sztuczną inteligencja gdyż
scenariusz rozmowy jest w całości przewidziany przez osobę tworzącą bazę wiedzy. Niemniej jednak okzuje się,
że im bardziej rozbudowana baza wiedzy tym Czaterbot wydaje się być bardzie inteligentny.
Bazę wiedzy napisałem przy pomocy darmowego ogólnie dostępnego edytora "EditiX" a testy na niej przeprowadzałem
przy pomocy również darmowego programu "Gaito". Przykładowe rozmowy umiesciłem na końcu raportu.

Summary of report

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

Author : Piotr Załęcki - Faculty of Electronics, Wroclaw University of Technology
Coordinator: dr inż. Witold Paluszyński
Date: 20 June 2008 year

The aim of my project was to build a Bot wchich can inform about places in Wrocław where you can buy a car.
The basic Bot's part is base of knolage. "Knolage base" I wrote using AIML laguage wchich is similary to XML language
and consists of tags in wchich you can write questions and answers. Unfortunately this lanuage does not have a lot
in common with artificial intelligence because the whole scenario of conwersation is imperf by a person who wrote base of knolage.
However it appears that bigger the base of knolage is more intelligent Bot is. Base of knolage I wrote using frewere
editor wchich called "EditiX" and I was testing it using also frewere softwere wchich called "Gaito"
Some samples of conwersations I put at the end of this report.



Opis języka AIML:

Język AIML(Artificial Intelligence Markup Language) jest to prosty język znacznikowy oparty składniowo na języku XML.
Mechanizm działania tego języka jest następujący: "jeżeli -> to", inaczej pattern -> template

Między pattern znajduje się wyrażenie warunkowe, czyli wpowiedz osoby rozmawiającej z botem. Pomiędzy template natomiast umieszczamy reakcję tworzonego bota na dane wyrażenie warunkowe. Np:

Oczywiście język AIML daje nam wielkie możliwości tworzenia skomplikowanych baz danych dla botów. Służą do tego dodatkowe znaczniki.
Omówię teraz kilko których użyłem w swoim projekcie.



Realizacja projektu:

Przy tworzeniu bazy wiedzy zdecydowałem sie na użycie edytora o nazwie "EditiX". Jest to bardzo przyjazne narzędzie pozwolające
na doś dużą swobodę w tworzeniu baz wiedzy gdyż edycja bazy polega na pisaniu kodu. Dzięki temu mamy duże możliwości zmian w bzie.

chatbot

Program bezpłatnie można pobrać ze strony:

Do testowani mojego bota użyłem darmoweo programu o nazwie "Gaito". Identyfikuje się on bardzo łatwą obsługą
dzięki czemu testowanie przebiego dość szybko.

chatbot

Program bezpłatnie można pobrać ze strony:



Przykładowe rozmowy prowadzone z czatbotem

Czlowiek: Czesc
Bot: Dziendobry. Jestem Czaterbot, jak masz na imie?
Czlowiek: Mam na imie Lukasz.
Bot: Lukasz Hmm. To bardzo ladne imie.
Czlowiek: Dziekuje jestes bardzo mily.
Bot: A wiec czego chcialbys sie dowiedziec?
Czlowiek: Nie wiem jeszcze.
Bot:
Czlowiek: Czemu sie nie odzywasz? Czy Ty mnie naprawde sluchasz?
Bot: Oczywiście, że tak powiedziales: "Nie wiem jeszcze"
Czlowiek: A wczesniej
Bot: Tak, powiedziales: "Dziekuje jestes bardzo mily".
Czlowiek: A jeszcze wczesniej?
Bot: Lukasz meczysz mnie. Przewin sobie nasza rozmowe i sam zobacz!
Czlowiek: Ha Ha Ha
Bot: Nie smiej sie czekam na przprosiny.
Czlowiek: Niegniewaj się.
Bot: Ok nie gniewam ale "nie gniewaj" pisze sie oddzielnie!
Czlowiek: A wiec jakich informacji mozesz mi udzielic?
Bot: Jestem botem ktory udziela informacji na temet miejsc we Wrocławiu w któych możesz kupić auto.
Czlowiek: To wspaniale własnie zamierzalem kupic samochod.
Bot: Podaj zatem marke samochodu, ktora chcialbys kupic.
Czlowiek: Powiedzmy, ze interesuje mnie BMW?
Bot: Bardzo dobry wybor. Dealer znajduje sie na ulicy karkonoskiej 61.
Czlowiek: A czy moglbys mi rowniez podac numer telefonu do tego salonu?
Bot: Numer telefonu jest nastepujacy: 333-10-00.
Czlowiek:Ok bardzo mi pomogles zegnam Cie?
Bot: Do widzenia. Milo mi bylo ciebie poznac Lukasz.

Czlowiek: Witam
Bot: Witaj, jestem Czaterbot jak masz na imie??
Czlowiek: Mam na imie Krzysiek
Bot: Krzysiek Hmm. To bardzo ladne imie.
Czlowiek: Dziekuje za taki mily komplement.
Bot: A wiec czego chcialbys sie dowiedziec?
Czlowiek: Czegos na temat samochodow.
Bot: Jestem botem ktory udziela informacji na temet miejsc we Wrocławiu w któych możesz kupić auto.
Czlowiek: Cudownie wlasnie takich informacji potrzebuje.
Bot: Podaj zatem marke samochodu, ktora chcialbys kupic.
Czlowiek: Interesuje mnie Renault.
Bot: Bardzo dobry wybor. Dealer znajduje sie na ulicy Sienkiewicza 10.
Czlowiek: A jaki jest tam numer telefonu?
Bot: Numer telefonu jest nastepujacy: 322-66-77
Czlowiek: Bardzo mi pomogles pa pa.
Bot: Zegnam milo sie rozmawialo Krzysiek.

Czlowiek: Witaj jestem Jacek.
Bot: Witaj, jestem czaterbot jak masz na imie??.
Czlowiek: Przeciez juz napisalem. Mam na imie Jacek.
Bot: Jacek Hmm. To bardzo ladne imie.
Czlowiek: No nie wiem ja tak nie uwazam.
Bot:
Czlowiek: Jestes tam?
Bot:
Czlowiek: Przepraszam ale czemu sie nie odzywasz??
Bot: Nie masz za co mnie przepraszac.
Czlowiek: To wspaniale bo wcale nie mam zamiaru.
Bot: Podaj zatem marke samochodu jaka chcesz kupic.
Czlowiek: Ale ja nie chce kupic auta!
Bot:
Czlowiek: Cos nie mozemy sie dogadac!
Bot:
Czlowiek: No to czesc musze juz isc.
Bot: Dzien dobry, jestm Czaterbot jak masz na imie??

Czlowiek: Dzien dobry.
Bot: Witaj, jestem czaterbot jak masz na imie??.
Czlowiek: Mam na imie Mariusz.
Bot: Mariusz Hmm. To bardzo ladne imie.
Czlowiek: Ha ha ha.
Bot: Nie smiej sie, czekam na przeprosiny.
Czlowiek: Ze co?
Bot:
Czlowiek: Super jescze mam cie przepraszc? Za co??
Bot:Mariusz jaka marke preferujesz?
Czlowiek: Nie wiem o co Ci chodzi.

Wnioski

Pisanie czatbotów jest zadaniem niezwykle czasochłonnym. Stworzenie bazy wiedzy na dany temat, która będzie umiała odpowiedzieć na rożnie zadane pytanie, dotyczące jednego zagadnienia, wymaga mnóstwo czasu. Wydaje się, że najlepszym sposobem na stworzenie naprawdę inteligentnego bota byłoby zaangażowanie w pisanie bazy wiedzy wielu ludzi. Pozwoliłoby to na wygenerowanie wielu bardzo różnych zapytań. Niestety takie podejście mogłoby również doprowadzić do kompletnego bałaganu i spowodować, że na jedno zapytanie pojawiało by się kilka zupełnie różnych odpowiedzi. Kolejną istotną sprawą przy tworzeniu bota jest powiązanie ze sobą faktów i powracanie do rozmowy sprzed chwili. Stworzony przeze mnie bot może bardzo precyzyjnie udzielić żądanej informacji lecz rozmowa musi przebiegać według pewnego scenariusza i w tym właśnie momencie ujawnia się brak inteligencji Czaterbota. Stworzenie Czaterbota w pełni inteligentnego wydaje się więc jak na razie zadaniem prawie nie możliwym do wykonania.

Literatura

Valid HTML 4.01 Transitional