JARVIS/eliza.py
2024-03-07 12:52:48 +01:00

163 lines
5.2 KiB
Python

from nltk.chat import Chat, eliza
pairs = ((
r"Mam problem z (.*)",
(
"Dlaczego masz problem z %1?",
"Czy naprawdę pomogłoby Ci, gdybyś rozwiązał problem z %1?",
"Jesteś pewien, że masz problem z %1?",
),
),
(
r"Czuję się (.*)",
(
"Dlaczego czujesz się %1?",
"Czy coś wydarzyło się, co sprawiło, że czujesz się %1?",
"Jak myślisz, dlaczego czujesz się %1?",
),
),
(
r"Chcę (.*)",
(
"Dlaczego chcesz %1?",
"Czy naprawdę pomoże Ci to, jeśli dostaniesz %1?",
"Jesteś pewien, że chcesz %1?",
),
),
(
r"Czy mogę (.*)",
(
"Czy naprawdę chcesz %1?",
"Dlaczego pytasz o to, czy możesz %1?",
"Jesteś pewien, że chcesz %1?",
),
),
(
r"Nie mogę (.*)",
(
"Dlaczego nie możesz %1?",
"Czy coś Cię blokuje, żebyś nie mógł %1?",
"Czy próbowałeś znaleźć rozwiązanie, aby móc %1?",
),
),
(
r"Jestem (.*)",
(
"Dlaczego uważasz, że jesteś %1?",
"Czy to uczucie jest stałe, czy może chwilowe, że jesteś %1?",
"Czy masz jakieś konkretne powody, żeby uważać, że jesteś %1?",
),
),
(
r"Czuję się zaniepokojony (.*)",
(
"Dlaczego czujesz się zaniepokojony %1?",
"Czy masz jakiś konkretny powód, żeby się martwić %1?",
"Jak myślisz, co może Ci pomóc, aby przestać się martwić %1?",
),
),
(
r"Potrzebuję pomocy z (.*)",
(
"Dlaczego potrzebujesz pomocy z %1?",
"Czy możesz wyjaśnić, co sprawiło, że potrzebujesz pomocy z %1?",
"Czy próbowałeś już samodzielnie rozwiązać problem z %1?",
),
),
(
r"Czuję się samotny (.*)",
(
"Dlaczego czujesz się samotny %1?",
"Czy jest coś, co mogę zrobić, aby Ci pomóc, czując się samotny %1?",
"Czy próbujesz znaleźć sposoby na przezwyciężenie samotności %1?",
),
),
(
r"Mam pytanie dotyczące (.*)",
(
"O co konkretnie chciałbyś zapytać dotyczące %1?",
"Czy mogę pomóc Ci z odpowiedzią na Twoje pytanie dotyczące %1?",
"Czy próbujesz znaleźć więcej informacji na temat %1?",
),
),
(
r"Zawsze się czuję (.*)",
(
"Czy zawsze czujesz się %1, czy są okoliczności, które to zmieniają?",
"Jak myślisz, co może pomóc Ci zmienić to uczucie, zawsze czując się %1?",
"Czy jest coś, co mogę zrobić, aby Ci pomóc, będąc zawsze %1?",
),
),
(
r"Marzę o (.*)",
(
"Dlaczego marzysz o %1?",
"Czy jest coś, co możesz zrobić, aby zbliżyć się do realizacji swoich marzeń o %1?",
"Czy masz plany na to, jak osiągnąć to, o czym marzysz %1?",
),
),
(
r"Czuję się zestresowany (.*)",
(
"Co powoduje, że czujesz się zestresowany %1?",
"Czy masz jakieś techniki radzenia sobie ze stresem, kiedy czujesz się zestresowany %1?",
"Jak myślisz, co może pomóc Ci zrelaksować się, będąc zestresowanym %1?",
),
),
(
r"Chciałbym zrozumieć (.*)",
(
"Co dokładnie chciałbyś zrozumieć %1?",
"Czy mogę pomóc Ci z zrozumieniem tego, o czym chciałbyś się dowiedzieć %1?",
"Czy próbujesz znaleźć więcej informacji na ten temat %1?",
),
),
(
r"Interesuje mnie (.*)",
(
"Co konkretnie Cię interesuje w związku z %1?",
"Czy mogę pomóc Ci znaleźć więcej informacji na ten temat %1?",
"Czy masz jakieś pytania dotyczące tego, co Cię interesuje %1?",
),
),
(
r"Czuje się zmęczony (.*)",
(
"Co powoduje, że czujesz się zmęczony %1?",
"Czy próbujesz znaleźć sposoby na wypoczynek, kiedy czujesz się zmęczony %1?",
"Czy masz jakieś techniki, które pomagają Ci w zmniejszeniu uczucia zmęczenia %1?",
),
),
)
reflections = {
"i am": "you are",
"i was": "you were",
"i": "you",
"i'm": "you are",
"i'd": "you would",
"i've": "you have",
"i'll": "you will",
"my": "your",
"you are": "I am",
"you were": "I was",
"you've": "I have",
"you'll": "I will",
"your": "my",
"yours": "mine",
"you": "me",
"me": "you",
}
eliza_chatbot = Chat(pairs, reflections)
def eliza_chat():
print("Therapist\n---------")
print("Talk to the program by typing in plain English, using normal upper-")
print('and lower-case letters and punctuation. Enter "quit" when done.')
print("=" * 72)
print("Hello. How are you feeling today?")
eliza_chatbot.converse()