chatbot:如何正确判断意图?

时间:2017-08-21 04:57:20

标签: python chatbot

确定以下意图之间差异的常用技巧是什么,例如?

  1. 目前的温度是多少? 在这种情况下,直接响应将是当前温度。

  2. 当前温度是22度吗? 在这种情况下,适当的回答是“是”或“否”。

  3. 我正在构建一个封闭域聊天机器人(例如Siri),我想知道Python中是否有任何我可以阅读的技术。

1 个答案:

答案 0 :(得分:-1)

我曾经尝试了解机器人是如何工作的。多么小的世界。我几乎不记得我是如何做到的,但我们假设您根据机器人可以阅读的事件来构建聊天。确定每个事件的答案的一个非常基本的方法是使用嵌套行为的IF ELIF内容的大量列表(理想地分成方法)。

def handleevent (message, user, date, font, whatever):
    if "current temperature" in message:
        send_text_to_chat("The temperature is 22 degrees")
    elif "is current temperature" in message and "?" in message:
        specific_temp_asked(message)
    elif "potato" in message: # you could do hundred of behaviours, and nested ones.
        if user == "apple":
            send_text_to_chat("Hi apple!")
        else:
            send_text_to_chat("I am a potato bot")
    elif "who am I?" in message: # example using the event data
        send_text_to_chat("you are " + user)
    else:
        send_text_to_chat("Be more specific")

然后你必须对每个具体情况进行编码,如下所示:

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")

最后注意事项:这绝不是最好的方法,但如果您正在学习我将完成工作而不会太复杂,然后您改进代码慢。