diff --git a/chatbot2.py b/chatbot2.py new file mode 100644 index 0000000..b68ad74 --- /dev/null +++ b/chatbot2.py @@ -0,0 +1,383 @@ +from nltk.chat.util import Chat + +pairs_pl = ( + ( + r"Potrzebuję (.*)", + ( + "Dlaczego potrzebujesz %1?", + "Czy poczułbyś się lepiej gdybyś miał %1?", + "Jesteś pewny, że potrzebujesz %1?", + ), + ), + ( + r"Dlaczego nie mogę (.*)", + ( + "Myślisz, że powinieneś móc %1?", + "Gdybyś mógł %1, co byś wtedy zrobił?", + "Nie wiem -- dlaczego nie możesz %1?", + "Czy kiedykolwiek tak naprawdę spróbowałeś?", + ), + ), + ( + r"Nie mogę (.*)", + ( + "Skąd wiesz, że nie możesz %1?", + "Może mógłbyś %1 gdybyś spróbował.", + "Co musiało by się wydarzyć, byś mógł %1?", + ), + ), + ( + r"Jestem (.*)", + ( + "Jak się czujesz z tym, że jesteś %1?", + "Czy sprawia Ciprzyjemność bycie %1?", + "Dlaczego chciałeś mi powiedzieć, że jesteś %1?", + "Dlaczego myślisz, że jesteś %1?", + "Czy przyszedłeś do mnie, bo jesteś %1?", + "Od jak dawna jesteś %1?", + "Czy dobrze się czujesz z tym, że jesteś %1?", + ), + ), + ( + r"Czy jesteś (.*)", + ( + "Czy to ma znaczenie czy jestem %1?", + "Wolałbyś, żebym nie był %1?", + "Być może wierzysz, że jestem %1.", + "Mogę być %1 - a jak Tobie się wydaje?", + ), + ), + ( + r"Co (.*)\?", + ( + "Dlaczego pytasz?", + "W jaki sposób miałaby Ci pomóc odpowiedź na to pytanie?", + "A co Ty o tym myślisz?", + ), + ), + ( + r"Jak (.*)\?", + ( + "A jak Tobie się wydaje?", + "Może sam spróbujesz odpowiedzieć na to pytanie.", + "O co tak naprawdę pytasz?", + ), + ), + ( + r"(Dlatego,? że|Ponieważ)(.*)", + ( + "Czy to jest prawdziwy powód?", + "Jakie inne powody przychodzą Ci na myśl?", + "Czy może być inny powód, oprócz %2, ", + ), + ), + ( + r"(.*)przepraszam (.*)", + ( + "Czesto przeprosiny nie są wcale potrzebne.", + "Jakie uczucia Ci towarzyszą, gdy przepraszasz?", + "Uważasz, że powinieneś przepraszać?" + ), + ), + ( + r"(Cześć|Hej) (.*)", + ( + "Dzień dobry, cieszę się, że możemy się dziś spotkać.", + "Dzień dobry, jak się dzisiaj czujesz?", + "Dzień dobry, jak Ci minął dzień?", + ), + ), + ( + r"Wydaje mi się (.*)", + ( + "Masz wątpliwości %1?", + "Naprawdę tak myślisz?", + "Ale nie jesteś pewny %1?" + ), + ), + ( + r"(.*) przyjaci (.*)", + ( + "Opowiedz mi więcej o twoich przyjaciołach.", + "Kiedy myślisz o przyjacielu, jakie towarzyszą Ci uczucia?", + "Może opowiesz mi o twoich przyjaciołach z dzieciństwa?", + ), + ), + ( + r"Tak", + ( + "Wydajesz się tego pewny.", + "Dobrze, czy mógłbyś powiedzieć mi coś więcej?" + ) + ), + ( + r"(.*) komputer (.*)", + ( + "Naprawdę mówisz o mnie?", + "Czy rozmowa z komputerem wydaje Ci się czymś dziwnym?", + "Czy komputery sprawiają, że czujesz się zagrożony?", + "CZy odczuwasz zagrożenie ze strony komputerów?", + ), + ), + ( + r"Czy to jest (.*)", + ( + "Myślisz, że to jest %1?", + "Być może to %1 -- jak Ty myślisz?", + "Gdyby to było %1, co byś zrobił?", + "To zdecydowanie może być %1.", + ), + ), + ( + r"To jest (.*)", + ( + "Wydajesz się tego bardzo pewny.", + "Gdybym powiedział ci, że to prawdopodobnie nie jest %1, jak byś się wtedy czuł?", + ), + ), + ( + r"Czy (możesz|mógłbyś|mogłabyś)(.*)", + ( + "Dlaczego myślisz, że nie %1%2?", + "Jeżeli %1, to co?", + "Dlaczego pytasz czy %1%2?", + ), + ), + ( + r"Czy mogę (.*)", + ( + "Być może wcale nie chcesz %1.", + "Czy chciałbyś móc %1?", + "Gdybyś mógł %1, zrobiłbyś to?", + ), + ), + ( + r"(jesteś)(.*)", + ( + "Dlaczego mówisz, że %1%2?", + "Dlaczego myślisz, że %1%2?", + "Chcemy rozmawiać o mnie czy o tobie?", + "Chciałbyś, żebym był%2?", + "Być może tak naprawdę mówisz o sobie?", + "Może chciabyś, żebym był%2" + ), + ), + ( + r"Nie chcę (.*)", + ( + "Naprawdę nie chcesz %1?", + "Dlaczego nie chcesz %1?", + ), + ), + ( + r"Czuję(.*)", + ( + "Dobrze, powiedz mi więcej o tym jak się czujesz.", + "Często czujesz %1?", + "Kiedy zazwyczaj czujesz%1?", + "Gdy czujesz %1, co zazwyczaj z tym robisz?", + ), + ), + ( + r"Mam (.*)", + ( + "Dlaczego mówisz, że masz %1?", + "Czy naprawdę masz %1?", + "Teraz gdy już masz %1, co planujesz zrobić?", + ), + ), + ( + r"Ja bym (.*)", + ( + "Mógłbyś dokładniej powiedzie co byś %1?", + "Dlaczego %1?", + "Czy ktoś wie, że Ty byś %1?", + ), + ), + ( + r"Czy jest (.*)", + ( + "Myślisz, że jest %1?", + "Możliwe, że jest %1.", + "Czy chciałbyś, żeby był %1?", + ), + ), + ( + r"(?=Mój|Moja)(.*)", + ( + "Rozumiem, %1.", + "Dlaczego uważasz, że %1?", + "Kiedy %1, jak się wtedy czujesz?", + ), + ), + ( + r"Ty (.*)", + ( + "Powinnismy mówić o tobie, nie o mnie.", + "Dlaczego tak o mnie myślisz?", + "Dlaczego to dla Ciebie ważne?", + ), + ), + ( + r"Dlaczego (.*)", + ("Może sam spróbujesz odpowiedzieć to pytanie?", + "Dlaczego myślisz, że %1?" + ) + ), + ( + r"(Chciałabym|chciałbym) (.*ć|.*c) (.*)", + ( + "Co by się zmieniło, gdybyś mógł %2 %3?", + "Dlaczego %1 %2 %3?", + "Co byś zrobił gdybyś mógł %2 %3?", + "Gdybyś mógł %2 %3, co byś wtedy zrobił?", + ), + ), + ( + r"(Chciałabym|chciałbym) (.*)", + ( + "Co by się zmieniło, gdybyś miał %2?", + "Dlaczego %1 %2?", + "Co byś zrobił gdybyś miał %2?", + "Gdybyś miał %2, co byś wtedy zrobił?", + ), + ), + ( + r"(mama|matka).*", + ( + "Opowiedz mi o twojej matce.", + "Jak układają się twoje stosunki z matką?", + "Co czujesz kiedy myślisz o twojej mamie?", + "Myślisz, że to ma wpływ na to jak obecnie się czujesz?", + "Dobre relacje rodzinne są ważne.", + ), + ), + ( + r"(tata|ojciec).*", + ( + "Opowiedz mi więcej o twoim ojcu.", + "Jak układają się twoje stosunki z ojcem?", + "Co czujesz kiedy myślisz o twoim ojcu?", + "Myślisz, że to ma wpływ na to jak obecnie się czujesz?", + "Czy masz problem z okazywaniem uczuć członkom twojej rodziny?", + ), + ), + ( + r"(.*)\?", + ( + "Dlaczego o to pytasz?", + "Zastanów się czy jesteś w stanie sam odpowiedzieć na to pytanie.", + "Być może odpowiedzi powinieneś szukać u siebie?", + "Może chciałbyś powiedzieć mi o tym coś więcej?", + ), + ), + ( + r"wyjdź", + ( + "Dziękuję, że zechciałeś ze mną porozmawiać.", + "Do zobaczenia.", + "Dziękuję, to będzie 200zł. Miłego dnia!", + ), + ), + ( + r"(.* mieć dziec.*)", + ( + "Dlaczego %1?", + "Czy twoje doświadczenia z dzieciństwa mają wpływ na tę decyzję?", + "Dobrze wspominasz swoje dzieciństwo?", + ), + ), + ( + r"(.*) dziec(.*)", + ( + "Czy jako dziecko miałaś wielu przyjaciół?", + "Jakie jest twoje ulubione wspomnienie z dzieciństwa?", + "Pamiętasz jakieś koszmary czy sny z dzieciństwa?", + "Czy inne dzieci Ci dokuczały?", + "Myślisz, że twoje doświadczenia z dzieciństwa miały wpływ na to jak się dzisiaj czujesz?", + ), + ), + ( + r"(.*)", + ( + "Proszę, powiedz mi coś więcej.", + "Proszę, powiedz mi dlaczego %1", + "W takim razie zmieńmy temat... Opowiedz mi coś o twojej rodzinie.", + "Chciałbyś rozwinąć tę myśl?", + "Dlaczego uważasz, że %1?", + "Rozumiem.", + "Interesujące.", + "%1.", + "Rozumiem. I co Cito mówi?", + "Jak się przez to czujesz?", + "Co czujesz kiedy to mówisz?", + ), + ), +) + +reflections_pl = { + "jestem": "jesteś", + "byłem": "byłeś", + "byłam": "byłaś", + "bedę": "będziesz", + "ja": "ty", + "ty":"ja", + "chciałbym": "chciałbyś", + "chciałabym": "chciałabyś", + "mam": "masz", + "masz": "mam", + "mój": "twój", + "moja": "twoja", + "moje": "twoje", + "mojej": "twojej", + "moi": "twoi", + "jesteś": "jestem", + "byłeś": "byłem", + "byłaś": "byłam", + "będziesz": "będę", + "twój": "mój", + "twoja": "moja", + "twoje": "moje", + "ciebie": "mnie", + "ci": "mi", + "tobie": "mi", + "mnie": "ciebie", + "mi": "tobie", + "chciałem": "chciałeś", + "chciałam": "chciałaś", + "szukam": "szukasz", + "obawiam": "obawiasz", + "boję": "boisz", + "ufam": "ufasz", + "z tobą": "ze mną", + "muszę": "musisz", + "możesz": "mogę", + "mógłbyś": "mogę", + "mogłabyś": "mogę", + "powinnam": "powinnaś", + "powinienem":"powinieneś" + } + + +grazyna_chatbot = Chat(pairs_pl, reflections_pl) + + +def grazyna_chat(): + greeting = ['Rozmawiaj z programem pisząc proste zdania w języku polskim.', 'Aby zakończyć rozmowę napisz \033[1;31mwyjdź\033[0;0m.'] + frame_width = len(max(greeting, key=len))+8 + print("*" * frame_width+"\n*"+(frame_width-2)*" "+"*") + print("*"+int((frame_width-len(greeting[0])-1)/2)*" "+greeting[0]+int((frame_width-len(greeting[0])-2)/2)*" "+"*") + print("*"+int((frame_width-len(greeting[1])+13-1)/2)*" "+greeting[1]+int((frame_width-len(greeting[1])+13-2)/2)*" "+"*\n*"+(frame_width-2)*" "+"*") + print("*" * frame_width) + print("\nDzień dobry. Jak się dzisiaj czujesz?") + + grazyna_chatbot.converse(quit="wyjdź") + + +def demo(): + grazyna_chat() + + + +if __name__ == "__main__": + demo()