【问题标题】:Intent sample utterance (training phrase) structure - which is best?意图样本话语(训练短语)结构 - 哪个最好?
【发布时间】:2019-08-15 06:57:07
【问题描述】:

3/28/19 更新:来自 Google 的 Nick 在 DialogFlow 方面的回答非常出色。也很高兴能从 ASK 团队获得答案!


我们有一个语音应用程序,既可以作为 Alexa 技能,也可以作为 Google Action(使用 DialogFlow)。对于 ASK 和 DialogFlow,我们的意图是示例话语/训练短语结构:

前导词组 {主槽} 尾随词组

有许多前导短语和许多尾随短语。短语很短。这些短语中最多有 6 个单词,并且大多数有 3 个单词。并非所有示例话语都有前导词组和尾随词组。这些组合有 100 多个示例话语。

我想知道我们是否应该创建 {leading phrase} 和 {trailing phrase} 的新槽值。然后用当前在样本话语中的相应短语填充它们中的每一个。然后将样本话语从当前的 100+ 更改为仅这 4 个:

{主槽}

{前导词组} {主槽}

{主槽} {尾随短语}

{前导短语} {主槽} {尾随短语}

我认为这样我们会更好地记录日志,而且看起来更干净。但我很紧张。对两个平台进行此更改对 NLU 准确性的预期影响是什么?更好的?更差? ASK 对此的最佳实践建议是什么? DialogFlow 的最佳实践建议是什么?


@尼克- 感谢下面的回答。让我解释一下,看看我是否理解 - 如果专门使用实体,影响是:

1) 如果用户说出与已知实体组合完全匹配的内容,则识别效果会更好。

2) 如果用户说出与已知实体不匹配的短语,则与不使用实体时的相同情况相比,意图的匹配度不会那么强。这可能导致未选择意图。

这是正确的吗?

我不确定话语与实体组合不完全匹配的情况,但很接近。结果(与不使用实体时相比)意图匹配的频率会降低吗?也许您可以澄清您的陈述“如果用户要为短语添加前缀或后缀,并且它是不相关的,它将通过基于相似短语的意图模糊匹配来帮助 Dialogflow 的 ML 匹配。”

也许举个例子会有所帮助。让我们比较一下这两个训练短语:

'告诉我有关 {main slot} 和炸薯条的事'

{前导槽} {主槽} {尾槽}

地点:

{main slot} 包含“汉堡包”

{leading slot} 包含“tell me about”,但不包含“tell us about”

{trailing slot} 包含 'with french fries'

现在假设用户的话语是“告诉我们有关炸薯条的汉堡包”。使用插槽/实体是否或多或少可能与此意图相匹配?

【问题讨论】:

    标签: dialogflow-es actions-on-google alexa-skills-kit


    【解决方案1】:

    如果您在实体中定义所有内容,则可以使其更加准确,因为 Dialogflow 将实施一些偏差来识别正确的实体(或完全忽略此意图)。

    但是,使用实体实际上只需要用于您真正感兴趣的词汇。如果用户要为短语添加前缀或后缀,而这无关紧要,它将通过模糊匹配来帮助 Dialogflow 的 ML 匹配基于相似短语的意图。

    根据您的问题,您似乎在某种程度上确实关心这些短语,因此使用实体可能是一个很好的选择,并且比 100 个单独的训练短语更容易维护。

    【讨论】:

    • 谢谢尼克,我有后续的澄清问题太长了,无法发表评论,所以我编辑了上面的问题。
    • 是的,第 1 点和第 2 点是正确的。如果话语不完全匹配,则 Dialogflow 将需要确定一种处理方式。如果前导槽没有“告诉我们”,则 Dialogflow 可以匹配意图,但可能不会填充变量 {leading slot} 因为没有实体匹配。
    • 谢谢。在该示例中,由于两者都不是完全匹配,当使用实体时,意图或多或少可能与话语匹配?还是结果之间的差异可以忽略不计?
    • 它应该可以忽略不计,尽管取决于您的其他意图,它可能会影响其置信度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多