默认情况下,实体匹配要求某个实体条目进行完全匹配。如果是单字词实体条目值和同义词,这会正常工作,但如果是多字词值和同义词,则可能会出现问题。以实体“ball”为例,该实体应与以下最终用户表述部分相匹配:
- “ball”
- “red ball”
- “ball red”
- “small ball”
- “ball small”
- “small red ball”
- “small ball red”
- “red small ball”
- “red ball small”
- “ball small red”
- “ball red small”
为了能够匹配,您一般需要为这些排列中的每一个定义实体条目值和同义词。但是,如果启用了模糊匹配,值或同义词的字词顺序就会无关紧要。下列字词将触发所有上述示例发生匹配:
- “ball”
- “red ball”
- “small ball”
- “small red ball”
如何查找此数据
构建代理时,最常见的方法是使用 Dialogflow ES 控制台(访问文档,打开控制台)。以下说明着重介绍如何使用控制台。如需访问实体数据,请执行以下操作:
- 转到 Dialogflow ES 控制台。
- 选择一个代理。
- 在左侧边栏菜单中选择实体 (Entities)。
如果您要使用 API 而非控制台来构建代理,请参阅 EntityTypes 参考。 API 字段名称与控制台字段名称类似。 以下说明重点介绍控制台与 API 之间的重要区别。
创建模糊匹配实体
如需创建模糊匹配实体,请执行以下操作:
- 打开现有实体或创建新实体。
- 勾选模糊匹配。
- 在表格中输入一个或多个条目。
- 点击保存。
如果您要使用 API 创建或更新实体,请将 EntityType
的 enable_fuzzy_extraction
字段设置为 true。
限制
存在以下限制:
- 正则表达式实体无法启用模糊匹配。 这些特性会互相排斥。
- 如果实体用于匹配 ID、国民身份号码等严格值,则不应启用模糊匹配。
部分匹配
如果定义包含多个字词的同义词,Dialogflow 会尝试将最终用户输入与最接近的匹配同义词匹配(这可能包含部分匹配)。例如,如果您将同义词定义为“cold brew coffee”,而最终用户输入为“cold coffee”,那么除非找到更合适的匹配项,否则系统将匹配关联的实体。
拼写更正
如果最终用户的输入被视为实体同义词的拼写错误,则对关联的实体可能会匹配。例如,如果您将同义词定义为“lumber”,而最终用户输入为“number”,则关联的实体可能会匹配。