Esistono diverse opzioni di entità che modificano il comportamento della corrispondenza delle entità e dell'estrazione dei dati. Queste opzioni sono preconfigurate per le entità di sistema, pertanto non puoi modificarle per le entità di sistema. Tuttavia, puoi modificarli per le tue entità personalizzate. Puoi creare diversi tipi di entità, a seconda delle opzioni selezionate:
- Entità mappa
- List entity
- Entità composita (un tipo speciale di entità elenco)
- Entità Regexp
Esistono anche due opzioni che non determinano il tipo di entità, ma influiscono sul comportamento della corrispondenza delle entità:
Questo documento descrive ciascuna di queste opzioni.
Dove trovare questi dati
Quando crei un agente, è più comune utilizzare la console Dialogflow ES (consulta la documentazione, apri la console). Le istruzioni riportate di seguito si concentrano sull'utilizzo della console. Per accedere ai dati delle opzioni delle entità:
- Vai alla console di Dialogflow ES.
- Seleziona un agente.
- Seleziona Entità nel menu della barra laterale a sinistra.
- Seleziona la scheda Personalizzata per le entità personalizzate definite per il tuo agente o la scheda Sistema per le entità di sistema utilizzate dal tuo agente.
- Visualizza le seguenti opzioni della casella di controllo per le entità esistenti:
- Definisci i sinonimi
- Entità Regexp (solo entità personalizzata)
- Consenti l'espansione automatica (solo entità personalizzata)
- Corrispondenza parziale (solo entità personalizzata)
Se stai creando un agente utilizzando l'API anziché la console, consulta il riferimento EntityTypes. I nomi dei campi API sono simili a quelli della console. Le istruzioni riportate di seguito evidenziano le differenze importanti tra la console e l'API.
Entità mappa
Le entità mappa forniscono una mappa dai valori di riferimento
ai sinonimi per ogni valore di riferimento.
Ogni voce dell'entità mappa contiene un singolo valore di riferimento
e un elenco di sinonimi.
Ad esempio, ciascuna delle seguenti righe è una voce di entità
per un tipo di entità size:
| Valore di riferimento | Sinonimi |
|---|---|
| S | S, small, tiny, little |
| M | M, media |
| L | L, large, huge, big |
Tieni presente che il valore di riferimento è incluso nell'elenco dei sinonimi per ogni voce di entità sopra. Affinché un valore di riferimento venga abbinato, deve essere incluso come sinonimo. Quando inserisci inizialmente un valore di riferimento con la console, questo viene aggiunto automaticamente come sinonimo.
Se viene trovato un sinonimo per una parte dell'espressione dell'utente finale, il valore di riferimento associato viene estratto per la corrispondenza e viene utilizzato per risolvere il valore parametro associato.
È accettabile che il valore di riferimento venga omesso dall'elenco dei sinonimi. Ciò significa solo che non corrisponde a una parte dell'espressione di un utente finale, ma viene utilizzato come valore estratto quando viene trovata una corrispondenza con uno dei suoi sinonimi. Questa opzione è consigliabile quando utilizzi stringhe speciali per i valori di riferimento che non vengono digitati o pronunciati dagli utenti finali.
Molte entità di sistema sono entità mappa.
Ad esempio, l'entità di sistema @sys.date corrisponde a input di date comuni
come "1° gennaio 2015" o "Il primo gennaio 2015".
Entrambi gli input vengono mappati a un valore di riferimento in formato ISO-8601:
"2015-01-01T12:00:00-03:00".
Per creare un'entità mappa:
- Utilizzando la console, deseleziona l'opzione Entità regexp e seleziona l'opzione Definisci sinonimi.
- Utilizzando l'API,
imposta il
campo
EntityTypekindsuKIND_MAP.
Entità List
List entities fornisce un elenco di voci di entità a valore singolo.
Non hanno valori di riferimento e sinonimi.
Ad esempio, ciascuna delle seguenti righe è una voce di entità
per un tipo di entità material:
| Valore |
|---|
| tessuto |
| legno |
| metallo |
Se viene trovato un valore per una parte dell'espressione dell'utente finale, il valore viene estratto per la corrispondenza e viene utilizzato per risolvere il valore parametro associato.
Molte entità di sistema sono entità elenco.
Ad esempio, l'entità di sistema @sys.color corrisponde agli input di colore comuni
come "rosso" o "blu".
Quando viene trovata una corrispondenza di colore,
il valore estratto non viene mappato a nessun valore di riferimento.
Ad esempio, le tonalità di rosso, come "scarlatto" o "cremisi",
non vengono mappate a "rosso" e vengono estratte
come valori originali "scarlatto" e "cremisi".
Per creare un'entità elenco:
- Utilizzando la console, deseleziona l'opzione Entità regexp e l'opzione Definisci sinonimi.
- Utilizzando l'API,
imposta il
campo
EntityTypekindsuKIND_LIST.
Entità composita
Un'entità composita è un tipo speciale di entità elenco. Le voci di entità per le entità elenco in genere contengono parole o frasi semplici, ma possono contenere anche altri tipi di entità. Quando un tipo di entità viene citato in un altro tipo di entità, il riferimento viene chiamato alias. Quando un'entità elenco contiene alias di altri tipi di entità, viene chiamata entità composita.
Quando crei un alias, fornisci il nome del tipo di entità a cui viene fatto riferimento e un nome di proprietà a tua scelta. Quando viene trovata una corrispondenza per un'entità composita in fase di runtime, il valore estratto viene restituito come oggetto JSON, con i nomi delle proprietà alias utilizzati come nomi delle proprietà JSON. Il formato per inserire un alias è:
@entity-name:property-name
Ad esempio, potresti creare un tipo di entità place
che corrisponda a una città o a uno stato con le seguenti voci di entità:
| Valore |
|---|
| @sys.geo-city:city |
| @sys.geo-state:state |
Se un'espressione dell'utente finale contiene la parte "Nashville",
viene abbinato il tipo di entità place.
Il valore estratto viene restituito come:
{"city": "Nashville"}.
Puoi anche utilizzare più alias di entità in una voce di entità.
Considera il seguente tipo di entità personalizzata move che contiene
alias a un tipo di entità direction e al tipo di entità di sistema @sys.number:
Tipo di entità mappa personalizzata per le indicazioni:
| Valore di riferimento | Sinonimi |
|---|---|
| avanti | avanti |
| indietro | indietro |
Spostare il tipo di entità elenco personalizzato:
| Valore |
|---|
| @sys.number:steps passi @direction:direction |
Se l'entità move corrisponde
a un'espressione dell'utente finale che contiene "cinque passi indietro",
l'entità move verrà abbinata.
Il valore estratto viene restituito come:
{"steps": 5, "direction": "back"}.
Molte entità di sistema sono entità composite.
Ad esempio, l'entità di sistema @sys.unit-currency
viene utilizzata per abbinare importi di denaro a un nome di valuta.
Corrisponde a espressioni dell'utente finale come "50 euro" o "20 dollari e 5 centesimi".
Il valore estratto viene restituito come oggetto JSON nel seguente formato:
{"amount": 50, "currency": "EUR"}
Entità Regexp
Con le entità regex, puoi fornire espressioni regolari per la corrispondenza. Per saperne di più, vedi Entità Regexp.
Per creare un'entità regexp:
- Utilizzando la console, seleziona l'opzione Entità Regexp.
- Utilizzando l'API,
imposta il
campo
EntityTypekindsuKIND_REGEXP.
Espansione automatica
Puoi attivare l'espansione automatica per un tipo di entità personalizzato. Se abilitato, l'agente può riconoscere i valori che non sono stati forniti esplicitamente. Ad esempio, considera un tipo di entità elenco di acquisti:
| Valore |
|---|
| pane |
| butter |
| latte |
| apple |
| gelato |
Se l'espressione di un utente finale è"Ho bisogno di comprare delle carote", "carote" verrà abbinato a questo tipo di entità, anche se non è fornito. L'agente riconosce che "carote" è contestualmente simile ad altri valori.
Quando prendi in considerazione l'espansione automatica, segui le best practice:
- L'attivazione dell'espansione automatica non garantisce l'estrazione delle entità. Per un elenco finito, devi fornire l'elenco completo anziché fornire un elenco parziale e attivare l'espansione automatica.
- Se attivi l'espansione automatica in più di un'entità, potrebbero verificarsi conflitti e risultati di classificazione imprevisti.
- Per garantire una migliore qualità dell'estrazione dei parametri, è fondamentale fornire dati di addestramento diversi che coprano tutti i casi d'uso in cui una determinata entità può essere trovata nel traffico previsto dell'agente. Se non ci sono abbastanza esempi, l'espansione automatica delle entità potrebbe non funzionare come previsto.
Per attivare l'espansione automatica:
- Utilizzando la console, controlla l'opzione Consenti espansione automatica.
- Utilizzando l'API,
imposta il
campo
EntityTypeautoExpansionModesuAUTO_EXPANSION_MODE_DEFAULT.
Corrispondenza parziale
Puoi attivare la corrispondenza approssimativa per un'entità personalizzata. Se la corrispondenza approssimativa è attivata, l'ordine delle parole in un valore o sinonimo non ha importanza. Per saperne di più, vedi Corrispondenza fuzzy.
Per attivare la corrispondenza parziale:
- Utilizzando la console, seleziona l'opzione Corrispondenza fuzzy.
- Utilizzando l'API,
imposta il
campo
EntityTypeenableFuzzyExtractionsutrue.