This commit is contained in:
korzepadawid 2024-03-27 18:11:49 +01:00
parent 49c451dae4
commit 066055e743
3 changed files with 306 additions and 0 deletions

0
eliza/__init__.py Normal file
View File

305
eliza/chatbot.py Normal file
View File

@ -0,0 +1,305 @@
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"(.*)\?",
(
"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()

View File

@ -0,0 +1 @@
nltk~=3.8.1