用Python构建简单的聊天机器人

用Python构建简单的聊天机器人

聊天机器人是一种人工智能应用程序,可以模拟人类与人类之间的自然交流。下面是一个简单的聊天机器人示例:

def get_response(user_input):
    user_input = user_input.lower()
    
    if user_input == "你好":
        return "你好!请问有什么可以帮助你的吗?"
    
    if user_input == "谢谢":
        return "不客气,任何时候都乐意帮助!"
    
    if user_input == "再见":
        return "再见,祝你有美好的一天!"
    
    return "抱歉,我无法理解你的问题。"

while True:
    input_text = input("用户:")
    response = get_response(input_text)
    print("机器人:" + response)

这个聊天机器人示例是基于简单的条件判断来实现的。当用户输入某个特定的问题或关键词时,机器人会给出相应的回答。如果用户输入的问题无法被理解,机器人将给出默认的回答。

这只是一个简单的示例,功能有限,可以使用更复杂的自然语言处理技术,构建更智能的聊天机器人。

可以使用Python中流行的自然语言处理库,例如nltk、spacy等。在这里,我们将使用nltk来完成聊天机器人的构建。您需要确保已安装nltk库。若没有安装,在控制台中使用以下命令进行安装:

pip install nltk

【关于安装安装第三方库的更多情况,可参见:https://blog.csdn.net/cnds123/article/details/104393385】

nltk (Natural Language Toolkit) 是一个 Python 自然语言处理工具集,提供了许多用于处理文本数据的方法和函数。

下面给出应用nltk库的聊天机器人源码。

先出应用nltk库的文本界面的聊天机器人源码:

import nltk
import random
from nltk.chat.util import Chat, reflections

#定义响应集合
pairs = pairs =[['你好|您好', ['你好呀!', '嗨,你好!']],
    ['你是谁|您是谁', ['我是一个聊天机器人,您可以在这里问我问题。']],
    ['我该怎么做', ['您可以尝试输入“帮助”或“?”以获取更多信息。']],
    ['再见|bye', ['再见,祝您有一个愉快的一天!']],
    ['谢谢', ['不客气,随时为您效劳!']],
    ['谁创建的你', ['测试者用NLTK库创造了我!']],         
    ['帮助|?', ['您可以问我任何问题,我将尽力回答。']],
    ]

chatbot = Chat(pairs, reflections)

print("嗨!我是一个聊天机器人。如果您需要帮助,请输入“帮助”或“?”")
while True:
    user_input = input("您: ")
    if user_input.lower() in ['再见', '退出']:
        print("聊天机器人: 再见!")
        break
    else:
        print("聊天机器人:", chatbot.respond(user_input))

再给出应用nltk库的图形界面的聊天机器人源码:

import tkinter as tk
import random
from nltk.chat.util import Chat, reflections

class ChatBotUI:
    def __init__(self, master):
        self.master = master
        master.title("ChatBot")

        self.chat_log = tk.Text(master)
        self.chat_log.configure(state='disabled')
        self.chat_log.pack()

        self.user_input = tk.Entry(master)
        self.user_input.pack()

        self.send_button = tk.Button(master, text="Send", command=self.send_message)
        self.send_button.pack()
        
        #定义响应集合
        pairs = [['你好|您好', ['你好呀!', '嗨,你好!']],
                 ['你是谁|您是谁', ['我是一个聊天机器人,您可以在这里问我问题。']],
                 ['我该怎么做', ['您可以尝试输入“帮助”或“?”以获取更多信息。']],
                 ['再见|bye', ['再见,祝您有一个愉快的一天!']],
                 ['谢谢', ['不客气,随时为您效劳!']],
                 ['谁创建的你', ['测试者用NLTK库创造了我!']],         
                 ['帮助|?', ['您可以问我任何问题,我将尽力回答。']],
                ]

        self.chatbot = Chat(pairs, reflections)

    def send_message(self):
        user_input = self.user_input.get()
        response = self.chatbot.respond(user_input)
        self.display_message(user_input, 'user')
        self.display_message(response, 'chatbot')
        self.user_input.delete(0, tk.END)

    def display_message(self, message, sender):
        self.chat_log.configure(state='normal')
        if sender == 'chatbot':
            self.chat_log.insert(tk.END, "机器人: ")
        else:
            self.chat_log.insert(tk.END, "您: ")
        self.chat_log.insert(tk.END, message + '\n')
        self.chat_log.configure(state='disabled')

root = tk.Tk()
my_gui = ChatBotUI(root)
root.mainloop()

猜你喜欢

转载自blog.csdn.net/cnds123/article/details/131235351