模糊匹配

默认情况下,实体匹配要求某个实体条目进行完全匹配。如果是单字词实体条目值和同义词,这会正常工作,但如果是多字词值和同义词,则可能会出现问题。以实体“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 控制台(访问文档打开控制台)。以下说明着重介绍如何使用控制台。如需访问实体数据,请执行以下操作:

  1. 转到 Dialogflow ES 控制台
  2. 选择一个代理。
  3. 在左侧边栏菜单中选择实体 (Entities)。

如果您要使用 API 而非控制台来构建代理,请参阅 EntityTypes 参考。 API 字段名称与控制台字段名称类似。 以下说明重点介绍控制台与 API 之间的重要区别。

创建模糊匹配实体

如需创建模糊匹配实体,请执行以下操作:

  1. 打开现有实体或创建新实体。
  2. 勾选模糊匹配
  3. 在表格中输入一个或多个条目。
  4. 点击保存

如果您要使用 API 创建或更新实体,请将 EntityTypeenable_fuzzy_extraction 字段设置为 true。

限制

存在以下限制:

  • 正则表达式实体无法启用模糊匹配。 这些特性会互相排斥。
  • 如果实体用于匹配 ID、国民身份号码等严格值,则不应启用模糊匹配。

部分匹配

如果定义包含多个字词的同义词,Dialogflow 会尝试将最终用户输入与最接近的匹配同义词匹配(这可能包含部分匹配)。例如,如果您将同义词定义为“cold brew coffee”,而最终用户输入为“cold coffee”,那么除非找到更合适的匹配项,否则系统将匹配关联的实体。

拼写更正

如果最终用户的输入被视为实体同义词的拼写错误,则对关联的实体可能会匹配。例如,如果您将同义词定义为“lumber”,而最终用户输入为“number”,则关联的实体可能会匹配。