在这种情况下,只是为了补充和更多的知识点,前几天 IBM Watson Conversation 发布了一个新的 Beta 版本供使用Patterns。
通过@Entities 中的模式,您可以使用正则表达式。
Patterns 字段允许您定义实体值的特定模式。必须在字段中输入模式作为正则表达式。
如本例所示,对于实体“ContactInfo”,电话、电子邮件值的模式可以定义如下:
例子:
localPhone : (\d{3})-(\d{4})
, 例如426-4968
fullUSphone : (\d{3})-(\d{3})-(\d{4})
, 例如800-426-4968
电子邮件:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b
,例如test@gmail.com
通常在使用模式实体时,有必要将与模式匹配的文本存储在对话树中的上下文变量(或操作变量)中。
想象一个情况,您正在向用户询问他们的电子邮件地址。对话节点条件将包含类似于 的条件@contactInfo:email
。为了将用户输入的电子邮件分配为上下文变量,可以使用以下语法来捕获对话节点的响应部分中的模式匹配:
{
"context" : {
"email": "@contactInfo.literal"
}
}
注意:对话服务使用的模式匹配引擎有一些语法限制,这是必要的,以避免在使用其他正则表达式引擎时可能出现的性能问题。值得注意的是,实体模式可能不包含:
- 正重复(例如,x*+)
- 反向引用(例如,\g1)
- 条件分支(例如,(?(cond)true))
了解有关在 Watson Conversation 中定义实体的更多信息(重点在步骤 7 中)