【问题标题】:dialogflow, how to return whatever-else entity对话流,如何返回其他实体
【发布时间】:2018-09-18 14:16:36
【问题描述】:

我正在尝试为书籍/文章构建“搜索意图”。

我创建了一个图书标签,其中包含我们图书的所有预定义标签。

book-tags-entity

我创建了另一个名为“intent-action”的实体

intent-action-entity

以及搜索词的实体:

search-term-should-match-whatever-else-entity

现在,我想要一个可以理解用户搜索内容的意图。

例如:

输入:搜索糖尿病医学书籍

预期输出:

意图动作:“搜索”正确

书籍标签:“医疗”正确

搜索词:它应该匹配任何其他内容,对于这个例子,它应该是“糖尿病书”。

search-book-intent

有没有可能做到这一点?

更新 1:使用 @sys-any

感谢您的帮助。

我尝试使用“sys-any”。它适用于预定义的搜索词。我手动将“糖尿病书”、“COPD 文章”、“头痛书”映射到 sys-any,

但它仍然无法识别任何新的搜索词。

try with sys-any

更新 2,来自 Dialogflow 支持的响应

感谢您联系 Dialogflow 支持。

目前,Dialogflow 不提供这种即用型功能。您可以为意图启用实现,并尝试在实现代码中开发自己的自定义业务逻辑,以处理从 Dialogflow 发送的请求中的参数值和原始用户查询文本,并将结果作为响应发送回 Dialogflow。

更新 3,工作解决方案在这里。

在对话流意图中 -> 训练短语

这里有两种不同的训练模型,“示例模型”和“模板模型”。

我们需要的是“模板模型”,并设置模板“@sys.any:search-term @intent-action:intent-action @sys.any:search-term”

完成。

【问题讨论】:

  • 抱歉,没有足够的声望在这里发布图片。
  • 您是否尝试过系统实体来捕获任何东西 - @sys.any ?
  • 是的,但它似乎只适用于预定义的搜索词。
  • 尝试使用 Default-Fallback 并在 webhook 中查看您是否正在使用正则表达式捕获用户查询,否则返回回退消息。
  • 是的,我认为这只是这里的解决方案。感谢您的帮助

标签: dialogflow-es


【解决方案1】:

是的,您可以创建实体类型@sys.any 的“diabetes”和“copd”术语。为此,您可以选择测试短语中的单词并输入或选择@sys.any。完成后应该是这样的:

如果您愿意,可以将参数名称从“any”更改为更有意义的其他名称。

更新 1

您需要手动选择短语,因此对于更新示例中的短语,您需要选择它并将其设置为@sys.any

请记住,您的示例短语就是这样 - 示例。它们不会是它专门寻找的东西。通过将其标记为@sys.any Entity 类型,您的意思是任何内容都将匹配该参数。

您可能还需要为您的案例选择“必需”。

通常情况下,@sys.any 在还有其他单词也被排除在其中但属于短语的一部分时效果最佳。试图捕捉“其他一切”是困难的,而且通常不是你想要的。你真的想捕捉短语的“of”部分吗? “文章”或“书”应该是他们自己的实体类型,主题应该是@sys.any参数?

【讨论】:

  • 感谢您的帮助。它仅适用于那些预定义的搜索词。参见图片“尝试使用 sys-any”。还是我做错了?
  • 你没有做错,但我认为你可以做得更好。不确定“预定义的搜索词”是什么意思,但希望在我的更新中澄清一些事情。
  • 谢谢。这是一个“搜索”意图。所以我需要捕获其他任何内容,甚至是“of”部分(我有一个能够过滤这些单词的 NLP api)。由于 dialogflow 尚不支持此功能(请参阅更新 2),我将接受您的回答。再次感谢。
  • 如果您有自己的 NLP,为什么要使用 Dialogflow? {:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 2022-06-17
  • 1970-01-01
相关资源
最近更新 更多