在我的Watson Assistant应用程序中,我想捕获上下文中的多个实体,还有一个向用户提问的插槽。这是一个例子:
Watson正确检测到:
intent: 'booking', @city:'Toronto', @city:'Boston'
现在我有一个要求预订课程的插槽:
此时,上下文仅具有@city实体的第一个值,即多伦多。我从谷歌搜索中了解到我可以访问@city [0]和@city 1。我尝试通过执行以下操作在上下文中捕获它,但我得到的值是None。
我如何正确捕捉两个城市@city:多伦多,@城市:波士顿,同时实体@class:经济?
答案 0 :(得分:1)
插槽是智能的 - 当存在多个相同类型的实体并且更多插槽与相同类型的实体匹配时,则当插槽与第一实体匹配时,它将被"吃掉"并且不可用于其他插槽 - 因此匹配相同实体类型的下一个插槽将匹配相同类型的任何其他实体。要实现您想要的功能,只需按以下方式定义插槽(因此它们只与@city
实体匹配)。
答案 1 :(得分:1)
请重新访问此内容,因为Watson Assistant进行了更改,使此操作变得更容易。
1。创建两个实体。 @fromCity
和toCity
。
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
。这将创建上下文实体。
现在,当它训练时,它将理解句子上下文中的实体。它还将了解您尚未接受过培训的位置。