一直都在想着如何构建一个框架较为完善的机器聊天系统,对机器聊天来说,已经是很长时间的应用了,通过里面的功能,你能够思考,你真正需要的是怎么样的一个系统,一个怎么样的系统才算是较为完善,适合扩展的功能,比如我们需要查询时间,又能够查询天气,甚至能够讲点笑话,这样的一个系统,如何才能让他具有扩展型,找了很多的框架,之前也看过ChatterBot的代码,但没有认真的去想框架的事情,最近发现ChatterBot的框架还不错。
最简单的机器人
一开始不用想得太多,首先我们只要教会机器人会说话就可以,最简单的聊天机器人是这样的,我们教会他一段话,训练了以后,会根据我们所教的,来跟我们聊天。
安装ChatterBot
pip install chatterbot
如何使用chatterbot来实现一个最简单的机器人呢?
ChatterBot实现对话
我们需要准备一段对话,试试,我们用这段对话来训练机器人,训练完以后我们就能够跟机器聊天了。
# -*- coding: utf-8 -*-
from chatterbot import ChatBot
# Create a new chat bot named Charlie
chatbot = ChatBot(
'Charlie',
trainer='chatterbot.trainers.ListTrainer'
)
chatbot.train([
"Hi, can I help you?",
"Sure, I'd to book a flight to Iceland.",
"Your flight has been booked.",
"and you."
])
# Get a response to the input text 'How are you?'
response = chatbot.get_response('I would like to book a flight.')
print(response)
chatbot.train后面的数组就是我们训练的对话,训练完以后,用了一句跟对话相识的句子,看看机器人会回答什么?
运行完程序后,机器人回答如下:
Your flight has been booked.
机器人,读到了I would like to book a flight后,机器人寻找我们已经训练句子,找到了最相近的一句话(Sure, I’d to book a flight to Iceland.),通过这句话,找到回答的句子(Your flight has been booked.),当然这种最靠近的方式,并不能百分百的找到准确的回答,对于聊天,也许这样就足够了。