【问题标题】:IBM Watson Assistant: Chatbot Entity Confusion over regular expression 2IBM Watson Assistant:聊天机器人实体混淆正则表达式 2
【发布时间】:2019-02-24 16:32:36
【问题描述】:

我创建了一个名为 @material_number 的实体,该实体有 3 个值,下面提供了它们各自的模式:

num1 与模式 (\d{3}\.){1}\d{3}

num2 与模式 (\d{3}\.){2}\d{3}

num3,模式为(\d{3}\.){3}\d{3}

在对话节点中,如果机器人识别出 @material_number,它将提供的用户输入存储在上下文变量 $materialnumber 下,然后响应“哦,材料编号是$materialnumber"。

问题是当用户的输入属于 num2num3 的值时,机器人只存储提供的前 6 位数字。例如,当输入为 123.123.123.123123.123.123 时,机器人只存储前六位数字(中间用点隔开)并提示回“哦,材料编号为 123.123"。

通过使用 JSON 编辑器,应该可以克服这种困惑。

【问题讨论】:

  • 会不会有更多的模式(num4, num5, ...)?您是在寻找特定的解决方案还是更通用的解决方案?
  • 对于这个特定的实体,不会有更多的模式,先生!

标签: ibm-cloud chatbot ibm-watson watson-conversation


【解决方案1】:

类似于this answer中建议的解决方案,可以嵌套ternary operators

{
  "context": {
    "number1": "<? @number1:mat3 ? entities.number1[2].literal : @number1:mat2 ? entities.number1[1].literal : entities.number1[0].literal ?>"
  }
}

【讨论】:

  • 你是个天才!我感谢您的所有努力,先生。我还问了一个标题为“IBM Watson Chatbot:处理多个实体”的新问题。如果您有时间能帮我解决这个问题,我将不胜感激。
猜你喜欢
  • 2019-02-22
  • 2019-02-15
  • 1970-01-01
  • 2019-08-31
  • 2019-01-13
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
相关资源
最近更新 更多