Watson 对话意图和实体是否支持正则表达式?
Does watson conversation intents and entities support regular expressions?
我正在使用我公司想要创建的可能对话来测试 Watson Conversation API。我们正在开发巴西葡萄牙语。鉴于葡萄牙语是一种丰富的语言,有时用户会犯错误,我们希望预测这些可能的错误,主要是使用特殊字符和重音符号。
举个例子,单词produção
可以被用户写成:produção
、producao
、produçao
、producão
。是否可以在意图和实体上使用正则表达式来获得如下图所示的内容?有时我们用另一个词来表达意思,例如 produção final
、produção geral
、produção passada
等
另一个快速问题,是否可以使用 @(producao)
(如图像)之类的东西来创建关于意图与实体值合并的示例?
谢谢
您不能在意图或实体中使用正则表达式,但我认为您仍然应该能够应对变化。
目前在匹配意图时没有内置的拼写错误处理或重音规范化,但是如果句子中有足够的特征可以匹配,偶尔出现的拼写错误应该不会造成问题。对于非常短的示例,为常见错误添加额外的示例可能会有一些价值。
对于实体,您可以包含同义词,我以前用它来包含常见错误。
您不应尝试在您的意图中直接包含对实体的引用。例如,您应该只有 Qual a produção
,而不是 Qual a @(producao)
,以及具有相同意图的其他示例,可能具有不同的实体,或者同一实体的不同同义词。例如,对于 #directions 意图,我可能有以下示例...
- 我怎么开车到酒店?
- 你能告诉我去酒店的路吗?
- 如果我乘火车旅行,最近的车站是哪个
- 我乘坐哪条巴士路线可以到达酒店?
以及@transport 实体的值,如汽车、公共汽车、火车、自行车等。 (抱歉,我不能给出巴西葡萄牙语的例子!)没有必要明确命名你期望在意图中找到的 entity/entities。
最后,您可以在对话节点的条件中使用正则表达式,例如...
input.text.matches( 'produ[cç][aã]o' )
您无需担心重音、复数或拼写错误的单词。 Watson、LUIS、API.AI 等以此为特征,对每个词起作用。例如:
Cartão de Crédito > Kartão de Crédito > cartao de creb伊藤
所有这些都很好!
在这种情况下,只是为了补充和更多知识,几天前IBM Watson Conversation发布了一个新的Beta版本供使用Patterns.
@Entities 中的模式,您可以使用正则表达式。
The Patterns field lets you define specific patterns for an entity
value. A pattern must be entered as a regular expression in the field.
在此示例中,对于实体 "ContactInfo",phone 的模式,电子邮件值可以定义如下:
示例:
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
,例如测试@gmail.com
通常在使用模式实体时,需要将与模式匹配的文本存储在对话树中的上下文变量(或操作变量)中。
想象一下您要向用户询问他们的电子邮件地址的情况。对话节点条件将包含类似于 @contactInfo:email
的条件。为了将用户输入的电子邮件分配为上下文变量,可以使用以下语法来捕获对话节点响应部分中的模式匹配:
{
"context" : {
"email": "@contactInfo.literal"
}
}
Obs.: Conversation 服务使用的模式匹配引擎有一些语法限制,这些限制是必要的,以避免在使用其他正则表达式引擎时可能出现的性能问题.值得注意的是,实体模式可能不包含:
- 正重复(例如,x*+)
- 反向引用(例如 \g1)
- 条件分支(例如,(?(cond)true))
在 Watson Conversation 中查看有关 Defining Entities 的更多信息(重点在第 7 步)
我正在使用我公司想要创建的可能对话来测试 Watson Conversation API。我们正在开发巴西葡萄牙语。鉴于葡萄牙语是一种丰富的语言,有时用户会犯错误,我们希望预测这些可能的错误,主要是使用特殊字符和重音符号。
举个例子,单词produção
可以被用户写成:produção
、producao
、produçao
、producão
。是否可以在意图和实体上使用正则表达式来获得如下图所示的内容?有时我们用另一个词来表达意思,例如 produção final
、produção geral
、produção passada
等
另一个快速问题,是否可以使用 @(producao)
(如图像)之类的东西来创建关于意图与实体值合并的示例?
谢谢
您不能在意图或实体中使用正则表达式,但我认为您仍然应该能够应对变化。
目前在匹配意图时没有内置的拼写错误处理或重音规范化,但是如果句子中有足够的特征可以匹配,偶尔出现的拼写错误应该不会造成问题。对于非常短的示例,为常见错误添加额外的示例可能会有一些价值。
对于实体,您可以包含同义词,我以前用它来包含常见错误。
您不应尝试在您的意图中直接包含对实体的引用。例如,您应该只有 Qual a produção
,而不是 Qual a @(producao)
,以及具有相同意图的其他示例,可能具有不同的实体,或者同一实体的不同同义词。例如,对于 #directions 意图,我可能有以下示例...
- 我怎么开车到酒店?
- 你能告诉我去酒店的路吗?
- 如果我乘火车旅行,最近的车站是哪个
- 我乘坐哪条巴士路线可以到达酒店?
以及@transport 实体的值,如汽车、公共汽车、火车、自行车等。 (抱歉,我不能给出巴西葡萄牙语的例子!)没有必要明确命名你期望在意图中找到的 entity/entities。
最后,您可以在对话节点的条件中使用正则表达式,例如...
input.text.matches( 'produ[cç][aã]o' )
您无需担心重音、复数或拼写错误的单词。 Watson、LUIS、API.AI 等以此为特征,对每个词起作用。例如:
Cartão de Crédito > Kartão de Crédito > cartao de creb伊藤
所有这些都很好!
在这种情况下,只是为了补充和更多知识,几天前IBM Watson Conversation发布了一个新的Beta版本供使用Patterns.
@Entities 中的模式,您可以使用正则表达式。
The Patterns field lets you define specific patterns for an entity value. A pattern must be entered as a regular expression in the field.
在此示例中,对于实体 "ContactInfo",phone 的模式,电子邮件值可以定义如下:
示例:
localPhone:
(\d{3})-(\d{4})
,例如426-4968fullUSphone:
(\d{3})-(\d{3})-(\d{4})
,例如800-426-4968电子邮件:
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b
,例如测试@gmail.com
通常在使用模式实体时,需要将与模式匹配的文本存储在对话树中的上下文变量(或操作变量)中。
想象一下您要向用户询问他们的电子邮件地址的情况。对话节点条件将包含类似于 @contactInfo:email
的条件。为了将用户输入的电子邮件分配为上下文变量,可以使用以下语法来捕获对话节点响应部分中的模式匹配:
{
"context" : {
"email": "@contactInfo.literal"
}
}
Obs.: Conversation 服务使用的模式匹配引擎有一些语法限制,这些限制是必要的,以避免在使用其他正则表达式引擎时可能出现的性能问题.值得注意的是,实体模式可能不包含:
- 正重复(例如,x*+)
- 反向引用(例如 \g1)
- 条件分支(例如,(?(cond)true))
在 Watson Conversation 中查看有关 Defining Entities 的更多信息(重点在第 7 步)