Chatterbot Fonik

system doradczy przy wyborze sieci komórkowej

Projekt zrealizowany w ramach zaliczenia kursu:

Metody i Algorytmy Sztucznej Inteligencji

Politechnika Wrocławska


Chatterbot Fonik

an advisory system for choosing cell phone network operator

This report has been prepared as a requirement for the course:

Methods and Algorithms of Artificial Intelligence

on Wroclaw University of Tehnology


Autor : Marek Bladowski Wrocław 20.06.2008

Abstract

Chatterbot Fonik - it's an advisory system for choosing cell phone network operator. Its purpose is to communicate with the user to give him information about cell phone networks availabe on the polish market, promotions and options offered by particular operators. Chatterbox was writen in AIML laguage, created especially for this purpose with the help of GaitoBot editor.

Project was created for the course needs "Methods and Algorythms of Artificial Inteligence" on Wroclaw University of Tehnology.
The following document is a raport of this project written in polish laguage version.

Opis projektu

Celem projektu jest realizacja prostego chatterbota jako systemu doradczego przy wyborze operatora sieci komórkowej. Jest to bot informacyjny zawierający podstawowe informacje na temat sieci telefonów komórkowych dostępnych na rynku polskim, dostępnych w nich pakietów oraz promocji oferowanych przez poszczególnych operatorów. Działanie systemu polega na rozmowie użytkownika z chatterbotem, zainteresowna osoba zadaje pytanie a system udziela odpowiedzi o ile zawiera w swojej bazie potrzebne inforamcję.

Realizacja

System został zrealizowany za pomocą programu GaitoBot. Jest to edytor języka AIML stowrzonego na potrzeby projektowania chatterbotów. Program ten umożliwia w łatwy i przystępny sposób projektowanie dokumentów. Jego możliwości pozwalają na graficzną wizualizację struktury dokumentu i powiązań między kategoriami zawartymi w jego bazie. Ponadto daje możliwość testowanie działania chatterbota w dowolnej momencie jego tworzenia.

screenshot

Język AIML

AIML - Artificial Intelligence Markup Language (Język Znaczników Sztucznej Inteligencji) to język znacznikowy, oparty o język XML służący do tworzenia baz wiedzy dla programów zwanych chatterbotami, przeprowadzających dialog użytkownika z komputerem. Został stworzony przez dr Richarda S. Wallace'a w 1995 roku na potrzeby budowy słynnego chatterbota Alice. Obecnie jest nadal rozwijany przez społeczeństwo wolnego oprogramowania. Język AIML tak jak wszystkie języki pochodne od XML'a mają podobną strukturę. Składa się ze znaczników, tak zwanych tagów. Ich lista wraz z krótkim opisem znajduje się poniżej.

  • <aiml></aiml> - znacznik rozpoczynający i kończący dokument aimla
  • <category></category> - znaczniki będące ramami dla kategorii wypowiedzi
  • <pattern></pattern> - określa kategorię wypowiedzi użytkownika
  • <template></template> - określa reakcję bota na zadaną przez użytkownika kategorię
  • <srai></srai> - definiuje synonimy dla określonych wyrażeń
  • <random></random> - losowy wybór wypowiedzi bota z pośród możliwych
  • <star/> - powoduje wstawienie wyrażenia reprezentowanego przez * w wypowiedź bota
  • <input/> - umożliwia odwołanie się do jednej z poprzednich wypowiedzi użytkownika
  • <that></that> - dopasowanie poprzedniego zdania do treści między tymi znacznikami
  • <thatstar></thatstar> - umożliwa odwołanie się do * użytej w poprzednim tagu
  • <think></think> - określa wyrażenie które nie powinno być wyświetlane w odpowiedzi
  • <set></set> - umożliwia zapamiętanie użytych w dialogu wyrażeń
  • <get/> - odczytuje zapamiętane wyrażenie
  • <condition></condition> - ustala reakcję bota w zależności od wartości danej zmiennej
  • <topic></topic> - umożliwia wybór reakcji bota na nieznane mu wyrażenie
  • <topicstar/> - podobnie jak poprzednio z możliwością odwołania się do wyrażenia *
  • <lowercase></lowercase> - zamienia duże litery na małe
  • <uppercase></uppercase> - zamienia małe litery na duże
  • <formal></formal> - ustawia wielką literę na początku każdego wyrazu
  • <sentence></sentence> - ustawia wielką literę na początku każdego zdania
  • * _ - znaki reprezentujące dowolne wyrażenie

Przykład prostego dokumentu AIML który odpowiada „Witaj, co słychać?” na wypowiedź użytkownika „Cześć”:

<aiml>
  <category>
    <pattern>Cześć</pattern>
    <template>Witaj, co słychać?</template>
  </category>
</aiml>

Testowanie

Przykłady rozmów z chatterbotem oraz uwagi dotyczące poprawności działania systemu są przedstawione w ramce poniżej. Rozmowy zostały przeprowadzone przez niezależnych użytkowników tak, by jak najobiektywniej ocenić działanie bota.

Pierwsza rozmowa
user: Cześć
fonik: Witam. W czym mogę pomóc? powitanie
user: Chciałbym kupić telefon.
fonik: Jestem botem informacyjnym dotyczącym wyboru operatora sieci komórkowej. możliwa odpowiedź jednak wydaje się wymijająca
user: Ok. To powiedz jakie znasz sieci?
fonik: Dostarczam informacji na temat następujących operatorów sieci kómórkowej: Era, Plus, Orange, Play. Czy jesteś zainteresowany wyborem któregoś z wymienionych operatorów? bot reaguje na słowo sieci
user: Nie. Chciałem tylko kupić telefon.
fonik: Jestem botem informacyjnym dotyczącym wyboru operatora sieci komórkowej. jednak wraca do swojej odpowiedzi informującej o sobie
user: to już mówiłeś. Potrafisz coś więcej?
fonik: Czy chciałbyś dowiedzieć się czegoś więcej na temat wybranego przez Ciebie operatora? reakcja na słowo więcej
user: tak
fonik: Jestem botem informacyjnym dotyczącym wyboru operatora sieci komórkowej. brak wyboru operatora sprowadza reakcję do tej samej odpowiedzi
user: powiedz coś na temat Ery pytanie o konkretną sieć
fonik: Aktualnie dostępna promocja w siecie Era to "Nowy Mix na piątke" 0,19 zł do 3 przyjaciół bez dodatkowych opłat oraz 0,59 zł/min do wszystkich i 50 zł miesięcznego doładowania oraz telefon Samsung F250 za 1 zł. odpowiedź dotyczy aktualnej promocji w wybranej sieci
user: ten samsung to dobry? odbiegnięcie od tematu - pytanie o telefon
fonik: Telefon Samsung jest dostępny u następujących operatorów: Era, Plus, Orange, Play. Który wybór Cię interesuje? odpowiedź jest zbyt ogólna
user: np play
fonik: Aktualnie dostępna promocja w siecie Play to "Słoneczna promocja" 25 zł za abonament, 3 osoby za darmo i do wyboru Nokia 6120 lub Samsung F330 tylko za 1 zł. widać że bot odpowiada o promocji w sieci Play choć pytanie było o telefon Samsung w tej sieci
user: cienki jesteś wyrwane z kontekstu
fonik: Jestem botem informacyjnym dotyczącym wyboru operatora sieci komórkowej. bot reaguje standardową odpowiedzią
user: ok narazie pożegnanie
fonik: Do widzenia.
Druga rozmowa
user: siema powitanie
fonik: Witaj, Czego chcesz sie dowiedziec ?
user: doradz mi w wyborze operatora komórkowego pytanie dotyczące informacji jakiej udziela bot
fonik: Dostarczam informacji na temat następujących operatorów sieci kómórkowej: Era, Plus, Orange, Play. Czy jesteś zainteresowany wyborem któregoś z wymienionych operatorów? sensowna wypowiedź kontynuująca dialog
user: jakie promicje posiada plus pytanie o konkretną sieć
fonik: W sieci Plus dostępne są następujące promocje: Cafe Plus - wyjątkowa oferta dla kobiet, "przenieś się do Plusa", "tani abonament", wyprzedaż Kubali w Plusie, promocja dla osób niewidomych i niedowidzących, najlepsza Okazja w MixPlusie, wmixuj się w telefon z Twoim numerem z Simplusa. Która promocja Ciebie interesuje? - interesuje mnie wyprzedaż kubali reakcja na słowo plus
user: interesuje mnie wyprzedaż kubali
fonik: Wyprzedaż Kubali to niepowtarzalna okazja kupienia jednego z ponad 30 modeli telefonów w bardzo atrakcyjnej cenie. reakcja na słowo wyprzedaż kubali
user: jakich telefonów?
fonik: Dostarczam informacji na temat następujących operatorów sieci kómórkowej: Era, Plus, Orange, Play. Czy jesteś zainteresowany wyborem któregoś z wymienionych operatorów? tutaj bot nie posiadał dostatecznej wiedzy na temat konkretnych modeli telefonów więc wyświetlił informację startową
user: play
fonik: W sieci Play dostępne są następujące promocje: "Słoneczna promocja", "Playowy wyścig zbrojeń", "Nowy Playfon". Która promocja Ciebie interesuje? reakcja na słowo play
user: słoneczna promocja
fonik: W ofercie Play Słoneczna promocja otrzymujesz 50% rabatu na Ofertę Nowy Play Abonament 50 oraz Nowy Play Abonament 65 przez pełne trzy miesiące. Darmowe rozmowy z trzema wybranymi numerami w sieci Play lub numerami stacjonarnymi - w promocji 3 osoby za darmo. Koszt SMS-a do każdego z wybranych numerów w sieci Play będzie wynosić jedynie 3 grosze. Promocja obowiązuje przez pełne 6 miesięcy, a w Ofercie Nowy Play Abonament 30 przez 3 miesiące.
user: dzięki :)
fonik: Do widzenia. pożegnanie
user: Cześć dwuznaczność słowa cześć powoduje wybór
fonik: Witaj, Czego chcesz sie dowiedziec ? odpowiedzi powitalnej

Wnioski

Chatterboty stanowią obecnie jeden z najbardziej rozwijających się aspektów dziedziny sztucznej inteligencji. Tworzone są w celu konwersacji z ludźmi najczęściej jako systemy doradcze lub informacyjne. Zajmowanie się ich realizacją i doskonaleniem to naturalna potrzeba ludzkości w łatwiejszym i szybszym zdobywaniu wiedzy i informacji. Bardzo dobrym środowiskiem dla chatterbotów jest Internet który stanowi ogromne źródło informacji dostępnej dla każdego użytkownika. Idealnym botem byłby system udzielający odpowiedzi na każde zadane pytanie, jednak na obecnym etapie wiedzy o sztucznej inteligencji jest to jedynie marzenie. Problem stanowi ogrom informacji jaką musiałby posiadać taki system w swojej bazie danych oraz system ich powiązań. Nie jest możliwe wiedzieć wszystkiego nawet dla człowieka, toteż zakres wiedzy botów ogranicza się do wybranej wąskiej dziedziny. W przedstawionym tutaj projekcie zadaniem bota jest informowanie oraz pomoc w wyborze operatorów sieci komórkowych na podstawie wybranych ofert. Zakres jego możliwości jest ograniczony wiedzą zawartą w jego bazie i tylko od projektanta zależy jak duża jest to wiedza i w jaki sposób jest ona prezentowana. Chatterboty w zasadzie to automaty odpowiadające w umiejętny sposób na pytania użytkownika. Ich zaletą jest to, że mogą rozmawiać w "ludzki" sposób na zadany temat, bez zmęczenia z dowolną ilością użytkowników. Ich wadą natomiast jest automatyczny charakter wypowiedzi oraz ograniczony zakres wiedzy zależny od ilości danych w bazie. Taką bazę można w dowolnym zakresie powiększać co sprawia, że bot "wie" coraz więcej. Mimo to daleko jeszcze do ludzkiego charakteru takiego bota, gdyż trudno tutaj mówić o inteligencji w takim sensie jaką posiada człowiek. Mimo że obecne chatterboty to systemy działające automatycznie to ich rozwój coraz bardziej przybliża nas do inteligencji naturalnej - tej którą posiada człowiek.

Linki

Strony dotyczące zagadnień sztucznej inteligencji:

Strony z danymi do projektu:

Valid HTML 4.01 Transitional Poprawny CSS!