为意图分配权重

时间:2017-12-01 00:34:53

标签: ibm-cloud ibm-watson watson-conversation

我刚刚开始使用Watson Conversation,我遇到了以下问题。

我对#greetings有一般意图(你好,嗨,问候....)和#general-issues的另一个意图(我有问题,我有问题,东西不能用,等等.... )。如果用户说:“你好,我的产品有问题。”,它与#greetings意图匹配并回复,但在这种情况下,我想匹配#general-issue intent。

根据:https://console.bluemix.net/docs/services/conversation/dialog-overview.html#dialog-overview

我希望首先匹配列表顶部的节点,所以我在对话树的底部有#greetings节点,以便有机会首先匹配“更高权重”节点,但它似乎每次都不起作用。

在#general中重复#greeting意图发布这里唯一的解决方案吗?

2 个答案:

答案 0 :(得分:3)

因此,根据我的经验尝试帮助您,您可以使用intents[0].confidence作为您的青睐。

例如

enter image description here

在我的示例中,我创建了一个条件:

intents[0].confidence > 0.75

因此,如果用户为#greetings Intent训练有素的示例输入非常类似的内容,Watson就会识别此意图。

如你所见,效果很好:

enter image description here

答案 1 :(得分:2)

因此,您可以采取另外两种方法。

将主题视为污染。

在构建会话系统时,了解最终用户实际说的内容非常重要。所以收集真实用户的问题。

你会发现没有多少人会说问候和问题。我个人没有完成我已经完成的项目的统计机会,但至少有一些轶事,我没有经常看到它。

了解这一点,您可以尝试从您的意图中删除主题/聊天聊天。因为它没有完全反映您想要训练的域名。

要解决此问题,您可以使用off topic / chit-chat创建更详细的第二个工作区。如果您没有在主工作区上获得好评,您可以呼叫第二个工作区。您可以通过向主工作区中的计数器示例添加chit-chat来改进这一点。

您还可以通过简单地对用户的初始响应进行措辞来缓解此问题。例如,如果您的初始响应是问候语,请让系统提出问题。或者让它进行谈话,其中hello变得多余。

检测可能的复合意图。

目前,只有在应用层才能轻松实现。

alternate_intents设置为true将返回前10个意图及其信心。

在进一步说明之前,如果最高意图< 0.2那么它需要更多的培训(所以不需要继续)。

如果> 0.2你可以在图表上映射这些,你可以直观地看出前两个意图。例如:

graph image

要让您的应用程序看到这一点,您可以使用k-means算法创建两个桶(k = 2)。这将是相关和无关紧要的。

一旦您看到更多相关的内容,您就可以采取措施忽略闲聊/偏离主题。

还有更多细节,sample code here