From 627a55afabb59895f2d427cd758a053a28e05f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20=C5=9Awiderski?= Date: Tue, 15 Mar 2022 21:37:30 +0100 Subject: [PATCH] =?UTF-8?q?Prze=C5=9Blij=20pliki=20do=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Elza_chatbot_as.ipynb | 482 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 482 insertions(+) create mode 100644 Elza_chatbot_as.ipynb diff --git a/Elza_chatbot_as.ipynb b/Elza_chatbot_as.ipynb new file mode 100644 index 0000000..4163c15 --- /dev/null +++ b/Elza_chatbot_as.ipynb @@ -0,0 +1,482 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "id": "13a78612-e727-4e7d-b087-438014883903", + "metadata": {}, + "outputs": [], + "source": [ + "from nltk.chat.util import Chat, reflections\n", + "\n", + "pairs = (\n", + " (\n", + " r\"I need (.*)\",\n", + " (\n", + " \"Why do you need %1?\",\n", + " \"Would it really help you to get %1?\",\n", + " \"Are you sure you need %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"who created you (.*)\",\n", + " (\n", + " \"ELIZA was invented in 1966 by Weizenbaum. Why %1?\",\n", + "\n", + " ),\n", + " ),\n", + " (\n", + " r\"Why don\\'t you (.*)\",\n", + " (\n", + " \"Do you really think I don't %1?\",\n", + " \"Perhaps eventually I will %1.\",\n", + " \"Do you really want me to %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Why can\\'t I (.*)\",\n", + " (\n", + " \"Do you think you should be able to %1?\",\n", + " \"If you could %1, what would you do?\",\n", + " \"I don't know -- why can't you %1?\",\n", + " \"Have you really tried?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"I can\\'t (.*)\",\n", + " (\n", + " \"How do you know you can't %1?\",\n", + " \"Perhaps you could %1 if you tried.\",\n", + " \"What would it take for you to %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"I am (.*)\",\n", + " (\n", + " \"Did you come to me because you are %1?\",\n", + " \"How long have you been %1?\",\n", + " \"How do you feel about being %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"I\\'m (.*)\",\n", + " (\n", + " \"How does being %1 make you feel?\",\n", + " \"Do you enjoy being %1?\",\n", + " \"Why do you tell me you're %1?\",\n", + " \"Why do you think you're %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Are you (.*)\",\n", + " (\n", + " \"Why does it matter whether I am %1?\",\n", + " \"Would you prefer it if I were not %1?\",\n", + " \"Perhaps you believe I am %1.\",\n", + " \"I may be %1 -- what do you think?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"What (.*)\",\n", + " (\n", + " \"Why do you ask?\",\n", + " \"How would an answer to that help you?\",\n", + " \"What do you think?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"How (.*)\",\n", + " (\n", + " \"How do you suppose?\",\n", + " \"Perhaps you can answer your own question.\",\n", + " \"What is it you're really asking?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Ponieważ (.*)\",\n", + " (\n", + " \"Czy to prawdziwy powód?\",\n", + " \"Jakie inne powody przychodzą Ci na myśl?”,\",\n", + " \"Czy ten powód dotyczy czegokolwiek innego?\",\n", + " \"Jeśli %1, co jeszcze musi być prawdą?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"(.*) przepraszam (.*)\",\n", + " (\n", + " \"Wiele razy przeprosiny nie są potrzebne.\",\n", + " \"Co czujesz kiedy przepraszasz?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Cześć(.*)\",\n", + " (\n", + " \"Cześć... cieszę się, że mogłeś dzisiaj wpaść..\",\n", + " \"Cześć... jak się masz dzisiaj?\",\n", + " \"Cześć, jak się dzisiaj czujesz?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Myśle, że (.*)\",\n", + " (\"Czy wątpisz w %1?\", \"Naprawdę tak myślisz?\", \"Ale nie jesteś pewien, że %1?\"),\n", + " ),\n", + " (\n", + " r\"(.*) przyjaciel (.*)\",\n", + " (\n", + " \"Opowiedz mi więcej o swoich przyjaciołach.\",\n", + " \"Kiedy myślisz o przyjacielu, co przychodzi ci na myśl?\",\n", + " \"Dlaczego miałbyś nie opowiedzieć o przyjacielu z dzieciństwa?\",\n", + " ),\n", + " ),\n", + " (r\"Tak\", (\"Wydajesz się całkiem pewien.\", \"OK, ale czy możesz trochę rozwinąć?\")),\n", + " (\n", + " r\"(.*) komputer(.*)\",\n", + " (\n", + " \"Naprawdę mówisz o mnie?\",\n", + " \"Czy rozmowa z komputerem wydaje się dziwna?\",\n", + " \"Jak się czujesz przy komputerach?\",\n", + " \"Czy czujesz się zagrożony przez komputery?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"To jest (.*)\",\n", + " (\n", + " \"Czy myślisz, że to %1?\",\n", + " \"Może to %1 -- co myślisz?\",\n", + " \"Gdyby to był %1, co byś zrobił?\",\n", + " \"Może być tak, że %1.\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Jest to (.*)\",\n", + " (\n", + " \"Wydajesz się bardzo pewny.\",\n", + " \"Gdybym ci powiedziała, że prawdopodobnie nie jest to %1, co byś poczuł?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Czy możesz (.*)\",\n", + " (\n", + " \"Dlaczego myślisz, że nie mogę %1?\",\n", + " \"Gdybym mógł %1, to co?\",\n", + " \"Dlaczego pytasz, czy mogę %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Czy mogę (.*)\",\n", + " (\n", + " \"Być może nie chcesz %1.\",\n", + " \"Czy chcesz mieć możliwość %1?\",\n", + " \"Gdybyś mógł %1, czy byś?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"You are (.*)\",\n", + " (\n", + " \"Why do you think I am %1?\",\n", + " \"Does it please you to think that I'm %1?\",\n", + " \"Perhaps you would like me to be %1.\",\n", + " \"Perhaps you're really talking about yourself?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"You\\'re (.*)\",\n", + " (\n", + " \"Why do you say I am %1?\",\n", + " \"Why do you think I am %1?\",\n", + " \"Are we talking about you, or me?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"I don\\'t (.*)\",\n", + " (\"Don't you really %1?\", \"Why don't you %1?\", \"Do you want to %1?\"),\n", + " ),\n", + " (\n", + " r\"I feel (.*)\",\n", + " (\n", + " \"Good, tell me more about these feelings.\",\n", + " \"Do you often feel %1?\",\n", + " \"When do you usually feel %1?\",\n", + " \"When you feel %1, what do you do?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"I have (.*)\",\n", + " (\n", + " \"Why do you tell me that you've %1?\",\n", + " \"Have you really %1?\",\n", + " \"Now that you have %1, what will you do next?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"I would (.*)\",\n", + " (\n", + " \"Could you explain why you would %1?\",\n", + " \"Why would you %1?\",\n", + " \"Who else knows that you would %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"Is there (.*)\",\n", + " (\n", + " \"Do you think there is %1?\",\n", + " \"It's likely that there is %1.\",\n", + " \"Would you like there to be %1?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"My (.*)\",\n", + " (\n", + " \"I see, your %1.\",\n", + " \"Why do you say that your %1?\",\n", + " \"When your %1, how do you feel?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"You (.*)\",\n", + " (\n", + " \"We should be discussing you, not me.\",\n", + " \"Why do you say that about me?\",\n", + " \"Why do you care whether I %1?\",\n", + " ),\n", + " ),\n", + " (r\"Why (.*)\", (\"Why don't you tell me the reason why %1?\", \"Why do you think %1?\")),\n", + " (\n", + " r\"I want (.*)\",\n", + " (\n", + " \"What would it mean to you if you got %1?\",\n", + " \"Why do you want %1?\",\n", + " \"What would you do if you got %1?\",\n", + " \"If you got %1, then what would you do?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"(.*) mother(.*)\",\n", + " (\n", + " \"Tell me more about your mother.\",\n", + " \"What was your relationship with your mother like?\",\n", + " \"How do you feel about your mother?\",\n", + " \"How does this relate to your feelings today?\",\n", + " \"Good family relations are important.\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"(.*) father(.*)\",\n", + " (\n", + " \"Tell me more about your father.\",\n", + " \"How did your father make you feel?\",\n", + " \"How do you feel about your father?\",\n", + " \"Does your relationship with your father relate to your feelings today?\",\n", + " \"Do you have trouble showing affection with your family?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"(.*) child(.*)\",\n", + " (\n", + " \"Did you have close friends as a child?\",\n", + " \"What is your favorite childhood memory?\",\n", + " \"Do you remember any dreams or nightmares from childhood?\",\n", + " \"Did the other children sometimes tease you?\",\n", + " \"How do you think your childhood experiences relate to your feelings today?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"(.*)\\?\",\n", + " (\n", + " \"Why do you ask that?\",\n", + " \"Please consider whether you can answer your own question.\",\n", + " \"Perhaps the answer lies within yourself?\",\n", + " \"Why don't you tell me?\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"quit\",\n", + " (\n", + " \"Thank you for talking with me.\",\n", + " \"Good-bye.\",\n", + " \"Thank you, that will be $150. Have a good day!\",\n", + " ),\n", + " ),\n", + " (\n", + " r\"(.*)\",\n", + " (\n", + " \"Please tell me more.\",\n", + " \"Let's change focus a bit... Tell me about your family.\",\n", + " \"Can you elaborate on that?\",\n", + " \"Why do you say that %1?\",\n", + " \"I see.\",\n", + " \"Very interesting.\",\n", + " \"%1.\",\n", + " \"I see. And what does that tell you?\",\n", + " \"How does that make you feel?\",\n", + " \"How do you feel when you say that?\",\n", + " ),\n", + " ),\n", + ")\n", + "\n", + "eliza_chatbot = Chat(pairs, reflections)\n", + "\n", + "\n", + "def eliza_chat():\n", + " print(\"Psychiatrist\\n---------\")\n", + " print(\"Talk to the program by typing in plain English, using normal upper-\")\n", + " print('and lower-case letters and punctuation. Enter \"quit\" when done.')\n", + " print(\"=\" * 72)\n", + " print(\"Hello. My name is Eliza.\\nHow are you feeling today?\")\n", + "\n", + " eliza_chatbot.converse()\n", + "\n", + "\n", + "def demo():\n", + " eliza_chat()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " demo()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8b790564-2e67-4f6a-8565-4c6eceeb3de3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Psychiatrist\n", + "---------\n", + "Talk to the program by typing in plain English, using normal upper-\n", + "and lower-case letters and punctuation. Enter \"quit\" when done.\n", + "========================================================================\n", + "Hello. My name is Eliza.\n", + "How are you feeling today?\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> czy moge\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Please tell me more.\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> Czy moge\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Very interesting.\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> Czy mogę\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I see.\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> Czy mogę\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Please tell me more.\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> Czy mogę grać w płkę?\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Czy chcesz mieć możliwość grać w płkę?\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> Czy moge grać w lotki?\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Perhaps the answer lies within yourself?\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "> Czy mogę grać w lotki\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Być może nie chcesz grać w lotki.\n" + ] + } + ], + "source": [ + "demo()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}