from nltk.chat.util import Chat
# 修改反射字典:使用标准英语替换网络用语
reflections = {
"am": "are", # 原"r"改为"are"
"was": "were",
"i": "you", # 原"u"改为"you"
"i'd": "you'd",
"i've": "you've",
"ive": "you've",
"i'll": "you'll",
"my": "your", # 原"ur"改为"your"
"are": "am",
"you're": "I'm",
"you've": "I've",
"you'll": "I'll",
"your": "my",
"yours": "mine",
"you": "me",
"me": "you",
# 删除非标准缩写:ur, urs, u
}
# 重写对话模板:移除网络用语和夸张表达
pairs = (
(
r"I\'m (.*)",
(
"You're %1? That's interesting. Tell me more.", # 移除"kekekeke"和表情
"You're %1? That sounds nice.", # 简化表达
),
),
(
r"(.*) don\'t you (.*)",
(
"Why do you think I can't %2?", # 改为完整疑问句
"What makes you say I can't %2?",
"I probably could if I wanted to, don't you think?"
),
),
(r"ye[as] [iI] (.*)", ("You %1? How did that happen?", "Why did you %1?", "I %1 too.")),
(
r"do (you|u) (.*)\??",
("Do I %2? Sometimes, depending on the situation.", "I'm not sure. Do you %2?"),
),
(
r"(.*)\?",
(
"I'm curious why you asked that.", # 移除负面词汇"boring"
"That's an interesting question.",
),
),
(
r"(cos|because) (.*)",
("I see, that makes sense.", "That's a good reason.", "I understand."),
),
(
r"why can\'t [iI] (.*)",
(
"I'm not sure why you can't %1.",
"Have you tried different approaches?",
"When I can't do something, I usually practice more."
),
),
(
r"I can\'t (.*)",
(
"Why do you think you can't %1?",
"That's okay, we all have limitations.",
"Maybe with practice you could do it."
),
),
(
r"(.*) (like|love|watch) anime",
(
"I enjoy anime too. Do you have a favorite series?", # 移除夸张表达
"Anime is an interesting art form.",
"What do you like most about anime?"
),
),
(
r"I (like|love|watch|play) (.*)",
("That's nice. %2 can be enjoyable.", "Do you have other interests too?"),
),
(
r"anime sucks|(.*) (hate|detest) anime",
(
"Everyone has different tastes in entertainment.",
"What kind of shows do you prefer instead?",
),
),
(
r"(are|r) (you|u) (.*)",
("Why do you ask if I'm %3?", "What makes you wonder about that?"),
),
(
r"what (.*)",
("I'm not sure about that.", "Could you tell me more about your question?"),
),
(r"how (.*)", ("I'd prefer to talk about something else.",)),
(r"(hi|hello|hey) (.*)", ("Hello! How are you today?",)),
(
r"quit",
(
"Goodbye! It was nice talking with you.", # 移除戏剧化表达
"Take care. Hope we can chat again sometime.",
),
),
(
r"(.*)",
(
"Could you tell me more about that?",
"What are your thoughts on this topic?",
"Do you enjoy any particular hobbies?",
"I'm interested in your perspective."
),
),
)
iesha_chatbot = Chat(pairs, reflections)
def iesha_chat():
print("Iesha the Normal Chatbot\n---------") # 修改标题
print("Talk to the program by typing in plain English.")
print('Enter "quit" when done.')
print("=" * 72)
print("Hello! I'm Iesha. What's your name?") # 标准化问候语
iesha_chatbot.converse()
# 其余代码保持不变...
把她的对话模板变得更复杂