123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- # Natural Language Toolkit: Teen Chatbot
- #
- # Copyright (C) 2001-2019 NLTK Project
- # Author: Selina Dennis <sjmd@csse.unimelb.edu.au>
- # URL: <http://nltk.org/>
- # For license information, see LICENSE.TXT
- """
- This chatbot is a tongue-in-cheek take on the average teen
- anime junky that frequents YahooMessenger or MSNM.
- All spelling mistakes and flawed grammar are intentional.
- """
- from __future__ import print_function
- from nltk.chat.util import Chat
- reflections = {
- "am": "r",
- "was": "were",
- "i": "u",
- "i'd": "u'd",
- "i've": "u'v",
- "ive": "u'v",
- "i'll": "u'll",
- "my": "ur",
- "are": "am",
- "you're": "im",
- "you've": "ive",
- "you'll": "i'll",
- "your": "my",
- "yours": "mine",
- "you": "me",
- "u": "me",
- "ur": "my",
- "urs": "mine",
- "me": "u",
- }
- # Note: %1/2/etc are used without spaces prior as the chat bot seems
- # to add a superfluous space when matching.
- pairs = (
- (
- r'I\'m (.*)',
- (
- "ur%1?? that's so cool! kekekekeke ^_^ tell me more!",
- "ur%1? neat!! kekeke >_<",
- ),
- ),
- (
- r'(.*) don\'t you (.*)',
- (
- "u think I can%2??! really?? kekeke \<_\<",
- "what do u mean%2??!",
- "i could if i wanted, don't you think!! kekeke",
- ),
- ),
- (r'ye[as] [iI] (.*)', ("u%1? cool!! how?", "how come u%1??", "u%1? so do i!!")),
- (
- r'do (you|u) (.*)\??',
- ("do i%2? only on tuesdays! kekeke *_*", "i dunno! do u%2??"),
- ),
- (
- r'(.*)\?',
- (
- "man u ask lots of questions!",
- "booooring! how old r u??",
- "boooooring!! ur not very fun",
- ),
- ),
- (
- r'(cos|because) (.*)',
- ("hee! i don't believe u! >_<", "nuh-uh! >_<", "ooooh i agree!"),
- ),
- (
- r'why can\'t [iI] (.*)',
- (
- "i dunno! y u askin me for!",
- "try harder, silly! hee! ^_^",
- "i dunno! but when i can't%1 i jump up and down!",
- ),
- ),
- (
- r'I can\'t (.*)',
- (
- "u can't what??! >_<",
- "that's ok! i can't%1 either! kekekekeke ^_^",
- "try harder, silly! hee! ^&^",
- ),
- ),
- (
- r'(.*) (like|love|watch) anime',
- (
- "omg i love anime!! do u like sailor moon??! ^&^",
- "anime yay! anime rocks sooooo much!",
- "oooh anime! i love anime more than anything!",
- "anime is the bestest evar! evangelion is the best!",
- "hee anime is the best! do you have ur fav??",
- ),
- ),
- (
- r'I (like|love|watch|play) (.*)',
- ("yay! %2 rocks!", "yay! %2 is neat!", "cool! do u like other stuff?? ^_^"),
- ),
- (
- r'anime sucks|(.*) (hate|detest) anime',
- (
- "ur a liar! i'm not gonna talk to u nemore if u h8 anime *;*",
- "no way! anime is the best ever!",
- "nuh-uh, anime is the best!",
- ),
- ),
- (
- r'(are|r) (you|u) (.*)',
- ("am i%1??! how come u ask that!", "maybe! y shud i tell u?? kekeke >_>"),
- ),
- (
- r'what (.*)',
- ("hee u think im gonna tell u? .v.", "booooooooring! ask me somethin else!"),
- ),
- (r'how (.*)', ("not tellin!! kekekekekeke ^_^",)),
- (r'(hi|hello|hey) (.*)', ("hi!!! how r u!!",)),
- (
- r'quit',
- (
- "mom says i have to go eat dinner now :,( bye!!",
- "awww u have to go?? see u next time!!",
- "how to see u again soon! ^_^",
- ),
- ),
- (
- r'(.*)',
- (
- "ur funny! kekeke",
- "boooooring! talk about something else! tell me wat u like!",
- "do u like anime??",
- "do u watch anime? i like sailor moon! ^_^",
- "i wish i was a kitty!! kekekeke ^_^",
- ),
- ),
- )
- iesha_chatbot = Chat(pairs, reflections)
- def iesha_chat():
- print("Iesha the TeenBoT\n---------")
- print("Talk to the program by typing in plain English, using normal upper-")
- print('and lower-case letters and punctuation. Enter "quit" when done.')
- print('=' * 72)
- print("hi!! i'm iesha! who r u??!")
- iesha_chatbot.converse()
- def demo():
- iesha_chat()
- if __name__ == "__main__":
- demo()
|