在ibm watson对话中,如何将某个单词后的字符串提取到上下文变量中?

时间:2018-02-21 10:17:13

标签: ibm-watson watson-conversation watson-dialog

例如"给我看埃菲尔铁塔的图像" ...所以我希望埃菲尔铁塔存储在变量中。这就是我想要""之后的任何一个词。要存储。这该怎么做? 。提前谢谢。

2 个答案:

答案 0 :(得分:1)

这样做的简单方法是创建一个包含像艾菲尔铁塔这样的值的实体。然后,您可以将其存储在任何上下文变量中。

{
  "context": {
    "xyz":"@Place"
  },
  "output": {}
}

这里Place是你的实体。你可以在任何地方使用你的上下文变量。

答案 1 :(得分:0)

您可以使用正则表达式从用户输入中捕获实体值。要在 之后捕获一两个单词,请使用of ([a-z]+\s*[a-z]+)作为正则表达式。正则表达式在WCS中称为模式。以下是定义的外观:

entity recognition using regular expressions

然后使用以下方法将用户所说的内容保存到上下文变量中:

{
  "context": {
    "thing": "<? @thing.groups[1] ?>"
  }
}

要测试它,您可以在答案中使用上下文变量,例如:

{
  "output": {
    "text": {
      "values": [
        "Getting a picture of $thing"
      ]
    }
  }
}

可在以下网址找到更多信息:https://console.bluemix.net/docs/services/conversation/entities.html#defining-entities