Celem projektu jest utworzenie bota konwersacyjnego, który mógłby rozmawiać na
tematy związane ze studiami informatycznymi w naszym Instytucie. Bot (w
założeniu) będzie dość złożonym systemem, który łączy tradycyjne podejście
oparte na wzorcach z różnymi zagadnieniami związanymi z przetwarzaniem
tekstów, sieciami neuronowymi, ekstrakcją informacji, modelowaniem języka,
etc.
Ale nie należy się bać: niektóre trudne zadania będziemy realizować w łatwych
wersjach, koncentrując się na praktycznym wykorzystaniu pewnych technologii,
pomijając (lub redukując) ich podstawy teoretyczne.
Przedmiot będzie miał 3 etapy.
Pierwszym etapem będzie zapoznanie się z różnymi sposobami definiowania
zachowania botów i zdefiniowanie własnego języka, który umożliwia maksymalnie
wygodne wprowadzanie pewnych wzorców zachowań. Po ustaleniu formalizmu każdy
uczestnik projektu będzie (w pewnym stopniu) współtworzył (wspólną) bazę reguł
naszego bota.
Drugim etapem będzie tworzenie modułów bota, realizowanych w zespołach lub
pojedynczo. Przewidywane są następujące moduły (lista ta może być
modyfikowana, w obie strony):
* Moduł tłumaczący kody istniejących botów dla języka angielskiego (np. Alice), być może korzystający z Google translate.
* Moduł dopasowania pytania do wzorca (uwględniający synonimy i wyrazy biskoznaczne)
Moduł wyboru wariantu odpowiedzi (gdy jest ich więcej, a różnią się na
przykład formą gramatyczną)
* Moduł generowania wypowiedzi "pseudogłębokich", bazujący na kolekcji cytatów (której częścią jest polskie Wikiquote) -- jak łatwo się domyśleć, ten moduł będzie uruchamiany w sytuacji, gdy bot nie bardzo wie, co ma dalej robić. Ale oczywiście te wypowiedzi powinny być związane z dotychczasową historią konwersacji
* Moduł odpowiadania na pytania, bazujący na Wikipedii (ewentualnie na DBPedii)
* Moduł odpowiadający na pytania związane z opisami przedmiotów
* Moduł prostych odpowiedzi na proste pytania (Ile punktów ECTS muszę zdobyć, żeby zostać przyjęty na drugi semestr?)
* Moduł doradcy toku studiów (który może korzystać z innych modułów)
* Moduł doradcy rekrutacji
* Moduł dyspozytora ruchu, który klasyfikuje wypowiedź użytkownika i przekazuje ją do odpowiedniego modułu. Moduł ten zarządza również stanem rozmowy.
* Moduł wyszukujący odpowiedzi w Internecie, przez parsowanie wybranych stron (na przykład meteo.pl, strony UWr, strony II, wybranych stron wrocławskich, itd)
* Neuronowy moduł dialogowy
* Interfejs WWW dla bota (ew. integracja z Facebookiem, lub innym środowiskiem, w którym bot będzie "żył")
Jeżeli zajdzie potrzeba, niektóre moduły być może zostaną (w jakiejś
podstawowej wersji) przygotowane przez prowadzącego przedmiot. Niektóre moduły
mogą być realizowane przez więcej niż 1 zespół.
Ostatni etap to tworzenie ostatecznego bota. Powinny powstać (co najmniej)
dwie "drużyny", które do swojego projektu będą mogły wykorzystać dowolny
podzbiór utworzonych w drugim etapie modułów.