在 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) ?>"
我需要用户输入他的航班号才能为他获取详细信息。
有什么方法可以检测并存储他输入的航班号(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) ?>"