Python 聊天机器人:如何正确确定意图?
例如,确定以下意图之间差异的常用技术是什么Python 聊天机器人:如何正确确定意图?,python,chatbot,Python,Chatbot,例如,确定以下意图之间差异的常用技术是什么 现在的温度是多少? 在这种情况下,直接向上响应将是当前温度 现在的温度是22度吗? 在这种情况下,适当的回答是“是”或“否” 我正在构建一个封闭域聊天机器人(例如Siri),我想知道Python中是否有任何技术可以让我了解。我曾经开始编程,试图了解机器人是如何工作的。多么小的世界啊。我几乎不记得我是怎么做的,但让我们假设你根据你的机器人可以读取的事件构建聊天。确定每个事件的答案的一个非常基本的方法是一个包含嵌套行为(理想情况下分为多个方法)的IF-EL
我正在构建一个封闭域聊天机器人(例如Siri),我想知道Python中是否有任何技术可以让我了解。我曾经开始编程,试图了解机器人是如何工作的。多么小的世界啊。我几乎不记得我是怎么做的,但让我们假设你根据你的机器人可以读取的事件构建聊天。确定每个事件的答案的一个非常基本的方法是一个包含嵌套行为(理想情况下分为多个方法)的IF-ELIF内容的庞大列表 然后,您必须对每个具体情况进行如下编码:
def specific_temp_asked(message):
temperature = None
split_message = message.split(" ")
for i in split_message:
try:
int(i)
temperature = i
break
except:
pass
if not temperature == None:
real_temperature = check_temp(somehow)
if real_temperature == temperature:
send_text_to_chat("Yes")
else:
send_text_to_chat("Nope")
最后一点注意:这绝不是最好的方法,但如果您正在学习,我会在不太复杂的情况下完成工作,然后您会慢慢改进代码。检查itI中是否有数字。这只是一个示例。这可能是一个没有任何数字的问题,但它仍然是一个类型2问题。对于堆栈溢出问题来说,这太宽泛了。感谢您抽出时间回答。发帖后,我在Siri上试了一下(不知道Cortana(或其他机器人)的表现如何),但它对这两个问题的回答都是一样的。所以,可能是我想得太多了,也可能不是。一个机器人会给你的答案和你的代码一样精确。我的机器人有2500个可能的答案,然后我就厌倦了。但对于这2500人中的每一个人,它都有一个具体的理由来回答。诀窍是使用关键字。例如,如果检测到“温度”,他会告诉你温度,不管你真正问什么。您还可以存储同一问题的多个答案,并随机选择其中一个。
def specific_temp_asked(message):
temperature = None
split_message = message.split(" ")
for i in split_message:
try:
int(i)
temperature = i
break
except:
pass
if not temperature == None:
real_temperature = check_temp(somehow)
if real_temperature == temperature:
send_text_to_chat("Yes")
else:
send_text_to_chat("Nope")