我正在使用我公司想要创建的对话框测试Watson Conversation API。我们正在开发巴西葡萄牙语。鉴于portugues是一种丰富的语言,有时用户可能会犯错,我们希望预测这些可能的错误,主要是使用特殊的字符和重音。
对于示例,用户可以编写produção
一词,例如:produção
,producao
,produçao
,producão
。是否有可能在意图和实体上有一个正则表达式,如图所示?有时我们会用另一个词来理解谎言produção final
,produção geral
,produção passada
等等。
另一个快速问题是,可以使用类似@(producao)
(如图像)的内容创建与实体值合并的意图的示例吗?
谢谢
答案 0 :(得分:3)
你不能在意图或实体中使用正则表达式,但我认为你仍然可以应对变化。
当匹配意图时,目前没有内置的拼写错误或重音规范化处理,但是如果句子中有足够的特征匹配,偶尔的拼写错误不应该引起问题。对于非常简短的示例,为常见错误添加其他示例可能会有一些价值。
对于实体,您可以包含同义词,我之前使用它来包含常见错误。
您不应该尝试直接在您的意图中包含对实体的引用。例如,您应该只有Qual a @(producao)
而不是Qual a produção
,以及相同意图的其他示例,可能具有不同的实体,或同一实体的不同同义词。例如,我可能有#directions intent ...
与@transport实体的汽车,公共汽车,火车,自行车等价值观一起使用。 (对不起,我不能给出一个巴西葡萄牙语的例子!)没有必要明确命名你期望在意图中找到的实体/实体。
最后,您可以在对话节点上的条件中使用正则表达式,例如......
input.text.matches( 'produ[cç][aã]o' )
答案 1 :(得分:2)
在这种情况下,仅仅为了补充和更多的知识,几天前IBM Watson Conversation发布了一个新的Beta版本,用于模式。
使用@Entities中的模式,您可以使用正则表达式。
“模式”字段允许您为实体定义特定模式 值。必须在字段中输入模式作为正则表达式。
如本例所示,对于实体" 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"
}
}
Obs。: Conversation服务使用的模式匹配引擎有一些语法限制,这是为了避免使用其他正则表达式引擎时可能出现的性能问题所必需的。值得注意的是,实体模式可能不包含:
在Watson Conversation中查看有关Defining Entities的更多信息(重点介绍第7步)
答案 2 :(得分:1)
你不必担心重音,复数或拼写错误的单词。 Watson,LUIS,API.AI等将此作为功能并适用于每个单词。例如:
CartãodeCrédito> K artãodeCrédito>购物车 a o de cre b ito
所有这些都很好!