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 BigInsights (IBM Hadoop) 与 IBM Watson