【问题标题】:Does watson conversation intents and entities support regular expressions?Watson 对话意图和实体是否支持正则表达式?
【发布时间】:2017-01-29 21:15:16
【问题描述】:

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

例如,produção 这个词可以由以下用户编写:produçãoproducaoproduçaoproducão。是否可以在意图和实体上使用正则表达式以获得如下图所示的内容?有时我们有另一个词来解释诸如produção finalprodução geralprodução passada 等。

另一个简单的问题,是否可以使用@(producao)(如图片)之类的东西来创建意图与实体值合并的示例?

谢谢

【问题讨论】:

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


    【解决方案1】:

    您不能在意图或实体中使用正则表达式,但我认为您仍然应该能够应对变化。

    目前在匹配意图时没有内置的拼写错误或重音规范化处理,但是如果句子中有足够的特征可以匹配,偶尔的拼写错误应该不会造成问题。对于非常简短的示例,为常见错误添加更多示例可能会有一些价值。

    对于实体,您可以包含同义词,我以前用它来包含常见错误。

    您不应尝试在意图中直接包含对实体的引用。例如,而不是Qual a @(producao),您应该只使用Qual a produção,以及具有相同意图的其他示例,可能具有不同的实体,或者同一实体的不同同义词。例如,我可能有以下示例用于#directions 意图...

    • 如何开车到酒店?
    • 您能告诉我从公路到酒店的路线吗?
    • 如果我乘火车旅行,最近的车站是哪个站
    • 哪条巴士路线可以送我到酒店?

    以及 @transport 实体的汽车、公共汽车、火车、自行车等值。 (抱歉,我不能举巴西葡萄牙语的例子!)无需明确命名您希望在意图中找到的实体。

    最后,您可以在对话节点的条件中使用正则表达式,例如...

    input.text.matches( 'produ[cç][aã]o' )

    【讨论】:

    • @felipe-oriani 显然目前没有任何内置处理拼写错误或重音规范化 - 我会更新我的答案
    【解决方案2】:

    您无需担心重音、复数或拼写错误的单词。 Watson、LUIS、API.AI 等都以此为特征,对每个单词起作用。例如:

    Cartão de Crédito > Kartão de Crédito > cartao de crebito

    所有这些都很好!

    【讨论】:

      【解决方案3】:

      在这种情况下,只是为了补充和更多的知识点,前几天IBM Watson Conversation 发布了一个新的Beta 版本供使用Patterns

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-18
        • 2014-08-31
        • 2011-10-18
        • 2011-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多