Chatterbot rozmawiający o reżyserach filmowych.
Raport został przygotowany jako wymaganie kursu : Metody i algorytmy sztucznej inteligencji.
Autor: Dorota Szwarc 133170
16 czerwca 2008r.
Chatterbot talking about movies directors.
This report has been prepared as a requirement for the course: Methods and algorithms of artificial intelligence.
Author: Dorota Szwarc 133170
16th of June 2008
Abstract
My project is a chatterbot. It should give informations about some most famous movies directors, their career in cinematography and their most popular movies. I used AIML to create database. My chatterbot tries to talk like a human but sometimes it can't. It understands user's questions and answers for most of them. The base of knowledge of the chatterbot may be easily widen. But there is a one problem. I must to say that people used so many words to explain one things and it is sometimes a big problem for chatterbot. I agree with sentence: "If you want build really smart chatterbot you must create huge base of knowledge!"
Wstęp i założenia projektowe.
Założeniem projektu było stworzenie bota który przeprowadzałby krótką rozmowę o tematyce filmowej a konkretniej mówiąc o reżyserach. W konsekwencji powstał chatterbot udzielający informacji o znanych reżyserach podczas krótkiej rozmowy. Zadanie okazało się być trudniejsze w wykonaniu niż mogłoby się wydawać na początku. Powodem jest bogatość słownictwa użytkowników wynikająca z rozmaitości synonimów języka polskiego.
Opis elementów języka AIML wykorzystanych w projekcie.
Istnieje kilka sposobów na podejście do programowania bota. Posłużyłam się w tym przypadku językiem opisu wiedzy AIML (Artificial Intelligence Markup Language) ponieważ zapewnia kompatybilność z innymi opartymi na projekcie - A.L.I.C.E. Skorzystałam z gotowego interpretera wiedzy umieszczonego na stronie http://pandorabots.com.
Artificial Intelligence Markup Language (ang. Język Opisu Sztucznej Inteligencji) jest odmianą języka XML. Został on wymyślony jako baza wiedzy dla chatterbota A.L.I.C.E Dzięki temu językowi możemy opisać w prosty sposób bazę wiedzy dla botów prowadzących rozmowy. Właściwie opierałam się na schemacie tego języka a mianowicie na formie pytania i odpowiedzi użytkownika i bota naprzemiennie powtarzających się. Każdy dokument AIML musi zaczynać się od znacznika <aiml> i kończyć znacznikiem </aiml> . Dokument AIML składa się z dowolnej liczby kategorii ( <category>). Każdy z nich powinien składać się z pojedynczego elementu <pattern> i <template>. Wyrażenie zawarte między znacznikami <pattern> Poniżej przedstawiam listę elementów potrzebnych do stworzenia struktury.
<category> zawiera pytanie użytkownika i odpowiedź bota
<pattern> zapytanie użytkownika
<template> odpowiedź bota
<srai> tu można zdefiniować synonimy
<random> losowanie odpowiedzi zadeklarowanych w bazie wiedzy
<that> sprawdza jedną z poprzednich wypowiedzi, generuje odpowiedzi kontynuujące
pytania użytkownika
<topic> pozwala na udzielenie odpowiedzi w zakresie bieżącego tematu poruszonego
tematu nawet jeśli bot nie rozumie pytania
Strona PandoraBots.com oferuje instrukcje pomagające przy tworzeniu bota oraz bazy wiedzy w języku AIML oraz edytowanie jej. Można również sprawdzać na bieżąco fragmenty bazy.
W teorii chatterbot powinien oprócz udzielania informacji potrafić podtrzymywać rozmowę.
Przykładowe rozmowy.
W celu zaprezentowania chatterbota przedstawiam poniżej dwie rozmowy. Mniej więcej obrazują one możliwości bota. Czasem występują błędy związane z brakiem odpowiedzi na sformułowanie pytania (nie zaprezentowałam ich). W niektórych sytuacjach następuje błędna interpretacja pytań użytkownika.
Rozmowa 1.
Użytkownik: czesc
Kinomaniak: siema, co tam?
Użytkownik: w porzasiu
Kinomaniak: to dobrze. chcesz pogadac?
Użytkownik: a o czym
Kinomaniak: pogadajmy o rezyserach filmowych
Użytkownik: dobra dawaj
Kinomaniak: Mam kilku rezyserow, ktorych moglabym polecic. Uwielbiam ogladac filmy Stevena Spielberga, Davida Lyncha, George'a Lucasa, Larsa von Triera, Francisa Forda Coppoli, no i oczywiscie Petera Jacksona. Naturalnie to nie wszyscy. Moze chcesz sie dowiedziec jakie filmy zrobili i co bym Ci mogla polecic, a wierz mi jest co. Ktorego z nich lubisz najbardziej? A moze ktoregos nie znasz?
Użytkownik: lubie Larsa von Triera
Kinomaniak: No no, widze, ze gustujesz w kinie europejskim. Ten slynny rezyser skandynawski, ktorego tworczosc odmienila oblicze kina lat 90-tych, zaczynal od amatorskich filmow, realizowanych kamera Super 8, potem na tasmie 16mm. W 1984 roku za film "Element zbrodni" Trier nagrodzony zostal na festiwalach w Cannes, Mannheim i Chicago. W 1984 roku Trier wyrezyserowal i wyprodukowal w swojej firmie prawie czterogodzinny serial telewizyjny "Krolestwo". Zyskał nim ogromny rozglos na calym swiecie. W 1995 roku, Trier wraz z Thomasem Vinterbergiem, Kristianem Levringem i Sorenem Kragh-Jacobsenem, podpisal manifest, slynną Dogmę '95, wg. ktorej podczas realizacji filmow nalezy wystrzegac sie stosowania wymyslnych dekoracji, sztucznego oswietlenia, muzyki innej niz dzwieki naturalne, czarno-białej tasmy, trickow filmowych, elementow kinowej sensacji, zdjecia zas powinny byc rejestrowane kamera "z ręki". Kolejny film von Triera, "Przelamujac fale" (1996), powstal zgodnie z powyzszymi "slubami czystosci". Efekt byl piorunujacy - najlepszy obraz na festiwalach w Cannes, Berlinie i Sarajewie, zas odtworczyni glownej roli, Emili Watson, przypadla nominacja do Oscara. Niemal wszystkie filmy von Triera wzbudzaly zarowno ogromne kontrowersje, jak i zachwyty. W 2000 roku jego niekonwencjonalny musical "Tanczac w ciemnosciach" (z Bjork w roli glownej) zdobyl glowna nagrode w Cannes.
Użytkownik: az chce sie teraz isc do kina
Kinomaniak: oj, chyba sie skusze na jakis seans
Użytkownik: powodzenia
Kinomaniak: to w droge
Użytkownik: do nastepnego
Kinomaniak: narka
Rozmowa 2
Użytkownik: siema
Kinomaniak: hej, wporzo?
Użytkownik: jest ok
Kinomaniak: to dobrze. chcesz pogadac?
Użytkownik: tak
Kinomaniak: pogadajmy o rezyserach filmowych. polecisz mi kogos
Kinomaniak: Mam kilku rezyserow, ktorych moglabym polecic. Uwielbiam ogladac filmy Stevena Spielberga, Davida Lyncha, George'a Lucasa, Larsa von Triera, Francisa Forda Coppoli, no i oczywiscie Petera Jacksona. Naturalnie to nie wszyscy. Moze chcesz sie dowiedziec jakie filmy zrobili i co bym Ci mogla polecic, a wierz mi jest co. Ktorego z nich lubisz najbardziej? A moze ktoregos nie znasz?
Użytkownik: co Stevena Spielberga mi polecisz
Kinomaniak: Dobry wybor, to jeden z najwybitniejszych rezyserow naszych czasow. Najpiekniejsze dla mnie jest to, ze nie uczyl sie on rezyserii w zadnej szkole.To samouk. Jego debiutancki film zrobil w wieku 16 lat i byl to "Firelight" wyswietlany przez jeden wieczor w jego rodzinnym miescie. Spielberg czasem wraca do swoich dzieciecych marzen i tworzy nowy, fantastyczny swiat jak np. "Jurassic Park". Bez wahania polecam jego kultowe "Szczeki", dla marzycieli "E.T." (z Drew Barrymore) a dla glodnych emocji przygody Indiany Jonesa.
Użytkownik: mam chetke na film
Kinomaniak: graja jeszcze najnowsza, czwarta czesc Indiany Jonesa, wiec trzeba ja zobaczyc
Użytkownik: zgadzam sie
Kinomaniak: milo sie z Toba rozmawialo // zbyt wczesne zakonczenie rozmowy w nieodpowiedni sposob
Użytkownik: ide juz
Kinomaniak: No czesc.
Wnioski
Dzięki informacjom od znajomych, którzy testowali bota, mogłam poprawić niektóre fragmenty programu. Napisanie chatterbota inteligentnie odpowiadającego na każde pytanie użytkownika jest nie lada zadaniem. Bot musi mieć potężną bazę wiedzy żeby poprawnie prowadzić rozmowę. Każdy człowiek, pytając o to samo może użyć wielu synonimów. Bot nie zawsze rozpoznaje je. Bot dobrze sobie radzi kiedy to ja zadaję mu pytania (pomagam mu w odpowiedziach) natomiast w innych przypadkach nie jest już tak prosto.
Materiały
http://home.agh.edu.pl/~luszpaj/index.php?id=8 - opis języka AIML
http://docs.jedenpies.pl/files/AIML.pdf - opis języka AIML
http://www.gaito.de/content/produkte/ - program do tworzenia chatterbota
http://alicebot.org/ - strona projektu ALICE
http://www.filmweb.pl/ - informacje o reżyserach zawarte w bazie