Chatterbot anime

09.06.2008

Metody i Algorytmy Sztucznej Inteligencji

Sylwia Tesarska 133175

Szymon Osłoński 140382




Raport został przygotowany jako wymaganie na kurs : Metody i algorytmy sztucznej inteligencji







Chatterbot anime

09.06.2008

Methods and algorithms of artificial intelligence

Sylwia Tesarska 133175

Szymon Osłoński 140382




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




Ours project was about creating chatterbot that would give basic information an anime and if possible acted humanlike. To create database we used AIML language based on ALICE project which is simple to understand and implement. As it appeared to be not that easy as we thought. The main reason was that people make many spelling mistakes while writing. Then there is also many ways to say something and it is hard to predict how a person would say it. And there is always a human factor that is unpredictable even for another human. All this made creating a database including all of this very difficult and we manage to cower it only to some extent.






  1. Założenia projektu.


Założeniem projektu było stworzenie bota który byłby w stanie prowadzić konwersacje z użytkownikiem w zakresie anime. Zadanie początkowo wydawoło się stosunkowo proste do realizacji ze względu na ograniczony zakres słownictwa którego użytkownik mógłby użyć podczas rozmowy. Terminologia jaką posługują się fani tego typu rozrywki jest często dość specyficzna.


Drugoplanowym założeniem było nadanie botowi bardziej ludzkiego oblicza, co mogłoby pomóc w "oszukaniu" rozmówcy, poprzez dodanie pewnych elementów charakterystycznych dla mowy ludzkiej.


Pomimo faktu ograniczonego słownictwa istnieje wiele możliwości wyrażenia tego samego zdania na kilka sposobów, pomijając specyfikę pewnych wyrażeń które zaczerpnięte z języków obcych przyjeły się w mowie potocznej między fanami gatunku.






  1. Wstęp.



Podstawą funkcjonowania chatterbota są:


-baza wiedzy

-interpreter wiedzy


Baza wiedzy zostałam napisana w języku AIML co zapewnia jej kompatybilność ze wszystkimi botami opartymi na najpopularniejszym projekcie chatterbota – ALICE. Na stronie http://pandorabots.com znajduje się gotowy interpreter wiedzy do języka AIML z którego skorzystaliśmy w projekcie.








3.Język AIML. Mechanizmy działania.


Język AIML służy do opisu bazy wiedzy dla tzw. 'chatterbotów', programów prowadzących rozmowe z użytkownikiem. Jest to język oparty na schemacie 'szablon-odpowiedź', więc jest dość prosty i łatwy do zastosowania. Wykorzystuje w swojej strukturze kilka znaczników, oto one z krótkim opisem:


<category> podstawowa jednostka wiedzy, zawiera w sobbie pytanie użytkownika i odpowiedź bota

<pattern> zapytanie użytkownika

<template> odpowiedź bota

<srai> pozwala definiować synonimy dla pewnych określonych wyrażeń

<random> wybiera losowo jedną ze zdefiniowanych w bazie odpowiedzi

<that> pozwala sprawdzić jedną z poprzednich wypowiedzi, jak rówinież generować odpowiedzi będące następstwem wcześniejszych pytań użytkownika

<topic> ustawia bieżący temat rozmowy, pozwala na udzielenie odpowiedzi w zakresie poruszonego tematu nawet jeśli bot nie rozumie pytania

<condition>znacznik pozwala na zapętlenie bota; wyjściem jest udzielenie odpowiedzi dokładnie takiej jakiej oczekujemy



Na stronie PandoraBots.com znajduje się cały mechanizm tworzenia bota umożliwiający stworzenie bazy wiedzy w języku AIML, jak również jej edytowanie. PandoraBots.com oferuje również możliwość bieżącego sprawdzania jak dany kawałek bazy wiedzy działa i jak na pytania użytkownika reaguje nasz bot. W przypadku gdy w bazie nie umieściliśmy reakcji na określone pytanie to możemy bota 'douczyć' bez zaglądania do bazy, poprzez dopisanie odpowiedzi na dane pytanie.



Ideą prawie każdego chatterbota jest aby oprócz udzielania informacji na określony temat był również jak najbardziej ludzki, nie jest to jednak rzecz prosta i często 'zwykła' uprzejmość sprawia, że bot nie wie jak pdpowiedzieć.







4.Przykładowe rozmowy.



Bot posiada określone pytania na które zna odpowiedzi, jako bot udzielający informacji o anime nie jest przygotowany na pytania z zakresu upodobań czy osobistej oceny danego obrazu.


/* pytania użytkownika nie zawierają polskich znaków, chociaż bot odpowiada poprawnie. spowodowane jest to faktem że użytkownicy nie posługują sie polskimi znakami, co stwierdziliśmy podczas testowania bota



Rozmowy z botem – baza wiedzy skromna


Human: czesc

Manga: Witam, co slychac?

Human: nie najgorzej

Manga : //nie takiej odpowiedzi bot oczekiwał

Human: co znasz

Manga: To może porozmawiamy o anime //niezbyt dobrze

Human: a co znasz

Manga: Na przyklad Bleach

Human: Bleach, o czym to jest. Do widzenia.

Manga: Bleach to anime opowiadające o pewnym 15-latku obdarzonym wielką mocą duchową - dzięki niej widzi duchy. Pewnego dnia zostaje zaatakowany przez Hallow - upadłą duszę, która stała się zła po śmierci, pragnie tylko zaspokoić swój głód, zjadając inne dusze. Podczas komplikacji wynikłych z tego incydentu spotyka Rukię - Boginię Śmierci, jedną z wielu zresztą, przejmuje jej moc i sam staje się Shinigami...

Human: shinigami ?

Manga: //niespodziewane pytanie

Human: nara

Manga: //znowu bot nie wie co odpowiedzieć



Rozmowy z botem – baza wiedzy poszerzona


Human: hej

Manga: Wiatm, jak sie masz?

Human: dobrze

Manga: To może porozmawiamy o anime

Human: a co znasz

Manga: Na przyklad Hellsing

Human: Hellsing

Manga: Anime opowiadające o losach pewnej królewskiej organizacji (Hellsing). Głównym bohaterem serii jest Lord Alucard jeden z najpotężniejszych wampirów chodzących po świecie. Alucard został kiedyś uwięziony w podziemiach zamku należącego do rodziny Hellsing. Integra (obecna przywódczyni organizacji) uwolniła wampira, który poprzysiągł jej służbę.

Human: jaki to rodzaj anime

Manga: Mroczny horror.

Human: podoba ci sie

Manga: Jedno z najlepszych.

Human: wierzysz w wampiry?

Manga: Raczej tak, w końcu we wszystkim jest ziarno prawdy.

Human: a jakie jest twoje ulubione anime

Manga: Bardzo lubie Bleach.

Human: fajnie, na razie

Manga: Miło się rozmawiało.








5.Podsumowanie.



Stworzenie bota który nawet w ograniczonym zakresie tematycznym mógłby efektywnie komunikować się z ludźmi jest sprawą dość trudną. Po pierwsze sztywna baza wiedzy nie będzie się uczyć i zapamiętywać nowych sformułowań, przez co będzie popełniać te same rodzaje błędów. Ponadto język naturalny ma wiele możliwości wyrażenia tej samej myśli, co w konsekwencji uniemożliwa stworzenie bazy wiedzy która przewidziałaby reakcje na każdy taki niuans. Dużą trudność sprawia również poprawność naszych zapytań, bot nie rozumie literówek ani błędów ortograficznych, przez co takie zapytania stają się dla bota niezrozumiałe.






  1. Literatura.


http://www.pandorabots.com

http://www.alicebot.org

http://www.alicebot.org/documentation/aiml-reference.html

http://www.aiml.info

http://docs.jedenpies.pl/files/AIML.pdf