3

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

  • 用户:我想从多伦多飞到波士顿

Watson 正确检测到:

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

现在我有一个要求预订课程的位置:

  • Watson(Slot):你喜欢哪一门课?
  • 用户:经济

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

在此处输入图像描述

如何正确捕获 @city:Toronto、@city:Boston 和实体 @class:economy 两个城市?

4

2 回答 2

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。这会创建上下文实体。

在此处输入图像描述

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

更详细的例子在这里

于 2018-08-08T16:11:53.380 回答
1

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

在此处输入图像描述

于 2018-04-30T09:32:40.747 回答