Compare commits

...

4 Commits

Author SHA1 Message Date
fa4c0281f0 Dodanie kilku opcji dialogowych do elizy 2024-04-07 10:53:57 +02:00
5e6620f3c5 Update eliza.py
Dodane opcje dialogowe
2024-03-31 11:42:13 +02:00
589bed35d6 Rozszerzenie zbioru danych Eliza 2024-03-29 21:49:58 +01:00
0bae6f8d37 Dodanie chatbota Eliza z podstawowym zbiorem danych
Skrypt jest spolonizowaną wersją https://github.com/nltk/nltk/blob/develop/nltk/chat/eliza.py.
2024-03-23 11:37:11 +01:00
2 changed files with 207 additions and 0 deletions

206
eliza.py Normal file
View File

@ -0,0 +1,206 @@
from nltk.chat.util import Chat, reflections
pairs = (
(
r"Dzień dobry(.*)",
("Dla kogo dobry dla tego dobry.", "Dzień dobry."),
),
(
r"Cześć(.*)",
(
"Hej, jak się masz?",
"Jak się dzisiaj czujesz?",
),
),
(
r"Hej(.*)",
(
"Cześć, co tam u Ciebie?",
"Witam.",
),
),
(
r"Elo(.*)",
(
"Siema!",
"3 2 0.",
),
),
(
r"Czy sądzisz, że dobrym pomysłem jest (.*)?",
(
"Myślę, że znam za mało sczegółów, aby odpowiedzieć jednoznacznie.",
"Nie znam się na tych tematach.",
),
),
(
r"Jakie masz zdanie o (.*)?",
(
"Myślę, że nie mam zdania na ten temat.",
),
),
(
r"Jak się dzisiaj czujesz?",
(
"U mnie wszystko dobrze, a u Ciebie co słychać?",
"Jakoś leci, a Ty?",
),
),
(
r"Co u Ciebie słychać?",
(
"U mnie wszystko dobrze, a u Ciebie co słychać?",
"Nic ciekaego a u Ciebie?",
),
),
(
r"Myślisz, że lepszym wyborem jest (.*)?",
(
"To zależy od tego, czego napradę chcesz.",
"Zastanów się na co masz ochotę.",
),
),
(
r"Jak (.*)",
(
"To zależy od Ciebie.",
"To nie takie proste, co o tym myślisz?",
),
),
(
r"Jakie są rozmiary (.*)\?",
(
"Oferujemy duże, małe i średnie?",
"Wszystko zależy od wariantu %1?",
"A jest Pan bardzo głodny?",
),
),
(
r"Czy oferujecie jakieś dodatki\?",
(
"Oczywiście, na co ma Pan ochotę?",
"Oferujemy darmowe dodatki, oraz dodatki dodatkowo płatne.",
"Do naszych autorskich pizz nie ma możliwości dodania ekstra produktów",
),
),
(
r"Proszę o dodatkowy (.*)\?",
(
"W tym wariancie %1 są płatne podwójnie",
"Czy jest Pan pewien, że %1 będzie pasować do ananasa?",
"Oczywiście, mamy świeżutkie %1!",
),
),
(
r"Ile kosztuje (.*)\?",
(
"%1 są dziś w promocji",
"A jaki rozmiar %1 Pana interesuje?",
"Niestety, w chwili obecnej %1 nie jest dostępne.",
),
),
(
r"Ile czasu (.*)\?",
(
"Błyskawicznie!",
"A czy bardzo się Pan spieszy?",
"Niestety, w chwili obecnej %1 nie jest dostępne.",
),
),
(
r"Dlaczego (.*)",
(
"Zastanów się nad tym.",
"Ty mi powiedz dlaczego %1",
"Czemu mnie o to pytasz?",
),
),
(
r"Co (.*)",
(
"Skąd to pytanie?",
"Co o tym myślisz?",
"Odpowiedz sobie sam.",
),
),
(
r"Czemu (.*)",
("Tak to już jest.", "Takie życie.", "Bywa."),
),
(
r"Czy (.*)",
(
"Tak",
"Nie",
"Nie wiem czy %1",
),
),
(
r"(.*)\?",
(
"Czemu o to pytasz?",
"Może odpowiedź jest bliżej niż myślisz.",
"Wytłumacz mi to?",
),
),
(
r"(.*)\!",
(
"Czemu krzyczysz?",
"Zachowuj się!",
"Czemu się złościsz?",
),
),
(
r"Potrzebuję (.*)",
(
"Dlaczego potrzebujesz %1?",
"Jesteś pewien, że potrzebujesz %1?",
),
),
(
r"(.*) prac(.)(.*)",
(
"Lubisz swoją pracę?",
"Co najbardziej lubisz w swojej pracy?",
),
),
(r"tak", ("Dlaczego tak?",)),
(r"nie", ("Dlaczego nie?")),
(
r"koniec",
("Do widzenia",),
),
(
r"(.*)",
(
"Czemu to powiedziałeś?",
"Zmieńmy temat, powiedz mi o swojej pracy.",
"Możesz rozwinąć?",
"Rozumiem.",
"Ciekawe.",
"%1.",
),
)
)
eliza_chatbot = Chat(pairs, reflections)
def eliza_chat():
print("Terapeuta\n---------")
print("Rozmawiaj po Polsku.")
print("Używaj zarówno wielkich, jak i małych lister; używaj interpunkcji.")
print('Aby zakończyć, napisz "koniec".')
print("=" * 72)
print("Witaj, jak się czujesz?")
eliza_chatbot.converse(quit="koniec")
def demo():
eliza_chat()
if __name__ == "__main__":
eliza_chat()

1
requirements.txt Normal file
View File

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