如何使用IBM Watson Assistant检测多个意图?

时间:2018-08-02 15:42:26

标签: ibm-cloud watson-conversation

IBM Watson对话/助手服务可以在一个句子中检测到多个意图吗?

输入示例:

  

播放音乐并打开灯光

  1. 意图1是#Turn_on
  2. 意图2是#Play

==>两种意图的答案都必须同时:播放音乐和打开灯光

如果是,该怎么办?

3 个答案:

答案 0 :(得分:2)

是的,Watson Assistant会返回所有检测到的意图及其关联的置信度。 See here for the API definition。在Watson Assistant返回的响应中,在用户输入中识别出n个意图数组,并按置信度降序排列。

文档中有一个example on how to deal with multiple intents and their confidence。另请注意,设置alternate_intents允许以较低的置信度返回更多的意图。

答案 1 :(得分:1)

虽然@data_henrik在如何获得其他意图方面是正确的,但这并不意味着第二个问题是相关的。

以下面的示例图为例,我们在其中映射意图与返回的置信度:

enter image description here

在这里您可以清楚地看到人问题中有两个意图。

现在看看这个:

enter image description here

您可以清楚地看到只有一种意图。

那么您如何解决呢?有两种方法。

  1. 您可以检查第一个意图和第二个意图是否在一定百分比之内。这是最容易检测到的方法,但是更诱骗编写代码以选择两个不同的意图。它可能会变得凌乱,有时会出现误报。

  2. 在应用程序层,您可以对意图结果进行K均值。 K-Means将允许您按存储桶对意图进行分组,因此您创建了两个存储桶(K = 2),并且如果第一个存储桶中有多个存储桶,则会遇到一个复合问题。我wrote about this and a sample在我的网站上。

  3. 您可以在Beta中使用一项称为“消歧”的新功能。这使您可以标记意图节点以询问要获取它的问题。然后,如果发现两个问题,它会说“您是不是要……?”,然后用户可以选择。

答案 2 :(得分:0)

此歧义消除功能是否可以在Beta的非生产环境中使用?