test commit #1

Merged
s444354 merged 2 commits from chatbot into master 2022-03-12 22:50:57 +01:00

View File

@ -1,58 +1,77 @@
from nltk.chat.util import Chat import re
import random
reflections = {
"jestem": "jestes",
"bylem": "byles",
"bylam": "bylas",
"ja": "ty",
"jestem": "jestes",
"chcialbym": "chcialbys",
"chcialabym": "chcialabys",
"mam": "masz",
"bede": "bedziesz",
"moj": "twoj",
"twoja": "moja",
"moim": "twoim",
"mojego": "twojego",
"jestes": "jestem",
"byles": "bylem",
"masz": "mam",
"bedziesz": "bede",
"twoj": "moj",
"twoja": "moja",
"twoim": "moim",
"twojego": "mojego",
"ty": "ja",
"nasz": "wasz",
"moge": "mozesz"
}
pairs = ( class Elizabeth:
( questions = ((r'Potrzebuję (.*)',
r"Potrzebuje (.*)", ('Czemu potrzebujesz %1?',
( 'Naprawdę pomogłoby, gdybyś miał %1?',
"Dlaczego potrzebujesz %1?", 'Czy aby na pewno potrzebujesz %1?')),
"Czy naprawdę pomogloby Ci zdobycie %1?", (r'Jestem (.*)',
"Czy jestes pewien, ze potrzebujesz %1?", ('Czy przyszedłeś dziś do mnie, ponieważ jesteś %1?',
), 'Jak długo jesteś %1?',
), 'Jak czujesz się z byciem %1?')),
( ('Jesteś (.*)',
r"Dlaczego nie moge (.*)", ('Czemu to ważne, że jestem %1?',
( 'Chciałbyś, abym nie był %1?',
"Czy uwazasz, ze powinienes moc %1?", 'Mozę to ty uważasz, że jestem %1.',
"Gdybys mogl %1, co bys zrobil?", 'Mogę być %1, co o tym sądzisz?')),
"Nie wiem, dlaczego nie mozesz %1?", (r'Co (.*)',
"Czy naprawde probowales?", ('Czemu pytasz?',
), 'W jaki sposób odpowiedź na to pytania by ci pomogą?',
), 'A co ty myślisz?')),
(r'Jak (.*)',
('A jak myślisz?',
'Może sam odpowiedz sobie na to pytanie',
"Jakie jest twoje PRAWDZIWE pytanie")),
(r'Ponieważ (.*)',
('Czy to na pewno prawdziwy powód?',
'Jakie inne powody przychodzą ci na myśl?',
'Skoro %1, to jakie inne powody są prawdziwe?')),
(r'(.*) przepraszam (.*)',
('Nie masz za co przepraszać',
'Jakie uczucia masz w sobie, gdy przepraszasz?')),
(r'Myślę, że (.*)',
('Jesteś niepewny co do %1?', 'Naprawdę tak myślisz?', "Ale nie jesteś pewien czy %1?")),
(r'Dlaczego (.*)',
("Czemu to ty nie powiesz mi dlaczego %1?", 'CZemu myślisz, że %1?')),
(r'Chcę (.*)',
('Co to by dla ciebie oznaczało, gdybyś dostał %1?',
'Czemu chcesz %1?',
'Co byś zrobił, gdybyś dostał %1?',
'Gdybyś dostał %1, to co byś zrobił?')),
(r'(.*)matka(.*)',
('Powiedz mi więcej o swojej matce.',
'Jak wyglądałą relacja z twoją matką?',
'Jakie są twoje uczucia dziś?')),
(r'(.*) ojciec(.*)',
('Powiedz mi więcej o swoim ojcu.',
'Jak twój ojciec sprawia, że się czujesz?'
)),
(r'(.*)\\?',
('Być może odpowiedź jest w tobie?',
'Czemu to TY nie powiesz MI?',
"Czemu o to pytasz?")),
(r'(.*)',
('Proszę, powiedz mi więcej',
"Zmieńmy temat... opowiedz mi o swojej rodzinie.",
'Możesz rozwinąć?',
'Możesz powiedzieć mi więcej o %1?',
'Rozumiem.',
'To bardzo interesujące',
'Rozumiem.. i co Ci to mówi?',
'Jakie uczucia to w tobie wywołuje?',
'Jak się czujesz, mówiąc to?')),
( (
r"Nie moge (.*)", r"Nie moge (.*)",
( (
"Skad wiesz, ze nie mozesz %1?", "Skad wiesz, ze nie mozesz %1?",
"Byc moze moglbys %1, gdybys sprobowal.", "Byc moze moglbys %1, gdybys sprobowal.",
"Co musialbys zrobic zeby %1?", "Co musialbys zrobic zeby %1?",
), )),
),
( (
r"Jestem (.*)", r"Jestem (.*)",
( (
@ -62,8 +81,7 @@ pairs = (
"Jak sie czujesz bedac %1?", "Jak sie czujesz bedac %1?",
"Dlaczego mowisz mi, ze jestes %1?", "Dlaczego mowisz mi, ze jestes %1?",
"Dlaczego uwazasz, ze jestes %1?", "Dlaczego uwazasz, ze jestes %1?",
), )),
),
( (
r"Czy jestes (.*)", r"Czy jestes (.*)",
( (
@ -71,24 +89,21 @@ pairs = (
"Czy wolabys gdybym nie byl %1?", "Czy wolabys gdybym nie byl %1?",
"Byc moze uwazasz, ze jestem %1.", "Byc moze uwazasz, ze jestem %1.",
"Byc moze jestem %1, co o tym sadzisz?", "Byc moze jestem %1, co o tym sadzisz?",
), )),
),
( (
r"Co (.*)", r"Co (.*)",
( (
"Dlaczego pytasz?", "Dlaczego pytasz?",
"W jaki sposob pomoglaby ci odpowiedz na to pytanie?", "W jaki sposob pomoglaby ci odpowiedz na to pytanie?",
"Co o tym myslisz?", "Co o tym myslisz?",
), )),
),
( (
r"Jak (.*)", r"Jak (.*)",
( (
"Jak sadzisz?", "Jak sadzisz?",
"Byc moze potrafisz odpowiedziec na swoje wlasne pytanie.", "Byc moze potrafisz odpowiedziec na swoje wlasne pytanie.",
"O co tak naprawde pytasz?", "O co tak naprawde pytasz?",
), )),
),
( (
r"Poniewaz (.*)", r"Poniewaz (.*)",
( (
@ -96,14 +111,24 @@ pairs = (
"Jakie inne powody przychodza Ci na mysl?", "Jakie inne powody przychodza Ci na mysl?",
"Czy ten powod odnosi sie do czegos innego?", "Czy ten powod odnosi sie do czegos innego?",
"Jesli %1, to co jeszcze musi byc prawda?", "Jesli %1, to co jeszcze musi byc prawda?",
), ))
),
) )
cheddar = Chat(pairs, reflections) def ask(self, question):
question = question.lower()
for i in self.questions:
result = re.match(i[0], question)
if result:
print(random.choice(i[1]))
return
print("\nNapisz 'quit' aby zakonczyc.")
print("-" * 70)
print("Witaj. Jak sie dzisiaj czujesz?") ela = Elizabeth()
cheddar.converse()
print("Cześć, o czym chcesz porozmawiać?")
while True:
question = input().lower()
if question == "cześć" or question == "do widzenia":
print("Do widzenia")
break
ela.ask(question)