By default, entity matching requires an exact match for one of the entity entries. This works well for single-word entity entry values and synonyms but may present a problem for multi-word values and synonyms. For example, consider a ball entity that should be matched for the following end-user expression parts:
- "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"
For a match to occur, you normally need to define an entity entry value and synonyms for each of these permutations. However, with fuzzy matching enabled, the ordering of the words in a value or synonym does not matter. The following will trigger a match for all of the examples above:
- "ball"
- "red ball"
- "small ball"
- "small red ball"
Create a fuzzy matching entity
Console
- Open the Dialogflow CX console.
- Choose your GCP project.
- Select your agent.
- Select the Manage tab.
- Click Entity Types.
- Click Create.
- Check Fuzzy matching.
- Complete remaining fields.
- Click Save.
API
Set the EntityType.enableFuzzyExtraction
field to true.
Select a protocol and version for the EntityType reference:
Protocol | V3 | V3beta1 |
---|---|---|
REST | EntityType resource | EntityType resource |
RPC | EntityType interface | EntityType interface |
C++ | EntityTypesClient | Not available |
C# | EntityTypesClient | Not available |
Go | EntityTypesClient | Not available |
Java | EntityTypesClient | EntityTypesClient |
Node.js | EntityTypesClient | EntityTypesClient |
PHP | Not available | Not available |
Python | EntityTypesClient | EntityTypesClient |
Ruby | Not available | Not available |
Limitations
The following limitations apply:
- Fuzzy matching cannot be enabled for regexp entities. These features are mutually exclusive.
- Fuzzy matching should not be enabled for entities which are used to match strict values like IDs, national identification numbers, and so on.