Spaces:
Sleeping
Sleeping
# Natural Language Toolkit: Chatbots | |
# | |
# Copyright (C) 2001-2023 NLTK Project | |
# Authors: Steven Bird <[email protected]> | |
# URL: <https://www.nltk.org/> | |
# For license information, see LICENSE.TXT | |
# Based on an Eliza implementation by Joe Strout <[email protected]>, | |
# Jeff Epler <[email protected]> and Jez Higgins <[email protected]>. | |
""" | |
A class for simple chatbots. These perform simple pattern matching on sentences | |
typed by users, and respond with automatically generated sentences. | |
These chatbots may not work using the windows command line or the | |
windows IDLE GUI. | |
""" | |
from nltk.chat.eliza import eliza_chat | |
from nltk.chat.iesha import iesha_chat | |
from nltk.chat.rude import rude_chat | |
from nltk.chat.suntsu import suntsu_chat | |
from nltk.chat.util import Chat | |
from nltk.chat.zen import zen_chat | |
bots = [ | |
(eliza_chat, "Eliza (psycho-babble)"), | |
(iesha_chat, "Iesha (teen anime junky)"), | |
(rude_chat, "Rude (abusive bot)"), | |
(suntsu_chat, "Suntsu (Chinese sayings)"), | |
(zen_chat, "Zen (gems of wisdom)"), | |
] | |
def chatbots(): | |
print("Which chatbot would you like to talk to?") | |
botcount = len(bots) | |
for i in range(botcount): | |
print(" %d: %s" % (i + 1, bots[i][1])) | |
while True: | |
choice = input(f"\nEnter a number in the range 1-{botcount}: ").strip() | |
if choice.isdigit() and (int(choice) - 1) in range(botcount): | |
break | |
else: | |
print(" Error: bad chatbot number") | |
chatbot = bots[int(choice) - 1][0] | |
chatbot() | |