在 IBM Watson Conversation 中检测实体中的数字

Detect a number in entity in IBM Watson Conversation

我需要用户输入他的航班号才能为他获取详细信息。
有什么方法可以检测并存储他输入的航班号(3-4位数字+单词)吗?
我知道我可以创建一个实体来存储用户输入的某些部分,但似乎我必须对要检索的值进行硬编码,这是不切实际的。
那么,有没有什么选项可以让watson自动检测用户输入的一部分(不限于数字)。

在您的条件部分,您可以输入以下内容。

input.text.matches('.*?[0-9]{3,4}.*?')

对于您的输出区域,进入高级模式并执行以下操作。

{
    "output": {
        "text": "You typed a 3-4 digit number. I stored it in Context variable 'found'"
    },
    "context": {
        "found": "<? input.text ?>"
    }
}

然后您可以在代码中查询上下文变量 found 以对其执行更复杂的操作。


此回答后对话已更新。您现在可以使用 input.text.extract() 而不仅仅是 input.text

像这样:

"found": "<? input.text.extract('.*?([0-9]{3,4}).*?',1) ?>"