Systemy_DialogowePon15-30/main.py
2021-03-21 16:19:09 +01:00

321 lines
8.9 KiB
Python

from nltk.chat.util import Chat, reflections
pairs = (
(
r"Potrzebuję (.*)",
(
"Dlaczego potrzebujesz %1?",
"Do czego potrzebne ci jest %1?",
"Czy jesteś pewien, że potrzebujesz %1?",
),
),
(
r"Kto ciebie stworzył(.*)",
(
"Jarvis został stworzony przez: Dawid Hajder, Jakub Pietrzak, Piotr Biskup i Wiktor Bombola.",
),
),
(
r"Dlaczego ty nie (.*)",
(
"Naprawdę myślisz, że ja nie %1?",
"Być może w końcu zacznę %1.",
"Czy naprawdę chcesz żebym %1?",
),
),
(
r"Dlaczego nie mogę (.*)",
(
"Czy uważasz, że powinieneś %1?",
"Gdybyś mógł %1, to co byś zrobił dalej?",
"Nie wiem -- dlaczego nie możesz %1?",
"Naprawdę próbowałeś?",
),
),
(
r"Nie mogę (.*)",
(
"Skąd wiesz, że nie możesz %1?",
"Być może mógłbyś %1 gdybyś próbował.",
"Co by od ciebie wymagało %1?",
),
),
(
r"Jestem (.*)",
(
"Przyszedłeś do mnie bo jesteś %1?",
"Jak długo jesteś %1?",
"Jak się czujesz będąc %1?",
"Jesteś zadowolony, że jesteś %1?",
"Dlaczego mi powiedziałeś, że jesteś %1?",
"Czemu myślisz, że jesteś %1?",
),
),
(
r"Jesteś (.*)",
(
"Dlaczego ma znaczenie, czy jestem %1?",
"Wolisz, gdybym nie był %1?",
"Być może uważasz, że jestem %1.",
"Mogę być %1 -- co o tym myślisz?",
),
),
(
r"Co (.*)",
(
"Dlaczego pytasz?",
"Jak odpowiedź na to pomogłaby ci?",
"Co o tym myślisz?",
),
),
(
r"Jak (.*)",
(
"A jak myślisz?",
"Może sam możesz odpowiedzieć jak.",
"O co dokładnie pytasz?",
),
),
(
r"Dlatego (.*)",
(
"Czy to prawdziwy powód?",
"Co jeszcze przychodzi Ci do głowy?",
"Czy ten powód jest argumentem w innej kwestii?",
"Skoro %1, to co jeszcze może takie być?",
),
),
(
r"(.*) przepraszam (.*)",
(
"Bardzo często przeprosiny wcale nie są potrzebne.",
"Jak sie czujesz, kiedy za coś przepraszasz?",
),
),
(
r"Cześć(.*)",
(
"Cześć, fajnie że dzisiaj wpadłeś.",
"No cześć, co tam słychać?",
"Cześć, jak się dzisiaj miewasz?",
),
),
(
r"Uważam (.*)",
("Czy wątpisz %1?", "Czy naprawdę tak uważasz?", "Ale nie jesteś pewny %1?"),
),
(
r"(.*) (przyjaciel|przyjaciela|przyjacielowi|przyjaciela|przyjacielem|przyjacielu) (.*)",
(
"Opowiedz mi o swoich przyjaciołach.",
"Kto przychodzi Ci na myśl, kiedy mowa o przyjacielach?",
"Może opowiesz mi jakąś historię przyjaźni z dzieciństwa?",
),
),
(r"Tak", ("Wydajesz się być tego pewien.", "No dobra, a wyjaśnisz trochę bardziej?")),
(
r"(.*) Komputer(.*)",
(
"Na prawdę rozmawiasz o mnie?",
"Myślisz że dziwnie jest rozmawiać z komputerem?",
"Jak się czujesz będąc przy komputerze?",
"Myślisz, że komputery są zagrożeniem?",
"A co na to Twój komputer?"
),
),
(
r"Czy (.*)",
(
"A myślisz, że %1?",
"Być może %1 -- jak myślisz?",
"A gdyby było właśnie tak, że %1, co byś zrobił?",
"Równie dobrze może być tak, że %1.",
),
),
(
r"To jest (.*)",
(
"Wyglądasz na przekonanego.",
"A gdybym powiedział Ci, że wcale %1, jak byś się poczuł?",
),
),
(
r"Mógłbyś (.*)",
(
"Czemu miałbym nie móc %1?",
"czemu pytasz, czy mógłbym %1?",
),
),
(
r"Mogę (.*)",
(
"Może wcale nie chcesz %1.",
"Chciałbyś być w stanie %1?",
"gdybyś mógł %1, to co?",
),
),
(
r"Ty jesteś (.*)",
(
"Czemu mówisz, że jestem %1?",
"Cieszysz się mówiąc, że jestem %1?",
"Może chciałbyś być %1.",
"Może to nie o mnie mówisz, a o sobie?",
),
),
(
r"Jesteś (.*)",
(
"Czemu mówisz, że jestem %1?",
"Skąd pomysł, że %1?",
"Mówisz o sobie, czy o mnie?",
),
),
(
r"Nigdy (.*)",
("Na prawdę nigdy %1?", "dlaczego nigdy %1?", "A chciałbyś? %1?"),
),
(
r"Czuję (.*)",
(
"Opowiedz mi proszę o swoich uczuciach.",
"Jak często czujesz, że %1?",
"Kiedy zazwyczaj tak się czujesz %1?",
"Kiedy czujesz %1, co z tym robisz?",
),
),
(
r"Mam (.*)",
(
"Czemu mi mówisz, że masz %1?",
"Serio, masz %1?",
"Skoro masz już %1, to co z tym zrobisz dalej?",
),
),
(
r"Chciałbym (.*)",
(
"Wyjaśnisz mi proszę, czemu chciałbyś %1?",
"Ale dlaczego %1?",
"Ktoś jeszcze wie, że chciałbyś %1?",
),
),
(
r"Jest (.*)",
(
"Myślisz, że jest %1?",
"Bardzo możliwe, że %1.",
"Chciałbyś, żeby był %1?",
),
),
(
r"Mój (.*)",
(
"Widzę, widzę %1.",
"Dlaczego mówisz, że twój %1?",
"Kiedy twój %1, to jak się czujesz?",
),
),
(
r"Ty (.*)",
(
"Powinniśmy rozmawiać o Tobie, nie o mnie.",
"Czemu tak o mnie rozpowiadasz?",
"Co Ciebie to obchodzi, że ja %1?",
),
),
(r"Czemu (.*)", ("Opowiedz mi czemu %1?", "Czemu myślisz, że %1?")),
(
r"Chcę (.*)",
(
"Jak byś się czuł, gbybyś zdobył %1?",
"Czemu chcesz %1?",
"Co byś zrobił, gdybyś osiągnął %1?",
"Czemu tego chcesz?",
),
),
(
r"(.*) (mama|mamy|mamie|mamę|mamą|mamie|mamo)(.*)",
(
"Opowiedz mi o swojej mamie.",
"Jaką miałeś relację ze swoją mamą?",
"Co myślisz o swojej mamie?",
"Jak to się przekłada na to, co dzisiaj czujesz?",
"Dobra relacja z rodziną to podstawa.",
"Kim była dla Ciebie twoja mama?",
),
),
(
r"(.*) (tata|taty|tacie|tatę|tatą|tacie|tato)(.*)",
(
"Opowiedz mi o swoim ojcu.",
"Jak byłeś traktowany przez swojego ojca?",
"Co myślisz o swoim ojcu?",
"Czy Twoja relacja z ojcem ma jakieś przełożenie na to kim dzisiaj jesteś?",
"Miałeś problemy z okazywaniem uczuć wobec rodziny?",
),
),
(
r"(.*) (dziecko|dziecka|dziecku|dzieckiem|dziecku|dziecko)(.*)",
(
"Czy miałeś przyjaciół, kiedy byłeś jeszcze dzieckiem?",
"Jakie jest Twoje ulubione wspomnienie?",
"Pamiętasz jakiś przyjemny sen lub koszmar, z czasów gdy byłeś dzieckiem?",
"Czy inne dzieci czasem Ci dokuczały?",
"Jak myślisz, jak Twoje dzieciństwo wpłynęło na to kim dzisiaj jesteś?",
),
),
(
r"(.*)\?",
(
"Czemu pytasz?",
"Zastanów się, czy sam nie potrafisz sobie odpowiedzieć?",
"Być może sam znasz odpowiedź?",
"Może Ty mi powiesz?",
"Skąd ten pomysł?",
),
),
(
r"quit",
(
"Dziękuję bardzo za rozmowę",
"Do widzenia!",
"Dzięki, to będzie razem 150zł. Miłego dnia!",
"Trzymaj się stary!",
),
),
(
r"(.*)",
(
"Proszę powiedz mi więcej o tym.",
"Zmieńmy proszę temat... Opowiedz mi o Twojej rodzinie.",
"Czy możesz to rozwinąć?",
"Dlaczego to powiedziałeś %1?",
"Rozumiem.",
"Bardzo ciekawe.",
"Jasne. A co ci to mówi?",
"To dobrze.",
"Jak się z tym czujesz?",
),
),
)
jarvis_chatbot = Chat(pairs, reflections)
def jarvis_chat():
print("Kolega do rozmowy\n---------")
print('Rozmawiaj z programem wpisując wyrażenia po polsku, zaczynając zdanie od wielkiej litery. Wpisz "wyjdź" gdy skończysz.')
print("=" * 70)
print("Cześć :D Mam na imię Jarvis.\nCo tam słychać?")
jarvis_chatbot.converse()
def demo():
jarvis_chat()
if __name__ == "__main__":
demo()