在询问插槽后如何在IBM watson助手中捕获一个实体的多个值?

时间:2018-04-28 03:01:08

标签: watson-conversation watson-assistant

在我的Watson Assistant应用程序中,我想捕获上下文中的多个实体,还有一个向用户提问的插槽。这是一个例子:

  • 网友:我想从多伦多飞往波士顿

Watson正确检测到:

intent: 'booking', @city:'Toronto', @city:'Boston'

现在我有一个要求预订课程的插槽:

  • Watson(Slot):你想上哪一堂课?
  • 用户:经济

此时,上下文仅具有@city实体的第一个值,即多伦多。我从谷歌搜索中了解到我可以访问@city [0]和@city 1。我尝试通过执行以下操作在上下文中捕获它,但我得到的值是None。

enter image description here

我如何正确捕捉两个城市@city:多伦多,@城市:波士顿,同时实体@class:经济?

2 个答案:

答案 0 :(得分:1)

插槽是智能的 - 当存在多个相同类型的实体并且更多插槽与相同类型的实体匹配时,则当插槽与第一实体匹配时,它将被"吃掉"并且不可用于其他插槽 - 因此匹配相同实体类型的下一个插槽将匹配相同类型的任何其他实体。要实现您想要的功能,只需按以下方式定义插槽(因此它们只与@city实体匹配)。

enter image description here

答案 1 :(得分:1)

请重新访问此内容,因为Watson Assistant进行了更改,使此操作变得更容易。

1。创建两个实体。 @fromCitytoCity

2。用相同的值填充每个实体。地点名称。

3。用以下问题创建您的意图。

I want to fly from Toronto to Boston
I have to get to Boston from Toronto ASAP. 
I want to get a flight to New York
I'm in Texas and need to fly to San Diego

4。在“意图”页面上,选择每个城市并将其标记为@fromCity@toCity。这将创建上下文实体。

enter image description here

现在,当它训练时,它将理解句子上下文中的实体。它还将了解您尚未接受过培训的位置。

More detailed example here