使用 Python 构建聊天机器人
介绍
对话式NLP或自然语言处理通过聊天机器人在文本分析中发挥着重要作用。聊天机器人是一种基于人工智能的工具,旨在用人类的母语与他们交谈。这些聊天机器人在各个行业都很受欢迎,被认为是自然语言处理最有用的应用之一。
在本指南中,您将学习使用 Python 构建您的第一个聊天机器人。
基线库
您将在本指南中使用nltk库。NLTK 代表自然语言工具包,是处理文本数据的领先 Python 库。下面的第一行代码导入了该库,而第二行使用nltk.chat模块导入所需的实用程序。
      import nltk
from nltk.chat.util import Chat, reflections
    
下面的代码显示实用程序Chat是一个提供构建聊天机器人逻辑的类。
      print(Chat)
    
输出:
      <class 'nltk.chat.util.Chat'>
    
您上面导入的另一个文件是Reflections,它是包含一组输入文本及其对应输出值的字典。您可以使用下面的代码检查该字典。这是一个可选字典,您可以按照与下面相同的格式创建自己的字典。
      reflections
    
输出:
      {'i am': 'you are',
     'i was': 'you were',
     'i': 'you',
     "i'm": 'you are',
     "i'd": 'you would',
     "i've": 'you have',
     "i'll": 'you will',
     'my': 'your',
     'you are': 'I am',
     'you were': 'I was',
     "you've": 'I have',
     "you'll": 'I will',
     'your': 'my',
     'yours': 'mine',
     'you': 'me',
     'me': 'you'}
    
构建聊天机器人
第一步是创建用于训练聊天机器人的规则。下面的代码行创建了一组简单的规则。列表的第一个元素是用户输入,而第二个元素是来自机器人的响应。在 set_pairs 对象中创建了几个这样的列表。
      set_pairs = [
    [
        r"my name is (.*)",
        ["Hello %1, How are you doing today ?",]
    ],
    [
        r"hi|hey|hello",
        ["Hello", "Hey there",]
    ], 
    [
        r"what is your name?",
        ["You can call me a chatbot ?",]
    ],
    [
        r"how are you ?",
        ["I am fine, thank you! How can i help you?",]
    ],
    [
        r"I am fine, thank you",
        ["great to hear that, how can i help you?",]
    ],
    [
        r"how can i help you? ",
        ["i am looking for online guides and courses to learn data science, can you suggest?", "i am looking for data science training platforms",]
    ],
    [
        r"i'm (.*) doing good",
        ["That's great to hear","How can i help you?:)",]
    ],
    [
        r"i am looking for online guides and courses to learn data science, can you suggest?",
        ["Pluralsight is a great option to learn data science. You can check their website",]
    ],
    [
        r"thanks for the suggestion. do they have great authors and instructors?",
        ["Yes, they have the world class best authors, that is their strength;)",]
    ],
    [
        r"(.*) thank you so much, that was helpful",
        ["Iam happy to help", "No problem, you're welcome",]
    ],
    [
        r"quit",
    ["Bye, take care. See you soon :) ","It was nice talking to you. See you soon :)"]
],
]
    
创建上述规则对后,我们使用以下代码定义聊天机器人。代码很简单,每次调用函数时都会打印一条消息。
      def chatbot():
        print("Hi, I'm the chatbot you built") 
chatbot()
    
输出:
      Hi, I'm the chatbot you built
    
下一步是实例化包含对和反射的Chat()函数。
      chat = Chat(set_pairs, reflections)
print(chat)
    
输出:
      <nltk.chat.util.Chat object at 0x7f49c76e3be0>
    
您已经创建了一个简单的基于规则的聊天机器人,最后一步是发起对话。这是使用下面的代码完成的,其中 converse ()函数触发对话。
      chat.converse()
if __name__ == "__main__":
    chatbot()
    
上面的代码将在您的笔记本中生成以下聊天框,如下图所示。
输出:
您已准备好与聊天机器人进行交互。首先在框中输入简单的问候语“hi”,然后您将收到来自机器人的响应“Hello”,如下图所示。
输出:
您可以继续与聊天机器人交谈,交谈结束后退出对话,如下图所示。
输出:
结论
在本指南中,您学习了如何使用 Python 创建一个简单的聊天机器人。您使用简单的规则和强大的nltk库来构建聊天机器人。可以添加更复杂的规则来进一步增强聊天机器人。
要了解有关文本分析和自然语言处理的更多信息,请参阅以下指南。
要了解有关使用 Python 进行数据科学的更多信息,请参阅以下指南。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
 
 
 
 
                                 
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                 
                             
                                     
                                     
                                     
                                     
     
    
 
             
   
        
请先 登录后发表评论 ~