Source code for

# Natural Language Toolkit: Chatbots
# Copyright (C) 2001-2017 NLTK Project
# Authors: Steven Bird <>
# URL: <>
# For license information, see LICENSE.TXT

# Based on an Eliza implementation by Joe Strout <>,
# Jeff Epler <> and Jez Higgins <>.

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 __future__ import print_function

from import Chat
from import eliza_chat
from import iesha_chat
from import rude_chat
from import suntsu_chat
from 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)')]

[docs]def chatbots(): import sys 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: print('\nEnter a number in the range 1-%d: ' % botcount, end=' ') choice = sys.stdin.readline().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()