from nltk.chat.util import Chat, reflections pairs = [ ( r"(Potrzebuję|potrzebowałbym) (.*)", ( "Dlaczego potrzebujesz %2?", "Czy naprawdę pomogłoby ci zdobycie %2?", "Jesteś pewien, że potrzebujesz %2?", ), ), ( r"(Dlaczego nie możesz|Dlaczego nie mogę) (.*)", ( "Czy naprawdę myślisz, że nie mogę %2?", "Być może w końcu będę mogła %2.", "Czy naprawdę chcesz, żebym %2?", ), ), ( r"(Nie mogę|nie mogę) (.*)", ( "Skąd wiesz, że nie możesz %2?", "Może mógłbyś %2, gdybyś spróbował.", "Co by się stało, gdybyś mógł %2?", ), ), ( r"(Jestem|jestem) (.*)", ( "Czy przyszedłeś do mnie, bo jesteś %2?", "Jak długo już jesteś %2?", "Jak się czujesz będąc %2?", ), ), ( r"(Jestem|jestem) (.*)", ( "Jakie to uczucie być %2?", "Czy lubisz być %2?", "Dlaczego mówisz mi, że jesteś %2?", "Dlaczego sądzisz, że jesteś %2?", ), ), ( r"(Czy jesteś|czy jesteś) (.*)", ( "Czemu ważne jest, czy jestem %2?", "Czy wolałbyś, żebym nie był %2?", "Być może uważasz, że jestem %2.", "Możliwe, że jestem %2 -- co myślisz?", ), ), ( r"(Co|co) (.*)", ( "Dlaczego pytasz?", "Jak odpowiedź na to mogłaby ci pomóc?", "Co myślisz?", ), ), ( r"(Jak|jak) (.*)", ( "Jak sobie wyobrażasz?", "Może potrafisz odpowiedzieć na to pytanie sam.", "O co naprawdę pytasz?", ), ), ( r"(Ponieważ|ponieważ) (.*)", ( "Czy to prawdziwy powód?", "Jakie inne powody przychodzą ci do głowy?", "Czy ten powód dotyczy jeszcze czegoś innego?", "Jeśli %2, to co jeszcze musi być prawdziwe?", ), ), ( r"(.*) (przepraszam|przepraszam) (.*)", ( "Często nie trzeba przepraszania.", "Jakie uczucia towarzyszą ci, gdy przepraszasz?", ), ), ( r"(Cześć|cześć)(.*)", ( "Cześć... Cieszę się, że dziś wpadłeś/łaś.", "Hej... Jak się dzisiaj czujesz?", "Witaj, jak się dziś czujesz?", ), ), ( r"(Myślę|myślę) (.*)", ("Czy wątpisz w %2?", "Czy naprawdę tak myślisz?", "Ale nie jesteś pewien/a %2?"), ), ( r"(.*) (przyjaciel|przyjacielka|przyjaciół|przyjaciółka) (.*)", ( "Opowiedz mi więcej o swoich przyjaciołach.", "Kiedy myślisz o przyjacielu, co przychodzi ci do głowy?", "Dlaczego nie opowiesz mi o przyjacielu z dzieciństwa?", ), ), (r"Tak", ("Wyglądasz na pewnego/a siebie.", "OK, ale czy możesz rozwinąć?",)), ( r"(.*) (komputer|komputera|komputerze|komputerowi|komputerem|komputerze) (.*)", ( "Czy naprawdę mówisz o mnie?", "Czy wydaje ci się dziwne rozmawianie z komputerem?", "Jak czujesz się rozmawiając z komputerami?", "Czy czujesz się zagrożony/a przez komputery?", ), ), ( r"(Czy to|czy to) (.*)", ( "Czy sądzisz, że to %2?", "Być może to %2 -- co sądzisz?", "Gdyby to było %2, co byś zrobił?", "To mogłoby być %2.", ), ), ( r"(To|to) (.*)", ( "Wyglądasz na bardzo pewnego siebie.", "Gdybym powiedział/a ci, że to prawdopodobnie nie %2, co byś czuł/a?", ), ), ( r"(Czy możesz|czy możesz) (.*)", ( "Co sprawia, że myślisz, że nie mogę %2?", "Gdybym mógł/a %2, to co?", "Dlaczego pytasz, czy mogę %2?", ), ), ( r"(Czy ja mogę|czy ja mogę) (.*)", ( "Być może nie chcesz %2.", "Chcesz móc %2?", "Gdybyś mógł/a %2, czy byś chciał/a?", ), ), ( r"(Jesteś|jesteś) (.*)", ( "Dlaczego sądzisz, że jestem %2?", "Czy cieszy cię myśl, że jestem %2?", "Być może chciałbyś/łabyś, żebym był/a %2.", "Może naprawdę rozmawiasz o sobie?", ), ), ( r"(Jesteś|jesteś) (.*)", ( "Dlaczego mówisz, że jestem %2?", "Dlaczego sądzisz, że jestem %2?", "Czy rozmawiamy o tobie czy o mnie?", ), ), ( r"(Nie mogę|nie mogę) (.*)", ("Czy naprawdę nie możesz %2?", "Dlaczego nie %2?", "Czy chcesz %2?"), ), ( r"(Czuję|czuję) (.*)", ( "Dobrze, opowiedz mi więcej o tych uczuciach.", "Często czujesz %2?", "Kiedy zazwyczaj czujesz %2?", "Kiedy czujesz %2, co robisz?", ), ), ( r"(Mam|mam) (.*)", ( "Dlaczego mówisz mi, że masz %2?", "Czy naprawdę masz %2?", "Teraz, gdy masz %2, co zrobisz dalej?", ), ), ( r"(Chciałbym|chciałbym) (.*)", ( "Czy mógłbyś wyjaśnić, dlaczego chciałbyś %2?", "Dlaczego chciałbyś %2?", "Kto jeszcze wie, że chciałbyś %2?", ), ), ( r"(Czy jest|czy jest) (.*)", ( "Czy myślisz, że jest %2?", "Prawdopodobnie jest %2.", "Chciałbyś, żeby było %2?", ), ), ( r"(Mój|mój) (.*)", ( "Rozumiem, twój %2.", "Dlaczego mówisz, że twój %2?", "Kiedy twój %2, jak się czujesz?", ), ), ( r"(Ty|ty) (.*)", ( "Powinniśmy rozmawiać o tobie, nie o mnie.", "Dlaczego mówisz tak o mnie?", "Dlaczego ci zależy, czy ja %2?", ), ), (r"Dlaczego (.*)", ("Dlaczego nie powiesz mi powodu, dlaczego %1?", "Dlaczego myślisz, że %1?")), ( r"(Chcę|chcę) (.*)", ( "Co by dla ciebie oznaczało, gdybyś zdobył %2?", "Dlaczego chcesz %2?", "Co byś zrobił, gdybyś zdobył %2?", "Gdybyś zdobył %2, co byś zrobił?", ), ), ( r"(.*) (matka|matkę|mamę|mamie|matką) (.*)", ( "Opowiedz mi więcej o swojej matce.", "Jaka była twoja relacja z twoją matką?", "Jak się czujesz w stosunku do swojej matki?", "Jak to się ma do twoich dzisiejszych uczuć?", "Dobre relacje rodzinne są ważne.", ), ), ( r"(.*) (ojciec|ojca|tata|tatę|tacie) (.*)", ( "Opowiedz mi więcej o swoim ojcu.", "Jak twój ojciec sprawiał, że się czułeś?", "Jak się czujesz w stosunku do swojego ojca?", "Czy twoja relacja z ojcem ma związek z twoimi dzisiejszymi uczuciami?", "Czy masz trudności w okazywaniu uczuć rodzinie?", ), ), ( r"(.*) (dziecko|dziecka|dzieciństwo) (.*)", ( "Czy miałeś bliskich przyjaciół jako dziecko?", "Jaki jest twój ulubiony wspomniany z dzieciństwa?", "Pamiętasz jakieś sny lub koszmary z dzieciństwa?", "Czy inni dzieci czasami się z ciebie naśmiewały?", "Jak myślisz, jak doświadczenia z dzieciństwa wpływają na twoje dzisiejsze uczucia?", ), ), ( r"(Czy mogę|Chciałbym) dołączyć do Waszego programu lojalnościowego", ( "Oczywiście, nasz program lojalnościowy oferuje wiele korzyści, takich jak zniżki, oferty specjalne i nagrody. Czy mogę zapisać Pana/Panią do programu?", "Nasz program lojalnościowy to świetny sposób, aby uzyskać dodatkowe korzyści z zakupów. Chciałby Pan/Pani do niego dołączyć?", "Tak, oczywiście. Program lojalnościowy to świetny sposób na oszczędzanie. Czy mogę zapisać Pana/Panią do programu?", ), ), ( r"Tak, proszę (o rejestrację|zapisać mnie).", ( "Proszę podać swoje imię, nazwisko oraz adres e-mail. Po rejestracji otrzyma Pan/Pani e-mail z potwierdzeniem i dalszymi instrukcjami.", "Doskonale! Proszę tylko podać kilka danych: imię, nazwisko i adres e-mail, a ja zajmę się resztą.", "Oczywiście. Proszę podać swoje dane, a ja zarejestruję Pana/Panią w programie lojalnościowym.", ), ), ( r"Czy mogę uzyskać informacje o gwarancji na (.*)", ( "Oczywiście, większość naszych produktów posiada gwarancję. Na który produkt konkretnie chciałby Pan/Pani uzyskać informacje o gwarancji?", "Tak, chętnie udzielę informacji o gwarancji. Proszę określić, na jaki produkt potrzebuje Pan/Pani tej informacji.", "Tak, oczywiście. Proszę podać nazwę produktu, a ja sprawdzę, jakie warunki gwarancji która obowiązje.", ), ), ( r"Interesuje mnie gwarancja na (.*)", ( "Model %1, który oferujemy, posiada gwarancję producenta. Czy mogę pomóc w zarejestrowaniu produktu lub udzielić dodatkowych informacji?", "Na produkt %1 przysługuje gwarancja producenta. Czy jest coś jeszcze, w czym mogę pomóc związane z gwarancją tego produktu?", "Gwarancja na produkt %1 obejmuje okres 2 lata. Czy mogę pomóc w zarejestrowaniu produktu lub udzielić dodatkowych informacji?", ), ), ( r"(.*)\?", ( "Dlaczego pytasz?", "Rozważ, czy możesz odpowiedzieć na to pytanie sam.", "Być może odpowiedź tkwi w tobie?", "Dlaczego mi tego nie powiesz?", ), ), ( r"koniec|stop", ( "Dziękuję za rozmowę.", "Do widzenia.", "Dziękuję, to będzie 150 zł. Miłego dnia!", ), ), ( r"(.*)", ( "Proszę, opowiedz mi więcej.", "Zmieńmy temat... Opowiedz mi o swojej rodzinie.", "Czy możesz to rozwinąć?", "Dlaczego mówisz, że %1?", "Rozumiem.", "Bardzo interesujące.", "%1.", "Rozumiem. A co to ci mówi?", "Jak się przy tym czujesz?", ), ), ] eliza_chatbot = Chat(pairs, reflections) def main(): print("Terapeuta\n---------") print("Rozmawiaj z programem, pisząc po polsku, używając normalnych liter") print("i interpunkcji. Wpisz 'koniec', gdy skończysz.") print("=" * 72) print("Cześć. Jak się dziś czujesz?") eliza_chatbot.converse() if __name__ == "__main__": main()