SystemyDialogowe/chatbot.py
Łukasz Jędyk 1ca5f097fb small fix
2021-03-21 18:48:33 +01:00

207 lines
5.7 KiB
Python

from nltk.chat.util import Chat, reflections
greetings = [
[
r"(.*)nazywam si(e|ę) (.*)",
[
"Dzień dobry %3, jak się dzisiaj czujesz?",
"Witaj %3, przychodzisz do mnie z jakimś problemem?"
]
],
[
r"(.*)imi(e|ę) (.*)",
[
"Witaj %3, jak się dzisiaj czujesz?",
"Dzień dobry %3, przychodzisz do mnie z jakimś problemem?"
]
],
[
r"wyjdź",
[
"Do widzenia. Dziękuję Ci za rozmowę.",
"Miło się z tobą rozmawiało. Do zobaczenia.",
"Jesteś bardzo mądrym człowiekiem. Mam nadzieję, że jeszcze kiedyś porozmawiamy."
]
]
]
sentences = [
[
r"(.*)czuj(ę|e) si(ę|e) (.*)",
[
"Cieszę się, że czujesz się %4.",
"Dlaczego czujesz się %4?",
"Ja też czuję się %4."
],
],
[
r"(.*)potrzebuj(ę|e) (.*)",
(
"Dlaczego potrzebujesz %3?",
"Czy na pewno pomoże Ci to, że będziesz miał %3?",
"Jesteś pewien, że potrzebujesz %3?"
),
],
[
r"(.*)mam (.*)",
[
"Dobrze wiedzieć, że masz %2.",
"Jesteś pewien, że potrzebujesz %2?",
"Ja niestety nie mam %2. Może mi oddasz swoje?"
],
],
[
r"(.*)myśl(ę|e), że (.*)",
(
"Na prawdę tak myślisz?",
"Czy na pewno tak uważasz?",
"Jesteś pewien, że %3?"
),
],
[
r"(.*)(przyjaciel(a|owi|em|u)) (.*)",
(
"Powiedz mi coś więcej o swoich przyjaciołach.",
"Cieszmy mnie to, że masz przyjaciół. Może teraz opowiesz mi o swojej rodzinie?"
),
],
[
r"(.*)(ojc(iec|a|u|em|ze))|(tat(a|o|y|ą|ę)) (.*)",
(
"Miałem świetny kontakt ze swoim ojcem, ale nie chcę do tego wracać. Może zmieńmy temat.",
"Powiesz mi coś więcej o innych członkach swojej rodziny?"
),
],
[
r"(.*)(mat(ka|ki|ce|kę|ką|ko))|(mam(a|y|ie|ę|ą|o)) (.*)",
(
"Nie miałem dobrego kontaktu ze swoją mamą. Nie mówmy o tym.",
"Temat rodziny mamy załatwiony. Porozmawiajmy o czymś innym."
),
],
[
r"(.*)komputer(.*)",
[
"Na prawdę rozmawiasz o mnie?",
"Myślisz że dziwnie jest rozmawiać z komputerem?",
"Jak się czujesz będąc przy komputerze?",
"Myślisz, że komputery są zagrożeniem?",
"A co na to Twój komputer?"
],
],
[
r"(.*)przepraszam(.*)",
[
"Bardzo często przeprosiny wcale nie są potrzebne.",
"Jak sie czujesz, kiedy za coś przepraszasz?",
"Myślę, że te przeprosiny nie są szczere."
],
],
[
r"(.*)jest (.*)",
(
"Na prawdę myślisz, że jest %2?",
"Bardzo możliwe, że %2.",
"Moim zdaniem nie jest %2."
),
],
[
r"(.*)nigdy (.*)",
(
"Na prawdę ty nigdy %2?",
"Nie wierzę, że ty nigdy %2.",
"A chociałbyś kiedyś %2?"
),
],
[
r"Ty (.*)",
(
"Powinniśmy rozmawiać o Tobie, nie o mnie.",
"Ja nie %1.",
"Co Ciebie to obchodzi, że ja %1?"
),
],
[
r"(Tak|Nie)(.*)",
[
"Jesteś tego pewien?",
"Mógłbyś powiedzieć coś więcej?",
"Wygląda na to, że jesteś tego pewien. W takim razie zmieńmy temat."
],
],
[
r"(.*)",
[
"Nie wiem o co Ci chodzi, ale za komuny było lepiej.",
"Nie rozumiem o czym mówisz. Zmieńmy temat.",
"Bardzo ciężko się z tobą rozmawia. Opowiedz mi coś o swojej rodzinie.",
"Powoli mam Ciebie dosyć. Wróćmy do poważnych tematów."
],
],
]
questions = [
[
r"(.*)co(.*)",
[
"Skąd to pytanie?",
"Dlaczego pytasz?",
"Nie wiem za bardzo co powiedzieć.",
"A co ty o tym myślisz?"
],
],
[
r"(.*)dlaczego(.*)",
[
"Prawdę mówiąc nigdy się nie zastanawiałem.",
"A co ty o tym myślisz?",
"Dlaczego akurat takie pytanie przyszło ci do głowy?"
],
],
[
r"(.*)czemu(.*)",
[
"Odpowiedź na to pytanie nie jest prosta.",
"Nigdy się nad tym nie zastanawiałem."
],
],
[
r"(.*)jak(.*)",
[
"Jak to jak? Normalnie.",
"Jak to tego doszło nie wiem.",
"Nie ważne jak. Ważne kto to zrobił."
],
],
[
r"(.*)ile(.*)",
[
"Jak to ile? Bardzo dużo. Tak dużo, że aż za dużo.",
"Nie wiem ile, ale na pewno wiem kto za to zapłaci."
],
],
[
r"(.*)\?",
[
"Myślę, że sam znasz odpowiedź na to pytanie.",
"Może zastanów się nad tym chwilę.",
"Co ty o tym sądzisz?",
"Nie zadawaj mi takich głupich pytań. Porozmawiajmy o czymś poważnym."
],
],
]
chatbot = Chat(greetings+sentences+questions, reflections)
def chat():
print('-----------------')
print('Chatbot Janusz.')
print('Komunikuj się z programem przy użyciu zdań w języku polskim.')
print('Napisz słowo "wyjdź", aby zakończyć rozmowę.')
print('-----------------')
print('Dzień Dobry. Jestem Janusz. A ty, jak masz na imię?')
chatbot.converse(quit='wyjdź')
if __name__ == "__main__":
chat()