IBM Watson Slots 不接受 0

Posted

技术标签:

【中文标题】IBM Watson Slots 不接受 0【英文标题】:IBM Watson Slots won't accept 0 【发布时间】:2017-12-31 08:11:32 【问题描述】:

我正在尝试 IBM Watson Conversations 中的插槽功能,但遇到了一个我不知道如何解决的问题。

我有一个用例从用户那里收集大量信息,因此使用 Slots 功能很有意义。不幸的是,当我使用@sys-number 添加一个插槽时,系统将不接受 0 作为有效输入。这个槽实际上是必需的,但 0 是一个有效值。

任何人都知道如何获得所需的@sys-number 类型的 Slot,它接受 0 作为值?

【问题讨论】:

在无槽测试时,服务是否将0 识别为@sys-number?就我而言,确实如此。 是的,它确实以@sys-number 的形式接收0,但似乎不接受它来满足空缺。 我认为这个问题已经得到解答。请查看***.com/questions/43472182/… 这是不同的,因为它指的是前导零,也与插槽功能无关。我在发布之前进行了搜索:) 这似乎不同,因为链接的答案是针对前面的零。这里是关于插槽相关的流程。零似乎被检测为数字,但槽流没有相应的反应。 【参考方案1】:

我在识别插槽中的零值时遇到了类似的问题,system entity documentation 没有很好地解释它(至少对我来说)。

进一步详细说明上面 Michal 的回答:

    点击“编辑槽”选项(齿轮图标) 将槽条件的“检查”属性设置为entities['sys-number']

    点击编辑槽模态菜单选项(角落里的三个气泡) 打开 JSON 编辑器 将上下文变量值更改为"<?entities['sys-number'].value ?>"


结果:

【讨论】:

【参考方案2】:

条件@sys-number 实际上是条件entities['sys-number'].value 的简写语法。当发送0 时,条件被评估为false,因为0 被Watson Conversation Service 中的表达式语言评估程序视为false。现在,在这种情况下,这不是所需的行为。为了防止这种情况发生,可以在每次在输入中识别出@sys-number 实体时返回true 的条件下使用entities['sys-number']

当在槽中使用它时,可能想要编辑存储在上下文变量中的内容,因为更改条件也会更改存储在变量中的内容。这可以通过 JSON 编辑器完成 - 单击插槽规范旁边的配置插槽齿轮,然后在打开的窗口中单击三个点,打开 JSON 编辑器,然后更改实际存储在由插槽更新的上下文变量中的内容。

这是system entity section in Watson Conversation Service documentation 的链接。

【讨论】:

感谢 Michal,确认在该插槽的 JSON 编辑器中使用 entities['sys-number'] 的插槽条件和设置为 @sys-number 的上下文变量。

以上是关于IBM Watson Slots 不接受 0的主要内容,如果未能解决你的问题,请参考以下文章

IBM Watson 文档转换不起作用

无法在 IBM Watson Studio 中打开资产

IBM Watson启示录:AI不应该仅仅是炫技

IBM BigInsights (IBM Hadoop) 与 IBM Watson

在IBM Watson Conversation中标识没有任何实体的输入文本

IBM Watson 与 Amazon Lex(聊天机器人)