Politycznie (nie)poprawny Chatterbot


15.VI.2007 , Politechnika Wrocławska

Przedmiot: Metody i algorytmy sztucznej inteligencji
Prowadzący: dr inż. Witold Paluszyński
Autor : Adam Mucha (ARS)

1. Wstęp.


Od dziesięcioleci ludzie próbują stworzyć chatbota, czyli program komputerowy, który potrafi konwersować z ludźmi na jakiś konkretny lub dowolny temat. Samo stworzenie Chatbota zadaniem trudnym nie jest, ale wyposażenie go w mechanizmy dzieki którym potrafiłby on konwersować na poziomie człowieka kryje problem o wiele bardziej złożony. Taki Chatbot musi przestrzegać zarówno reguł semantycznych jak i generować odpowiedzi spójne pod względem logicznym. Chatboty korzystają z własnych baz danych, ale również mają możliwość zapamiętywania czy wyszukiwania informacji ze zewnętrznych źródeł.

Za pierwszego chatbota uznawana jest Eliza, sztuczny psychoterapeuta. Stworzył ją w 1966 roku Joseph Weizenbaum w Massachussetts Institute of Technology - była próbą realizacji projektu CMC (Computer Mediated Communications).

Obecnie najbardziej chyba znanym wirtualnym rozmówcą jest ALICE, stworzona przez Richarda Wallace'a w roku 1995. ALICE jest projektem typu opensource, tworzonym na opracowanym do tego celu przez zespół ludzi języku znaczników AIML (Artificial Intelligence Mark-up Language). Projekt ten jest ciągle rozwijany przez fascynatów z całego świata. Wielokrotnie ALICE zdobywała nagrodę Loebnera, czyli nagrodę ufundowana przez Hugha Loebnera w 1990 roku, dla programisty, który zdoła napisać program, który skutecznie przejdzie Test Turinga ( wysokość nagrody to 100 000 USD oraz pamiątkowy medal ze szczerego złota).

2. Opis projektu.


Celem projektu było stworzenie chatbota, który będzie mógł prowadzić konwersację na tematy polityczne.

Sercem mojego ( i w zasadzie każdego ) chatbota jest baza wiedzy, definiująca zachowania i reakcje programu na działania użytkownika. To właśnie baza wiedzy stanowi o sukcesie lub porażce każdego tego typu programu. Innym istotnym elementem pogramu jest inerpreter AIML, pozwalający na przesyłanie zapytań do bazy wiedzy oraz interpretowanie pochodzących z niej odpowiedzi.

Poniżej przedstawiam schemat blokowy mojego programu :

3. Sposób realizacji.


Użytkownik komunikuje się z programem poprzez stworzony we flashu interfejs, wyposażony w dwa okna : jedno z nich służy to wpisywania zdań/pytań, a na drugim pojawiają się komunikaty będące reakcją programu na aktywność użytkownika. Zapytania użytkownika przekazywane są do interpretera AIML, który następnie komunikuje się z bazą wiedzy i otrzymaną z niej odpowiedź przesyła ponownie do apletu flasha, który to aplet przedstawia ją użytkownikowi.

4. AIML


Jak już wspomniałem sercem chatbota jest baza wiedzy stworzona w jęzku AIML (Artificial Intelligence Markup Language), przypominający swoją konstrukcją XML'a. Warto przyjrzeć się w jaki sposób działa AIML. Oczywiście po zrozumieniu tego języka dojść można do wniosku, że chatboty raczej symulują SI, niż są nią, jednakże te najlepsze robią to w sposób wyjątkowo wyrafinowany.

Tutaj znajduje się link do pdf'a doskonale obrazującego sposób działania i zasady budowy bazy wiedzy AIML.

5. Przykładowe rozmowy

Ja : Witaj
Chatbot : Witaj, o czym chcesz porozmawiac ?
Ja : porozmawiajmy o polityce
Chatbot : Polityka to dazenie do udzialu we wladzy lub do wywierania wplywu na podzial wladzy, czy to między panstwami, czy tez w obrebie panstwa, miedzy grupami ludzi, jakie to panstwo tworza.
Ja : No wlasnie panstwo, w polsce panstwo tworza ludzie tacy jak Kaczynski niestety
Chatbot : Mysle, ze nasz premier za bardzo szuka guza, zwlaszcza na arenie miedzynarodowej, to sie moze na nas zemscic w przyszlosci.
Ja : Masz na mysli cala ta awanture o pierwiastek ?
Chatbot : Nie warto umierac za pierwiastek, ale warto cos za niego dostac
Ja : Mam nadzieje ze nas nie wyrzuca :D, ale gdyby wiedzieli kogo sobie biora to bysmy dostali 20 letni zakaz negocjacji :D
Chatbot : No wlasnie zwlaszcza ze sejm tez jest za tym.
Ja : Mysle ze to koniec rozmowy na dzisiaj wystarczy.
Chatbot : Do widzenia.


Ja : Czesc
Chatbot : Witaj
Ja : Kaczynski mnie dobija,
Chatbot : Nigdy ich nie rozroznialem, prezydent czy premier ?
Ja : Prezydent
Chatbot : Nasz prezydent to profesor specjalny, nie jestem zwolennikiem jego polityki, ale narod wybral, narod cierpi.
Ja : Lepper tez nie mnie dobija.
Chatbot : Kazik kiedys spiewal taka piosenke... (wulg) .. niestety nie nadaje sie do cytowania w tak kulturalnym gronie.
Ja : Giertych tez jest fajny.
Chatbot : Gdyby nie Roman, to Lepper bylby tym najgorszym z muszkieterow.
Ja : Cala ta koalicja sie nadaje...
Chatbot : Umowmy sie, ten swoisty triumwirat nie przyniesie nam szczescia.
Ja : Biedna ta nasza Polska.
Chatbot : Hm, na szczescie rzady braci K. nie moga zaszkodzic naszej gospodarce, bo ta jest na tyle stabilna, ze niejako funkcjonuje poza polityka
Ja : Czy ty mnie w ogole sluchasz ?
Chatbot : Tak powiedziales : biedna ta nasza Polska, a o co chodzi ?
Ja : Do widzenia
Chatbot : Zegnaj.

6. Badania


Oprócz przykładowych rozmów przeprowadziłem również swojego rodzaju badania, nad tym czy i jak szybko ludzie rozpoznają, że rozmawiają z maszyną.
Eksperyment polegał na zaproszeniu na określoną stronę internetową danej osoby w celu sprawdzenia czy działa mi projekt zaliczeniowy, którym miał być Czat. Osoby poddane badaniu nie otrzymywały informacji o tym, że będą dyskutować z maszyną. Okazało się, że na 15 osób, które wzięły udział w teście, tylko 2 stwierdziły, że chyba rozmawiały z maszyną. Inna sprawa, że kolejnych 9 stwierdziło, że koło 6 zdania rozmowa traciła sens. Za to 4 osoby powiedziały, że projekt mi działa, ponieważ przeprowadziły z kimś konwersację ( tylko o polityce ) i wszystko wyglądało "OK".

7. Wnioski


Podczas pracy nad tym projektem dowiedziałem się przede wszystkim dwóch rzeczy. Sprawą podstawową jest odpowiednie zbudowanie bazy wiedzy. Im więcej sytuacji (zapytań / zdań) jesteśmy w stanie przewidzieć tym lepsze rozmowy prowadził będzie Chatbot. Jest to zadanie niezwykle pracochłonne. Nie wystarczy jednak sama treść, równie istotnym elementem budowy bazy wiedzy jest odpowiednia sieć powiązań i relacji spajających tą treść w logiczną całość. Uważam, że do tego potrzebne jest wielopłaszczyznowe rozpatrywanie problemu : musimy spojrzeć na to zarówno od strony psychologicznej, lingwistycznej jak i kontekstowej. Drugim wnioskiem płynącym z pracy nad tym projektem jest sama złożoność zagadnienia sztucznej inteligencji. Stworzenie robota, który potrafiłby się nie tylko komunikować, ale także uczyć, rozumieć tekst mimo błędów, czytać "między wierszami" jest zadaniem tyleż pasjonującym co chyba jednak jeszcze dosyć odległym.
Mimo to coraz częściej wykorzystuje się tego typu programy, choćby w połączeniu z systemami ekspertowymi. W przyszłości będą one prawdopodobnie rzeczą równie naturalną jak obecnie np. samochody.

8. Materiały


Artykuł "Tworzymy własnego bota"; http://www.fizyka.umk.pl/~duch/Wyklady/
AIML; http://www.pandorabots.com/pandora/pics/wallaceaimltutorial.htm
AIML; http://docs.jedenpies.pl/files/AIML.pdf
AIML; http://pyaiml.sourceforge.net
AIML; http://www.aiml.info
Strona projektu ALICE; www.alicebot.org
Strona projektu Jabberwacky; http://www.jabberwacky.com/