自然语言理解最佳实践

本页包含一些与自然语言理解 (NLU) 相关的最佳实践和建议,有助于构建优质 Action。

一般措施

  • 对话和口头互动的形式多种多样,获取早期用户数据有助于你的 Action 变得更实用、更有效、更有趣。
  • 注意错误和警告。即使您的 Action 可以正常运行,它在日后仍可能会导致问题,而您需要投入更多时间来调查问题。

Intent

  • 尽可能多地在场景之间重复使用 intent。如果您有多个 intent 可以匹配,用户很难匹配他们想要的 intent,而 Google 助理更难根据用户输入选择正确的 intent。
  • 从针对 Action 的最常见请求或互动流开始构建意图训练短语。
  • 想一想您的训练短语的一些极端情况,例如可接受的最短和最长查询。
  • 您添加到意图中的训练短语数量取决于意图需要处理的复杂程度和广度。也就是说,只需 5 个短语即可轻松理解(“yes”或“no”),但对于更复杂的语言模型,则可以添加数百个训练短语。
  • 对于复杂意图(用户输入的内容可能不尽相同),请根据需要提供任意数量的训练短语,以涵盖所有潜在的用户响应。
  • 如果您需要向用户收集特定数据,请使用槽填充功能。
  • 请勿创建仅包含自由文本 intent 参数的 intent。如果您需要匹配用户输入的所有内容,请使用槽位填充或 NO_MATCH 系统 intent。

类型

  • 如果您的类型同义词由多个字词(例如歌曲名称或菜品)组成,不妨考虑启用模糊匹配。这种方法可让用户省略不重要的字词或更改输入的预期顺序。
  • 通过提供其他同义词,尽可能避免使用接受未知值选项。
  • 如果您的类型使用了接受未知值选项,请提供不同的训练短语,以确保 Google 助理可以识别正确的信息。例如,如果您将 message 类型设置为“接受未知值”,则训练短语可能如下所示:

    • Send $message
    • Send $message to Tim
    • Send mom $message
  • 如果您需要匹配 ID 或其他结构化输入,请考虑使用正则表达式。

  • 谨慎使用自由格式文本选项。此选项与任何非空输入匹配,并且使语言处理器难以有效训练和匹配数据。当您根本无法预测用户可能会说什么时,应将其作为万不得已的情况下使用。