沃森的会话意图和实体是否支持正则表达式?

时间:2016-09-21 14:37:41

标签: ibm-watson watson-conversation watson-dialog watson

我正在使用我公司想要创建的对话框测试Watson Conversation API。我们正在开发巴西葡萄牙语。鉴于portugues是一种丰富的语言,有时用户可能会犯错,我们希望预测这些可能的错误,主要是使用特殊的字符和重音。

对于示例,用户可以编写produção一词,例如:produçãoproducaoproduçaoproducão。是否有可能在意图和实体上有一个正则表达式,如图所示?有时我们会用另一个词来理解谎言produção finalprodução geralprodução passada等等。

enter image description here

另一个快速问题是,可以使用类似@(producao)(如图像)的内容创建与实体值合并的意图的示例吗?

谢谢

3 个答案:

答案 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服务使用的模式匹配引擎有一些语法限制,这是为了避免使用其他正则表达式引擎时可能出现的性能问题所必需的。值得注意的是,实体模式可能不包含:

  • 正重复(例如,x * +)
  • 反向引用(例如,\ g1)
  • 条件分支(例如,(?(cond)true))

在Watson Conversation中查看有关Defining Entities的更多信息(重点介绍第7步)

答案 2 :(得分:1)

你不必担心重音,复数或拼写错误的单词。 Watson,LUIS,API.AI等将此作为功能并适用于每个单词。例如:

CartãodeCrédito> K artãodeCrédito>购物车 a o de cre b ito

所有这些都很好!