JARVIS/eliza.py
2024-03-07 13:06:23 +01:00

190 lines
5.5 KiB
Python

from nltk.chat import Chat
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?",
),
),
(
r"wyjdz",
(
"Dziekuje za rozmowe"
),
),
(
r"(.*)",
(
"Proszę, powiedz mi więcej.",
"Zmieńmy trochę temat... Opowiedz mi o swojej rodzinie.",
"Czy możesz to rozwinąć?",
"Dlaczego mówisz, że %1?",
"Rozumiem.",
"Bardzo interesujące.",
"%1.",
"Rozumiem. I co ci to mówi?",
"Jak się z tym czujesz?",
"Jak się czujesz, kiedy to mówisz?",
),
),
)
reflections = {
"ja jestem": "ty jestes",
"ja bylem": "ty byles",
"ja bylam": "ty bylas",
"ja": "ty",
"jestem": "jestes",
"zrobilbym": "zrobilbys",
"zrobilem": "zrobiles",
"zrobie": "zrobisz",
"moj": "twoj",
"moja": "twoja",
"moje": "twoje",
"jestes": "jestem",
"byles": "bylam",
"zrobilas": "zrobilam",
"zrobisz": "zrobie",
"twoj": "moj",
"twoja": "moja",
"twoje": "moje",
"ty": "ja",
}
eliza_chatbot = Chat(pairs, reflections)
def eliza_chat():
print("Terapeuta\n---------")
print("Rozmawiaj z programem pisząc naturalnym językiem polskim, korzystając z dużych-")
print('oraz małych liter i interpunkcji. Napisz "wyjdz" by zakończyć rozmowę.')
print("=" * 72)
print("Cześć. Jak się dzisiaj czujesz?")
eliza_chatbot.converse(quit="wyjdz")
if __name__ == "__main__":
eliza_chat()