训练短语是最终用户可能输入或说出的示例短语,称为“最终用户表述”。对于每项意图,您可以创建许多训练短语。如果最终用户表述与这些短语中的其中一个相类似,Dialogflow 便会将其与该意图匹配。
例如,训练短语“I want pizza”会训练代理识别与该短语相似的最终用户表述,比如“Get a pizza”或“Order pizza”。
您无需定义所有可能的示例,因为 Dialogflow 的内置机器学习功能可使用其他相似的短语扩展您的列表。建议您至少创建 10-20 个训练短语(具体取决于意图的复杂程度),以便您的代理能够识别各种最终用户表述。例如,如果您希望您的意图可以识别最终用户关于他们最喜欢的颜色的表述,则可以定义以下训练短语:
- “I like red”
- “My favorite color is yellow”
- “black”
- “Blue is my favorite”
- …
如何查找此数据
构建代理时,最常见的方法是使用 Dialogflow ES 控制台(访问文档,打开控制台)。以下说明着重介绍如何使用控制台。如需访问训练短语数据,请执行以下操作:
- 前往 Dialogflow ES 控制台。
- 选择一个代理。
- 在左侧边栏菜单中选择意图 (Intents)。
- 选择一项意图。
- 向下滚动到训练短语 (Training phrases) 部分。
如果您要使用 API 而非控制台来构建代理,请参阅意图参考。API 字段名称与控制台字段名称类似。以下说明重点介绍控制台与 API 之间的重要区别。
添加训练短语
如需将训练短语添加到意图中,请执行以下操作:
- 点击显示“添加用户表述”(Add user expression) 的文本字段。
- 输入您的训练短语,并在输入每个短语后按
Enter
键。
注释训练短语
当系统在运行时环境中匹配了某个意图时,Dialogflow 会以参数形式提供最终用户表述中的提取值。每个参数都有一个类型,称为实体类型,用于确切规定提取该数据的方式。与原始的最终用户输入不同,参数是结构化数据,可以轻松用于执行某些逻辑或生成响应。构建代理时,可以通过为训练短语的特定部分添加注释并配置相关参数来控制数据的提取方式。
例如,假设有一条训练短语为“What is the forecast tomorrow for Tokyo?”
您应使用 date
参数为“tomorrow”添加注释,使用 location
参数为“Tokyo”添加注释。当您为训练短语的特定部分添加注释后,Dialogflow 会识别出这些部分只是最终用户将在运行时提供的实际值的示例。
对于“What is the forecast on Friday for Sydney?”这样的最终用户表述,Dialogflow 会从“Friday”中提取 date
参数,并从“Sydney”中提取 location
参数。
使用控制台构建代理时,如果您所添加的训练短语中包含可与现有实体类型匹配的特定部分,那么系统会自动为您创建大多数注释。这些部分会在控制台中突出显示。 您可以根据需要修改这些注释和参数。
如需使用控制台手动为训练短语添加注释,请执行以下操作:
- 选择要添加注释的训练短语部分。
- 从列表中选择所需的实体类型。
- 系统会在下方的参数表中为您创建一个参数。
- 点击保存按钮并等到代理训练 (Agent Training) 窗口指示训练已完成为止。
使用 API 构建代理时,必须手动为训练短语添加注释并配置参数。
请参阅意图参考中的 TrainingPhrase
和 Parameter
类型。
Part.alias
字段将训练短语注释与特定参数进行关联。
由训练短语创建的隐式实体
大多数自定义实体是通过创建实体类型并添加实体条目来显式定义的。但是,自定义实体还可能包含隐式值。当您为训练短语的文本添加注释时,会出现这种情况,其中注释的文本不是所选实体类型定义的值。注释的文本将成为隐式添加的实体条目的实体引用值。如果实体类型是映射实体,则文本也会成为实体条目的同义词。
示例模式和模板模式
每个训练短语可以采用以下两种模式之一:
- 示例模式:通过训练短语左侧的 format_quote 指示。示例模式中的训练短语采用自然语言编写,并添加了注释以用于参数提取。
- 模板模式:通过训练短语左侧的 alternate_email 指示。采用模板模式的训练短语包含对实体类型的直接引用。