具有不同实体值的相同同义词的dialogflow模糊性

时间:2018-06-21 05:20:07

标签: dialogflow

我在使用dialogflow(api.ai)开发代理时遇到问题。我正在使用很多彼此不同的实体值。但是,某些实体值也有类似的同义词,但代理仅返回一个值。

我如何获得所有可能的匹配项或提出问题以解决歧义

例如,我的意图是:告诉我ABC快车的位置

if my entity values are :
entity            synonym
15127             ABC express
12345             ABC express 

我希望它返回两个值或询问问题以解决此类歧义 我该如何解决 预先感谢

1 个答案:

答案 0 :(得分:5)

如果为此目的启用了实现,则可以查看用户所说的值,并进一步询问是否需要区分实体之间的歧义。

让我们想象一下,您正在提取一个称为“火车”的实体。意向中的参数表可能如下所示:

Image of parameters table

默认情况下,如果用户说ABC express,则将使用以下参数哈希调用实现Webhook:

"parameters": {
  "trains": "15127"
}

这还不足以决定请求是否模棱两可,因为火车15127可能也具有明确的同义词。

您可以配置Dialogflow以发送实体的原始文本以及已解析的值。这意味着您将在Webhook上收到以下信息:

"parameters": {
  "trains": "15127",
  "original": "ABC express"
}

然后,您可以使用一些简单的逻辑来问另一个问题,即original的值是否出现在已知歧义同义词的列表中。

要让Dialogflow发送此数据,请修改参数表,使其类似于以下内容:

Image of parameters table

这将导致原始同义词与解析值一起发送到Dialogflow。