【问题标题】:How to set entity for planet's name - dialogflow如何为行星名称设置实体 - 对话流
【发布时间】:2021-03-21 19:27:45
【问题描述】:

我正在制作一个聊天机器人来询问有关太阳系的基本问题。 我主要关心的是如何为训练短语设置实体。 示例:

  1. 月亮的质量是​​多少?
  2. 月球质量
  3. 告诉我月球的质量?

我在下面添加了一张图片。 我主要关心的是如何为massbody 设置实体。我已经为质量创建了一个自定义实体@body_mass,但不确定如何为行星/物体名称做事。这样我就可以在后端接收这些值。在诊断信息中无法识别

image for what I did

【问题讨论】:

    标签: python-3.x dialogflow-es dialogflow-es-fulfillment


    【解决方案1】:

    最简单的方法是创建一个@Property 实体,该实体可以检测用户想了解的关于行星的“什么”,例如:

    • 身高
    • 质量
    • 年龄
    • 地球上每个外星人的平均宠物数量
    • 等等..

    然后,您创建另一组名为 @Planet 的实体,您可以使用这些实体来检测用户想要了解的“哪个”星球,例如:

    • 地球
    • 火星
    • 土星
    • 等等..

    然后您可以创建一个名为“获取行星信息意图”的意图并输入示例短语,例如:

    • @Planet@Property 是什么
    • @Property@Planet

    这样做可以节省大量时间,因为您不必为“地球的高度是多少”和“火星的高度是多少”创建短语。您只需为属性和行星实体捕获一个句子,它应该适用于您的实体中的每个组合。

    您甚至可以通过为以下实体添加 synonyms 来改进这一点:

    • 身高:高、长
    • 年龄:老,年轻
    • 质量:大

    在您的代码中,您必须检查的所有信息是 Dialogflow 检测到了哪个 @Property 和哪个 @Planet,因此您不必像现在一样检查 Mass_Planet_A、Mass_Planet_B 等内容。

    【讨论】:

    • 嗯,我实现了。我还想问一件事-> 我的意图是UserAsks,实体是@body-mass@space-object。现在我想添加更多功能,例如“什么是空间物体的半径?”那么我必须在UserAsks意图中包含此类问题还是创建一个新问题?
    • 一般规则是,意图代表用户试图完成的目标的短语集合。在这种情况下,将要求获取有关行星的信息,与此相关的任何内容并使用这些实体都应该以相同的意图工作。空间物体有点模糊,所以很难说,如果它是类似行星的东西,请将其添加到您当前的意图中,如果您期望诸如“空间的大小是多少”(显然不是行星)之类的问题,我会为它制定新的意图。
    • 我会尝试... .
    猜你喜欢
    • 2019-01-22
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多