systemy_dialogowe/notebooks/01-rodzaje-systemow-dialogowych.ipynb
2023-03-16 17:27:16 +01:00

126 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "b2f59df0",
"metadata": {},
"source": [
"Rodzaje systemów dialogowych\n",
"============================\n",
"\n",
"Wprowadzenie\n",
"------------\n",
"\n",
"Systemy dialogowe można zgrubnie podzielić na dwie kategorie <cite>(Jurafsky and Martin, 2020)</cite>:\n",
"\n",
" 1. chatboty,\n",
"\n",
" 2. systemy ukierunkowane na wykonywanie zadań (ang. task-oriented dialogue agents).\n",
"\n",
"### Chatboty\n",
"Przeznaczeniem chatbota\n",
"jest prowadzenie swobodnej dyskusji z użytkownikiem na dowolny (nienarzucony z góry) temat.\n",
"Konwersacja z chatbotem nie służy wypełnieniu żadnego z góry określonego zadania.\n",
"\n",
"Klasycznym przykładem chatbota jest [ELIZA](https://en.wikipedia.org/wiki/ELIZA) <cite>(Weizenbaum, 1966)</cite>.\n",
"Program ten,\n",
"udając psychoanalityka, miał zademonstrować potencjał tkwiący w komunikacji człowieka z komputerem w\n",
"języku naturalnym. Jego pythonową implementację znajdziemy w pakiecie [nltk](www.nltk.org)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e2301a9e",
"metadata": {},
"outputs": [],
"source": [
"from nltk.chat import eliza\n",
"eliza.demo()"
]
},
{
"cell_type": "markdown",
"id": "ae7a5568",
"metadata": {},
"source": [
"ELIZA składa się ze zbioru wzorców, które są dopasowywane do wypowiedzi użytkownika.\n",
"Z każdym wzorcem jest powiązany zestaw szablonów, które są wykorzystywane do przygotowania\n",
"odpowiedzi dla użytkownika."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "05c53336",
"metadata": {},
"outputs": [],
"source": [
"eliza.pairs[:3]"
]
},
{
"cell_type": "markdown",
"id": "f3622915",
"metadata": {},
"source": [
"### Systemy dialogowe ukierunkowane na wykonywanie zadań\n",
"Systemy ukierunkowane na wykonywanie zadań będą stanowić główny temat tego przedmiotu.\n",
"Dla uproszenia będziemy je nazywać *agentami dialogowymi*.\n",
"\n",
"Pierwotnie agenty dialogowe były ukierunkowywane na jedno, ściśle określone zadanie.\n",
"Systemem tego typu był GUS <cite>(Bobrow, 1977)</cite> umożliwiający planowanie podróży.\n",
"\n",
"Obecnie zarówno w praktyce badawczej jak i w zastosowaniach przemysłowych rozwijane są systemy\n",
"ukierunkowane na wykonywanie wielu zadań równocześnie, do których należą:\n",
"\n",
" 1. inteligentne asystenty osobiste (ang. *IPA*, *Intelligent Personal Assistant*), np.\n",
"\n",
" - [Alexa](https://developer.amazon.com/en-US/alexa),\n",
" - [Bixby](https://www.samsung.com/us/apps/bixby/),\n",
" - [Google Assistant](https://assistant.google.com/),\n",
" - [Siri](https://www.apple.com/siri/),\n",
"\n",
" które realizują spersonalizowane cele użytkownika (wyszukiwanie kontaktów w książce adresowej, zarządzanie kalendarzem, zakup produktów).\n",
"\n",
" 2. modele językowe dostosowane do wykonywania poleceń, np.\n",
"\n",
" - [ChatGPT](https://openai.com/blog/chatgpt/),\n",
" - [InstructGPT](https://openai.com/blog/instruction-following/),\n",
" - [FLAN-T5](https://arxiv.org/pdf/2210.11416.pdf),\n",
"\n",
" które realizują zadania niewymagające pełnej personalizacji.\n",
"\n",
"Zadanie\n",
"-------\n",
"Zaimplementować program typu ELIZA prowadzący konwersację w języku polskim.\n",
"Kod źródłowy umieścić w gałęzi `chatbot` repozytorium projektowego.\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. J. Weizenbaum, ELIZA - A Computer Program For the Study of Natural Language Communication\n",
" Between Man And Machine Communications of the ACM, Vol 9, No 1, January 1966,\n",
" https://cse.buffalo.edu/~rapaport/572/S02/weizenbaum.eliza.1966.pdf\n",
" data dostępu: 10 marca 2023.\n",
"\n",
" 3. Bobrow, D. G., Kaplan, R. M., Kay, M., Norman, D. A., Thompson, H., and Winograd, T. (1977).\n",
" GUS, A frame driven dialog system. Artificial Intelligence 8, 155173."
]
}
],
"metadata": {
"jupytext": {
"cell_metadata_filter": "-all",
"main_language": "python",
"notebook_metadata_filter": "-all"
}
},
"nbformat": 4,
"nbformat_minor": 5
}