test commit #1

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

View File

@ -1,109 +1,134 @@
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 (.*)',
r"Nie moge (.*)", ('A jak myślisz?',
( 'Może sam odpowiedz sobie na to pytanie',
"Skad wiesz, ze nie mozesz %1?", "Jakie jest twoje PRAWDZIWE pytanie")),
"Byc moze moglbys %1, gdybys sprobowal.", (r'Ponieważ (.*)',
"Co musialbys zrobic zeby %1?", ('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 (.*)',
r"Jestem (.*)", ('Nie masz za co przepraszać',
( 'Jakie uczucia masz w sobie, gdy przepraszasz?')),
"Czy rozmawiasz ze mna poniewaz jestes %1?", (r'Myślę, że (.*)',
"Od jak dawna jestes %1?", ('Jesteś niepewny co do %1?', 'Naprawdę tak myślisz?', "Ale nie jesteś pewien czy %1?")),
"Jak sie czujesz z tym, ze jestes %1?", (r'Dlaczego (.*)',
"Jak sie czujesz bedac %1?", ("Czemu to ty nie powiesz mi dlaczego %1?", 'CZemu myślisz, że %1?')),
"Dlaczego mowisz mi, ze jestes %1?", (r'Chcę (.*)',
"Dlaczego uwazasz, ze jestes %1?", ('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"Czy jestes (.*)", (r'(.*)matka(.*)',
( ('Powiedz mi więcej o swojej matce.',
"Dlaczego ma to znaczenie czy jestem %1?", 'Jak wyglądałą relacja z twoją matką?',
"Czy wolabys gdybym nie byl %1?", 'Jakie są twoje uczucia dziś?')),
"Byc moze uwazasz, ze jestem %1.", (r'(.*) ojciec(.*)',
"Byc moze jestem %1, co o tym sadzisz?", ('Powiedz mi więcej o swoim ojcu.',
), 'Jak twój ojciec sprawia, że się czujesz?'
), )),
(
r"Co (.*)",
(
"Dlaczego pytasz?",
"W jaki sposob pomoglaby ci odpowiedz na to pytanie?",
"Co o tym myslisz?",
),
),
(
r"Jak (.*)",
(
"Jak sadzisz?",
"Byc moze potrafisz odpowiedziec na swoje wlasne pytanie.",
"O co tak naprawde pytasz?",
),
),
(
r"Poniewaz (.*)",
(
"Czy to jest prawdziwy powod?",
"Jakie inne powody przychodza Ci na mysl?",
"Czy ten powod odnosi sie do czegos innego?",
"Jesli %1, to co jeszcze musi byc prawda?",
),
),
)
cheddar = Chat(pairs, reflections) (r'(.*)\\?',
('Być może odpowiedź jest w tobie?',
'Czemu to TY nie powiesz MI?',
"Czemu o to pytasz?")),
print("\nNapisz 'quit' aby zakonczyc.") (r'(.*)',
print("-" * 70) ('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?')),
print("Witaj. Jak sie dzisiaj czujesz?") (
cheddar.converse() r"Nie moge (.*)",
(
"Skad wiesz, ze nie mozesz %1?",
"Byc moze moglbys %1, gdybys sprobowal.",
"Co musialbys zrobic zeby %1?",
)),
(
r"Jestem (.*)",
(
"Czy rozmawiasz ze mna poniewaz jestes %1?",
"Od jak dawna jestes %1?",
"Jak sie czujesz z tym, ze jestes %1?",
"Jak sie czujesz bedac %1?",
"Dlaczego mowisz mi, ze jestes %1?",
"Dlaczego uwazasz, ze jestes %1?",
)),
(
r"Czy jestes (.*)",
(
"Dlaczego ma to znaczenie czy jestem %1?",
"Czy wolabys gdybym nie byl %1?",
"Byc moze uwazasz, ze jestem %1.",
"Byc moze jestem %1, co o tym sadzisz?",
)),
(
r"Co (.*)",
(
"Dlaczego pytasz?",
"W jaki sposob pomoglaby ci odpowiedz na to pytanie?",
"Co o tym myslisz?",
)),
(
r"Jak (.*)",
(
"Jak sadzisz?",
"Byc moze potrafisz odpowiedziec na swoje wlasne pytanie.",
"O co tak naprawde pytasz?",
)),
(
r"Poniewaz (.*)",
(
"Czy to jest prawdziwy powod?",
"Jakie inne powody przychodza Ci na mysl?",
"Czy ten powod odnosi sie do czegos innego?",
"Jesli %1, to co jeszcze musi byc prawda?",
))
)
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
ela = Elizabeth()
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)