在IBM Watson Assistance用户界面的情况下,如何获得意图价值?

时间:2018-07-28 22:39:01

标签: watson-conversation

如果机器人能够识别,我可以说intents[1].confidence > 0.4,但我不知道实际上是什么意图,那么有没有办法做到这一点?

我可以在带有<? intents ?>对象的 Respond (响应)部分中获得所有意图类型和置信度,但在如果机器人识别出部分中没有帮助。

2 个答案:

答案 0 :(得分:1)

只需使用intents[1].intent即可获得意图。请注意,您正在请求第二个选择,而不是第一个。第一个是intents[0]

如果您要分析复杂的树,则每次查找都可能是一个问题。因此,有两种方法。

  1. 使用意图名称加载上下文变量,然后进行检查。这增加了对象存储中的开销,但使您更具动态性。

  2. 如果这是您想要的第二个选择,并且您不关心第一个选择:在主执行节点上,设置intents[0].intent = intents[1].intent,并为confidence设置相同。这将允许普通查找接管。

有关Watson Assistant中对象的更多详细信息,请参见

https://console.bluemix.net/docs/services/conversation/expression-language.html#access-intent

答案 1 :(得分:0)

我通过这样的过滤器获得了置信度值:

示例:

    <? intents.filter("x", "x.intent == 'name_of_intent'").![confidence].get(0) ?>

说明:

  1. 获取意图数组:intents.filter("x", "x.intent == 'name_of_intent'"),其中“ x”是一个临时变量,name_of_intent是您要获取的意图。

  2. 然后,您返回另一个数组。然后,要获得置信度值,您必须![confidence].get(0)。就是这样。

方法说明: JSONArray.filter(temp, "temp.property operator comparison_value")

所以..就像在文档中一样: https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-methods