Zadaniem programu konwersacyjnego (czyli chatbota, czatbota lub chatterbota)
jest prowadzenie konwersacji przy użyciu języka naturalnego (takiego jak
polski czy angielski), najlepiej stwarzając przy tym wrażenie, że rozmówca
jest normalnym człowiekiem. Pierwsze czatboty były systemami regułowymi,
obecnie (nie rezygnując z podejścia regułowego) próbuje się je wzbogacić o
narzędzie z dziedziny Wyszukiwania informacji, text miningu, uczenia
maszynowego, czy też przetwarzania tekstów za pomocą sieci neuronowych.
Dziedzina jest potencjalnie atrakcyjna dla wielu firm komputerowych,
przykładowo Amazon przeznaczył ponad 3.5 mln dolarów na nagrody dla
najlepszych programów konwersacyjnych w organizowanych przez siebie zawodach
Alexa Prize.
Niniejszy przedmiot stawia sobie za cel zapoznanie z metodami konstruowania
programów konwersujących i danie uczestnikom narzędzi do tworzenia własnego
bota. Istotne będzie dla nas zrozumienie mechanizmów w stopniu umożliwiającym
ich praktyczne wykorzystanie, godząc się niekiedy, że pełny ich kontekst
pozostawiony zostanie dla tych, którzy będą chcieli uczęszczać na bardziej
zaawansowane wykłady poświęcone tej tematyce (Text Mining, Przetwarzanie
języka naturalnego, Sieci neuronowe i deep learning, ...)
Znaczna część realizowanych na przedmiocie zadań będzie wykorzystana w
(potencjalnie) wieloletnim projekcie tworzenia bota, który byłby wizytówką
naszego Instytutu (i potrafił zachęcać do studiowania u nas, doradzać
studentom, a ponadto miał "osobowość" sprawiającą, że rozmowa z nim jest
przyjemna).
W semestrze odbędzie się:
10 godzin wykładów
6 godzin spotkań seminaryjnych (w terminie wykładu, na których chętni
uczestnicy będą przedstawiali pewne niezbyt skomplikowane, dodatkowe
zagadnienia)
6 godzin ćwiczeń, na których między innymi będziemy zajmować się formalizmem
opisującym część regułową bota
4 godziny pracowni, na których będą wykonywane proste zadania wprowadzające
reszta zajęć pomocniczych będzie przeznaczona na projekt
Przedmiot przeznaczony jest dla studentów studiów pierwszego stopnia, którzy
mają pewną wprawę w programowaniu. Mile widziana znajomość Pythona, lub chęć
opanowania go w czasie zajęć.