在如果机器人能够识别,我可以说intents[1].confidence > 0.4
,但我不知道实际上是什么意图,那么有没有办法做到这一点?
我可以在带有<? intents ?>
对象的 Respond (响应)部分中获得所有意图类型和置信度,但在如果机器人识别出部分中没有帮助。
答案 0 :(得分:1)
只需使用intents[1].intent
即可获得意图。请注意,您正在请求第二个选择,而不是第一个。第一个是intents[0]
。
如果您要分析复杂的树,则每次查找都可能是一个问题。因此,有两种方法。
使用意图名称加载上下文变量,然后进行检查。这增加了对象存储中的开销,但使您更具动态性。
如果这是您想要的第二个选择,并且您不关心第一个选择:在主执行节点上,设置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) ?>
说明:
获取意图数组:intents.filter("x", "x.intent == 'name_of_intent'")
,其中“ x”是一个临时变量,name_of_intent
是您要获取的意图。
然后,您返回另一个数组。然后,要获得置信度值,您必须![confidence].get(0)
。就是这样。
方法说明:
JSONArray.filter(temp, "temp.property operator comparison_value")
所以..就像在文档中一样: https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-methods