From 3bea55ecea3a8726011f249b1001a0d21cbefa99 Mon Sep 17 00:00:00 2001 From: Damian Bregier Date: Mon, 7 Jun 2021 08:59:31 +0200 Subject: [PATCH] ADD: System answers --- Przykadowe_odpowiedzi.ipynb | 517 ++++++++++++++++++++++++++++++++++++ 1 file changed, 517 insertions(+) create mode 100644 Przykadowe_odpowiedzi.ipynb diff --git a/Przykadowe_odpowiedzi.ipynb b/Przykadowe_odpowiedzi.ipynb new file mode 100644 index 0000000..4de65b1 --- /dev/null +++ b/Przykadowe_odpowiedzi.ipynb @@ -0,0 +1,517 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Dzień dobry'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#######################Hello#################################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + "\n", + " if intent == 'Hello':\n", + " r = random.randint(1, 7)\n", + "\n", + " if r == 1:\n", + " return 'Dzień dobry, witam w interaktywnej bibliotece'\n", + " elif r == 2:\n", + " return 'Witam w interaktywnej biblitece'\n", + " elif r==3:\n", + " return 'Dzień dobry, w czym mogę pomóc?'\n", + " elif r==4:\n", + " return 'Dzień dobry'\n", + " \n", + " # zosia:\n", + " elif r==5:\n", + " return 'Cześć'\n", + " elif r==6:\n", + " return 'Witamy w interaktywnej bibliotece'\n", + " else:\n", + " return 'Witam w interaktywnej bibliotece książnicy płockiej, jak mogę pomóc?'\n", + "\n", + "\n", + "nlg(['', 'Hello', '', ''])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dzień fantastyki.\n", + "W przypadku zgubienia karty fakt ten można zgłosić w głównej filii biblioteki\n" + ] + } + ], + "source": [ + "############################Inform#################################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + "\n", + " if domain == 'books' and intent == 'Inform' and slot == 'title':\n", + " if value == 0:\n", + " return f'Wybrana pozycja nie jest dostępna.'\n", + " elif value == 1:\n", + " return f'Wybrana pozycja jest dostępna.'\n", + " else:\n", + " return f'Wybrana pozycja nie jest obecnie dostępna'\n", + " \n", + " if domain == 'books' and intent == 'Inform' and slot == 'publisher':\n", + " if value == 0:\n", + " return f'Książka tego wydawcy jest dostępna'\n", + " elif value == 1:\n", + " return f'Książka tego wydawcy nie jest dostępna'\n", + " else:\n", + " return f'Nie znaleziono wydawcy o tej nazwie'\n", + " \n", + " if domain == 'books' and intent == 'Inform' and slot == 'author':\n", + " if value == 0:\n", + " return f'Książka tego autora nie jest dostępna'\n", + " elif value == 1:\n", + " return f'Książki tego autora są dostępne w bibliotece'\n", + " else:\n", + " return f'Nie znaleziono autora o tym imieniu i nazwisku'\n", + " \n", + " \n", + " if domain == 'library' and intent == 'Inform' and slot == 'status':\n", + " if value == 0:\n", + " return f'Biblioteka jest zmaknięta.'\n", + " elif value == 1:\n", + " return f'Biblioteka jest otwarta.'\n", + " else:\n", + " return f'Biblioteka jest zamknięta do odwołania'\n", + " \n", + " if domain == 'library' and intent == 'Inform' and slot == 'location':\n", + " if value == 0:\n", + " return f'Biblioteka znajduje się na ul. Targowej 10.'\n", + " else:\n", + " return f'Biblioteka znajduje się na ul. Targowej 10.'\n", + " \n", + " if domain == 'library' and intent == 'Inform' and slot == 'days':\n", + " if value == 0:\n", + " return f'Biblioteka jest otwarta od poniedziałku do piątku.'\n", + " else:\n", + " return f'Biblioteka jest otwarta w dni robocze.'\n", + " \n", + " if domain == 'library' and intent == 'Inform' and slot == 'phone number':\n", + " r = random.randint(1, 4)\n", + " if r == 1:\n", + " return '514 312 231'\n", + " elif r == 2:\n", + " return '123 987 231'\n", + " elif r==3:\n", + " return '432 112 453'\n", + " else:\n", + " return 'Telefony dostępne są na głównej stronie biblioteki'\n", + " \n", + " if domain == 'library' and intent == 'Inform' and slot == 'events':\n", + " r = random.randint(1, 4)\n", + " if r == 1:\n", + " return 'Dzień młodego czytelnika.'\n", + " elif r == 2:\n", + " return 'Dzień fantastyki.'\n", + " elif r==3:\n", + " return 'Dzień promowania czytelnictwa.'\n", + " else:\n", + " return 'Obecnie nie ma żadnych wydarzeń.'\n", + " \n", + " if domain == 'card' and intent == 'Inform' and slot == 'lost':\n", + " if value == 0:\n", + " return f'W przypadku zgubienia karty należy zgłosić ten fakt dzwoniąc pod numer 513 231 211'\n", + " else:\n", + " return f'W przypadku zgubienia karty fakt ten można zgłosić w głównej filii biblioteki'\n", + " \n", + " if domain == 'card' and intent == 'Inform' and slot == 'destroyed':\n", + " if value == 0:\n", + " return f'W przypadku zniszczenia karty bibliotecznej konieczne jest dokonanie zgłoszenia pod numerem 513 231 211'\n", + " else:\n", + " return f'Zgłoszenie zniszczenia karty bibliotecznej może zostać dokonane w filii głównej biblioteki.'\n", + " \n", + " if domain == 'library' and intent == 'Inform' and slot == 'new':\n", + " if value == 0:\n", + " return f'Żeby wyrobić kartę konieczne jest wypełnienie formularza i akceptacja regulaminu'\n", + " else:\n", + " return f'Wyrobienie karty jest możliwe przez stronę internetową albo osobiście w głównej filii biblioteki'\n", + " \n", + " \n", + "print(nlg(['library', 'Inform', 'events', '']))\n", + "print(nlg(['card', 'Inform', 'lost', '']))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 28)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m28\u001b[0m\n\u001b[1;33m elif:\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "#######################Confirm#############################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + "\n", + " if domain == 'books' and intent == 'Confirm' and slot == 'title':\n", + " if value == 0:\n", + " return f'Nie znalazłem książki o tym tytule.'\n", + " elif value == 1:\n", + " return f'Czy ta książka to {value}?'\n", + " else:\n", + " return f'Książka o tym tytule nie została znaleziona. Proszę podać więcej informacji.'\n", + " \n", + " if domain == 'books' and intent == 'Confirm' and slot == 'author':\n", + " if value == 0:\n", + " return f'Nie znalazłem książki tego autora.'\n", + " elif value == 1:\n", + " return f'Czy autor to {value}?'\n", + " else:\n", + " return f'Ksiązka tego autora nie została znaleziona. Proszę podać więcej informacji.'\n", + " \n", + " # zosia:\n", + " if domain == 'reservation' and intent == 'Confirm':\n", + " r = random.randint(1, 3)\n", + " if r==1:\n", + " return 'Książka została zarezerwowana i będzie do odbioru w następny dzień roboczy. Proszę pamiętać, że brak odbioru książki do 7 dni roboczych prowadzi do utraty rezerwacji.'\n", + " elif r==2:\n", + " return 'Możesz zarezerwować tę pozycję. Będzie czekać na Ciebie w naszej placówce przez następnych 5 dni roboczych.'\n", + " elif:\n", + " return 'Książka została wypożyczona'\n", + " \n", + " if intent == 'Confirm' and domain == '' and slot == '':\n", + " return 'Tak'\n", + " \n", + " \n", + "nlg(['books', 'Confirm', 'title', 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Książka została wypożczyona\n", + "Po spełnieniu warunków karta zostanie założona\n" + ] + } + ], + "source": [ + "#########################Affirm###############################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + "\n", + " if domain=='books' and intent == 'Affirm':\n", + " r = random.randint(1, 6)\n", + "\n", + " if r == 1:\n", + " return 'Zgadza się'\n", + " elif r == 2:\n", + " return 'Książka została wypożczyona'\n", + " elif r==3:\n", + " return 'Tak, zgadza się - książka została dodana do konta'\n", + " elif r==4:\n", + " return 'Tak, to będzie wszystko'\n", + " elif r==5:\n", + " return 'Tak, książka została wypożyczona poprawnie'\n", + " else:\n", + " return 'Tak'\n", + " \n", + " if domain=='card' and intent == 'Affirm':\n", + " r = random.randint(1, 4)\n", + "\n", + " if r == 1:\n", + " return 'Po spełnieniu warunków karta zostanie założona'\n", + " elif r == 2:\n", + " return 'Tak, to wszystko w zakresie założenia karty'\n", + " elif r==3:\n", + " return 'Tak, to będzie wszystko'\n", + " else:\n", + " return 'Tak, to wszystko'\n", + " \n", + " # zosia:\n", + " if intent=='Affirm' and domain=='create_an_account':\n", + " return 'Tak, poproszę'\n", + " \n", + " if intent=='Affirm':\n", + " r = random.randint(1, 4)\n", + " if r==1:\n", + " return 'Zgadza się'\n", + " if r==2:\n", + " return 'Tak'\n", + " \n", + "\n", + "print(nlg(['books', 'Affirm', '', '']))\n", + "print(nlg(['card', 'Affirm','','']))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Do widzenia'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#######################Bye#################################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + "\n", + " if intent == 'Bye':\n", + " r = random.randint(1, 4)\n", + "\n", + " if r == 1:\n", + " return 'Do zobaczenia'\n", + " elif r == 2:\n", + " return 'Do napisania'\n", + " elif r==3:\n", + " return 'Do widzenia'\n", + " else:\n", + " return 'Dziękuję i życzę miłej lektury'\n", + "\n", + "\n", + "nlg(['Books', 'Bye', '', ''])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Dobrze, dziękuję za rozmowę'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# zosia:\n", + "#######################Thankyou#################################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + "\n", + " if intent == 'Thankyou':\n", + " r = random.randint(1, 10)\n", + "\n", + " if r == 1:\n", + " return 'Dziękuję'\n", + " elif r == 2:\n", + " return 'Dziękuję, to wszystko'\n", + " elif r==3:\n", + " return 'Ok, dziękuję'\n", + " elif r==4:\n", + " return 'Dziękuję, to będzie wszystko'\n", + " elif r==5:\n", + " return 'Dobrze. Dziękuję za rozmowę'\n", + " elif r==6:\n", + " return 'Dziękuję za informację'\n", + " elif r==7:\n", + " return 'To by było wszystko'\n", + " elif r==8:\n", + " return 'Bardzo dziękuję za informację. Wszystko już wiem'\n", + " elif r==9:\n", + " return 'Dziękuję za pomoc'\n", + " elif r==10:\n", + " return 'Dobrze, dziękuję za rozmowę'\n", + " else:\n", + " return 'Dziękuję bardzo'\n", + "\n", + "\n", + "nlg(['', 'Thankyou', '', ''])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Chciałbym anulować rezerwację książki'" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# zosia:\n", + "#######################Request#############################\n", + "def nlg(system_act):\n", + " domain, intent, slot, value = system_act\n", + " \n", + " if intent == 'Request':\n", + "\n", + " if domain == 'card':\n", + " return 'Chciałbym założyć kartę biblioteczną'\n", + " \n", + " if domain=='card_number':\n", + " r = random.randint(1,2)\n", + " if r==1:\n", + " return 'Proszę o podanie numeru karty bibliotecznej'\n", + " elif r==2:\n", + " return 'Proszę podać numer karty bibliotecznej'\n", + " \n", + " if domain == 'new_card':\n", + " return 'Chciałbym założyć kartę biblioteczną, jak to zrobić?'\n", + " \n", + " if domain == 'signature':\n", + " return 'Proszę podać sygnaturę ksiązki'\n", + " \n", + " if domain == 'penalty_cost':\n", + " return 'Jaka jest kara za przekroczenie terminu zwrotu?'\n", + "\n", + " if domain == 'status':\n", + " r = random.randint(1,5)\n", + " if r==1:\n", + " return 'Chciałbym sprawdzić wypożyczone książki'\n", + " elif r==2:\n", + " return 'Czy czytelnia funkcjonuje podczas pandemii?'\n", + " elif r==3:\n", + " return 'Chciałbym sprawdzić czy mam jakieś książki do oddania'\n", + " elif r==4:\n", + " return 'Chciałbym sprawdzić najbliższy termin zwrotu'\n", + " elif r==5:\n", + " return 'Chciałabym sprawdzić, czy mam jakieś wypożyczone książki'\n", + "\n", + " if domain == 'books':\n", + " return f'Czy książka {slot}, znajduje się w bibliotece w formie ebooka?'\n", + "\n", + " if domain == 'book':\n", + " r = random.randint(1,5)\n", + " if r==1:\n", + " return f'Chciałabym wypożyczyć książkę {slot}'\n", + " elif r==2:\n", + " return 'Proszę podać tytuł i autora pozycji'\n", + " elif r==3:\n", + " return f'Czy posiadacie książke {slot}?'\n", + " elif r==4:\n", + " return 'Proszę podać tytuł i autora wybranej pozycji'\n", + " elif r==5:\n", + " return 'Proszę podać tytuł i autora wybranej książki'\n", + "\n", + " if domain == 'time':\n", + " r = random.randint(1,3)\n", + " if r==1:\n", + " return 'W jakich godzinach jest otwarta biblioteka?'\n", + " elif r==2:\n", + " return 'W jakich godzinach macie otwarte?'\n", + " elif r==3:\n", + " return 'Skąd będę wiedział kiedy moge to odebrać?'\n", + " \n", + " if domain == 'location':\n", + " return 'Można odebrać ją w innej filli biblioteki?'\n", + "\n", + " if domain == 'return':\n", + " return f'Chciałabym zwrócić książkę {slot}'\n", + "\n", + " if domain == 'reservation':\n", + " r = random.randint(1,2)\n", + " if slot=='cancel':\n", + " return 'Chciałbym anulować rezerwację książki'\n", + " if r==1:\n", + " return f'Chciałbym zarezerwować książkę {slot}'\n", + " elif r==2:\n", + " return 'Chciałbym wypożyczyć książkę'\n", + "\n", + " if domain == 'overdue_books':\n", + " return 'Mam jakieś książki które mają przekroczony termin oddania?'\n", + "\n", + " if domain == 'soon_overdue':\n", + " return f'Czy zbliża mi się termin oddania książki?'\n", + "\n", + " if domain == 'online_library':\n", + " return 'Jak mogę uzyskać dostęp do zasobów online?'\n", + "\n", + " if domain == 'events':\n", + " return 'Jakie wydarzenia odbywają się w najbliższym czasie w bibliotece?'\n", + " \n", + " if domain=='action':\n", + " if slot=='wypozyczenie':\n", + " return 'Chciałbym wypożyczyć jeden egzemplarz'\n", + " elif slot=='reservation':\n", + " return 'Chciałbym zarezerwować wszystkie części tego cyklu'\n", + " elif slot == 'status':\n", + " return 'Chciałbym sprawdzić listę obecnie wypożyczonych książek'\n", + "\n", + " \n", + " \n", + "nlg(['card', 'Request', '', ''])\n", + "nlg(['books', 'Request', 'Owoce wiśni Osamu Dazai', ''])\n", + "nlg(['return', 'Request', 'Kafka Haruki Murakami', ''])\n", + "nlg(['reservation', 'Request', 'Kafka Haruki Murakami', ''])\n", + "nlg(['reservation', 'Request', 'cancel', ''])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}