systemy_dialogowe/notebooks/02-analiza-wymagan.ipynb

121 lines
6.1 KiB
Plaintext
Raw Normal View History

2023-03-16 17:27:16 +01:00
{
"cells": [
{
"cell_type": "markdown",
"id": "136728fe",
"metadata": {},
"source": [
"Analiza Wymagań\n",
"===============\n",
"\n",
"Projektowanie systemów dialogowych\n",
"----------------------------------\n",
"\n",
"Projektowanie systemu dialogowego jest procesem [zorientowanym na użytkownika](https://en.wikipedia.org/wiki/User-centered_design) <cite>(por. Jurafsky and Martin, 2020; Gould and Lewis, 1985)</cite>, który wymaga:\n",
"\n",
" 1. Analizy tego kim jest docelowy użytkownik systemu i na czym polegają zadania (cele), które chce on zrealizować.\n",
"\n",
" 2. Budowy symulatorów i prototypów.\n",
"\n",
" 3. Przyrostowego rozwoju i testowania z udziałem użytkowników.\n",
"\n",
"Punktami 2 i 3 zajmiemy się na kolejnych zajęciach. Tematem dzisiejszych zajęć jest punkt 1.\n",
"\n",
"Zadania\n",
"-------\n",
" 1. Wybrać temat projektu.\n",
"\n",
" 2. Zidentyfikować podstawowe zadania (cele), które użytkownik chce zrealizować korzystając z systemu.\n",
"\n",
" 3. Dla każdego zidentyfikowanego zadania napisać przykładowy dialog, w toku którego system zrealizuje cel użytkownika.\n",
"\n",
" 4. Dialogi zapisać w dokumencie `requirements-analysis.md` i umieścić w katalogu głównym gałęzi\n",
" `master` repozytorium projektowego. Dokument proszę przygotować korzystając z\n",
" [szablonu](requirements-analysis.md).\n",
"\n",
"Tematy projektów\n",
"----------------\n",
"\n",
"### Umawianie wizyt u lekarza\n",
"\n",
"Celem projektu jest zbudowanie agenta dialogowego, który ma za zadanie umówić rozmówcę do lekarza pierwszego kontaktu, chyba że system uzna że konieczna jest wizyta u specjalisty.\n",
"Sytuacja komunikacyjna przypomina obsługę pacjenta dzwoniącego do przychodni i chcącego umówić się na wizytę. Podczas rozmowy system ma za zadanie rozpoznać potrzebę dzwoniącego, w szczególności:\n",
"\n",
" - Czy chce umówić się do lekarza pierwszego kontaktu, czy do specjalisty?\n",
"\n",
" - Czy pacjent jest pewny do jakiego specjalisty system powinien zadać pytania kontrolne dotyczące stanu zdrowia, aby system mógł wybrać odpowiedniego specjalistę\n",
"\n",
" - Czy objawy wskazują na bardzo pilną potrzebę umówienia wizyty?\n",
"\n",
"### Zamawianie produktów w sklepie\n",
"\n",
"Celem projektu jest zbudowanie agenta dialogowego, który pozwoli (np. jadąc samochodem) zrobić zakupy w sklepie spożywczym/wielobranżowym.\n",
"System pozwala na wybranie produktów z listy, bądź takich wskazanych przez rozmówcę (np. na pytanie „Jakie sery pleśniowe masz w ofercie?” system wylicza produkty, bądź prosi o sprecyzowanie oczekiwań, gdy lista jest za duża).\n",
"Podczas rozmowy system ma za zadanie rozpoznać potrzebę dzwoniącego, w szczególności:\n",
"\n",
" - Jeżeli danego produktu nie ma w ofercie, to proponuje inny z tej samej kategorii.\n",
"\n",
" - System stara się zachęcić klienta do zakupów przez komunikaty z propozycją zniżek (np. „Jeżeli jesteś wegetarianinem, mamy dzisiaj rabaty na produkty wegetariańskie”). Komunikaty te powinny pojawiać się na różnych etapach dialogu (na początku/w trakcie/pod koniec).\n",
"\n",
"Na koniec zakupów system pyta się o numer karty rabatowej i „ufa” rozmówcy, gdy w danym momencie nie może tego numeru karty rabatowej sprawdzić.\n",
"\n",
"### Przyjmowania zamówień w restauracji\n",
"\n",
"Celem projektu jest zbudowanie agenta dialogowego przyjmującego zamówienia w restauracji.\n",
"System powinien rekomendować pozycje z menu na podstawie preferencji klienta oraz udzielać podstawowych informacji dotyczących zamówionego posiłków.\n",
"Agent powinien wykazywać elastyczność, adaptując się do potrzeb klienta, np. umożliwiać pominięcie lub dodanie pewnych składników do posiłku.\n",
"\n",
"### Rezerwacja pokoi hotelowych\n",
"Celem projektu jest zbudowanie agenta dialogowego pozwalającego rezerwować pokoje hotelowe (w wielu hotelach jednocześnie).\n",
"Oprócz podstawowych danych takich jak termin czy liczba osób system powinien również uwzględniać inne oczekiwania klienta (darmowe wifi, odległość od centrum miasta, przedział cenowy, liczbę gwiazdek itp.), proponując odpowiednie obiekty.\n",
"Agent powinien również umożliwiać odwołanie rezerwacji oraz zmianę jej parametrów."
]
},
{
"cell_type": "markdown",
"id": "a26eda52",
"metadata": {},
"source": [
"Metody pozyskiwania danych do budowy systemów dialogowych\n",
"---------------------------------------------------------\n",
" 1. Eksperymenty typu Czarnoksiężnik z Oz (temat naszych następnych zajęć).\n",
"\n",
" 2. Zapisy rozmów z operatorami infolinii (RODO!).\n",
"\n",
" 3. Dokumenty typu FAQ.\n",
"\n",
" 3. Dialogi z innych, zbliżonych dziedzin.\n",
"\n",
" 4. Dane dialogowe ogólnego przeznaczenia:\n",
"\n",
" - napisy filmowe: [OpenSubtitles](https://opus.nlpl.eu/OpenSubtitles-v2018.php)\n",
"\n",
" - logi z IRCa: [Ubuntu Dialogue Corpus](https://github.com/rkadlec/ubuntu-ranking-dataset-creator)\n",
"\n",
" - dyskusje na twitterze.\n",
"\n",
"Literatura\n",
"----------\n",
" 1. Dan Jurafsky and James H. Martin, *Speech and Language Processing*, 3rd ed. draft,\n",
"\tch. 15, Chatbots and Dialogue Systems,\n",
" https://web.stanford.edu/~jurafsky/slp3/15.pdf,\n",
" data dostępu: 10 marca 2023.\n",
"\n",
" 2. Gould, J. D. and Lewis, C. (1985). Designing for usability:\n",
" Key principles and what designers think. CACM 28(3), 300311.\n",
" http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.84.8860&rep=rep1&type=pdf,\n",
" data dostępu: 10 marca 2023."
]
}
],
"metadata": {
"jupytext": {
"cell_metadata_filter": "-all",
"main_language": "python",
"notebook_metadata_filter": "-all"
}
},
"nbformat": 4,
"nbformat_minor": 5
}