使用 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 进行数据科学的更多信息,请参阅以下指南。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~