Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

# Natural Language Toolkit: Teen Chatbot 

# 

# Copyright (C) 2001-2012 NLTK Project 

# Author: Selina Dennis <sjmd@csse.unimelb.edu.au> 

# URL: <http://www.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 .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()