removed usage of nltk.chat
This commit is contained in:
parent
0c12a2c27b
commit
b79bb0ccf7
233
cheddar.py
233
cheddar.py
@ -1,111 +1,134 @@
|
||||
from nltk.chat.util import Chat
|
||||
import re
|
||||
import random
|
||||
|
||||
# "cheddar" chatbot
|
||||
|
||||
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"
|
||||
}
|
||||
class Elizabeth:
|
||||
questions = ((r'Potrzebuję (.*)',
|
||||
('Czemu potrzebujesz %1?',
|
||||
'Naprawdę pomogłoby, gdybyś miał %1?',
|
||||
'Czy aby na pewno potrzebujesz %1?')),
|
||||
(r'Jestem (.*)',
|
||||
('Czy przyszedłeś dziś do mnie, ponieważ jesteś %1?',
|
||||
'Jak długo jesteś %1?',
|
||||
'Jak czujesz się z byciem %1?')),
|
||||
('Jesteś (.*)',
|
||||
('Czemu to ważne, że jestem %1?',
|
||||
'Chciałbyś, abym nie był %1?',
|
||||
'Mozę to ty uważasz, że jestem %1.',
|
||||
'Mogę być %1, co o tym sądzisz?')),
|
||||
(r'Co (.*)',
|
||||
('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?'
|
||||
)),
|
||||
|
||||
pairs = (
|
||||
(
|
||||
r"Potrzebuje (.*)",
|
||||
(
|
||||
"Dlaczego potrzebujesz %1?",
|
||||
"Czy naprawdę pomogloby Ci zdobycie %1?",
|
||||
"Czy jestes pewien, ze potrzebujesz %1?",
|
||||
),
|
||||
),
|
||||
(
|
||||
r"Dlaczego nie moge (.*)",
|
||||
(
|
||||
"Czy uwazasz, ze powinienes moc %1?",
|
||||
"Gdybys mogl %1, co bys zrobil?",
|
||||
"Nie wiem, dlaczego nie mozesz %1?",
|
||||
"Czy naprawde probowales?",
|
||||
),
|
||||
),
|
||||
(
|
||||
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?",
|
||||
),
|
||||
),
|
||||
)
|
||||
(r'(.*)\\?',
|
||||
('Być może odpowiedź jest w tobie?',
|
||||
'Czemu to TY nie powiesz MI?',
|
||||
"Czemu o to pytasz?")),
|
||||
|
||||
cheddar = Chat(pairs, reflections)
|
||||
(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?')),
|
||||
|
||||
print("\nNapisz 'quit' aby zakonczyc.")
|
||||
print("-" * 70)
|
||||
(
|
||||
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?",
|
||||
))
|
||||
)
|
||||
|
||||
print("Witaj. Jak sie dzisiaj czujesz?")
|
||||
cheddar.converse()
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user