【发布时间】:2018-08-02 15:42:25
【问题描述】:
IBM Watson Conversation / Assistant 服务能否在一个句子中检测多个意图?
输入示例:
播放音乐并打开灯
- 意图 1 是#Turn_on
- 意图 2 是#Play
==>两个意图的答案必须是同时的:播放音乐和打开灯
如果是这样,我该怎么做?
【问题讨论】:
标签: ibm-cloud watson-conversation
IBM Watson Conversation / Assistant 服务能否在一个句子中检测多个意图?
输入示例:
播放音乐并打开灯
==>两个意图的答案必须是同时的:播放音乐和打开灯
如果是这样,我该怎么做?
【问题讨论】:
标签: ibm-cloud watson-conversation
是的,Watson Assistant 会返回所有检测到的意图及其相关的置信度。 See here for the API definition。在 Watson Assistant 返回的响应中,有 n 个在用户输入中识别的意图数组,按置信度降序排列。
文档有一个example on how to deal with multiple intents and their confidence。还请注意设置alternate_intents 以允许返回更多且置信度较低的意图。
【讨论】:
虽然@data_henrik 在如何获得其他意图方面是正确的,但这并不意味着第二个问题是相关的。
以下面的示例图为例,我们将意图与返回的置信度进行映射:
在这里您可以清楚地看到persons问题中有两个意图。
现在看看这个:
您可以清楚地看到只有一个意图。
那么你如何解决这个问题?有几种方法。
您可以检查第一个和第二个意图是否在一定的百分比范围内。这是最容易检测到的,但对于选择两个不同意图的代码来说却是个骗子。它可能会变得混乱,有时您会得到误报。
在应用层,您可以对意图结果执行 K-Means。 K-Means 将允许您按存储桶对意图进行分组,因此您创建两个存储桶 (K=2),如果第一个存储桶中有多个,则您有一个复合问题。我在我的网站上wrote about this and a sample。
您可以在 Beta 版中使用一项名为“消歧”的新功能。这使您可以用问题来标记意图节点以要求获得它。然后,如果找到两个问题,它会说“你的意思是?......”并且用户可以选择。
【讨论】:
此消歧功能是否可用于非生产环境中的 Beta 版?
【讨论】: