Esistono diverse opzioni di entità che modificano il comportamento della corrispondenza delle entità e dell'estrazione dei dati. Queste opzioni sono preconfigurate entità di sistema, quindi non puoi modificarle per le entità di sistema. Tuttavia, puoi modificarle per conto tuo entità personalizzate. Puoi creare diversi tipi di entità, a seconda delle opzioni selezionate:
- Entità della mappa
- Entità elenco
- Entità composita (un tipo speciale di entità elenco)
- Entità regexp
Esistono anche due opzioni che non determinano il tipo di entità: ma influisce sul comportamento della corrispondenza delle entità:
Questo documento descrive ciascuna di queste opzioni.
Dove trovare questi dati
Quando crei un agente, è più comune utilizzare Console Dialogflow ES (visita la documentazione e apri la console). Le istruzioni riportate di seguito sono incentrate 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 entità personalizzate definiti per l'agente o la scheda Sistema per entità di sistema utilizzata dall'agente.
- Consulta le seguenti opzioni della casella di controllo per le entità esistenti:
- Definire i sinonimi
- Entità regexp (solo entità personalizzate)
- Consenti l'espansione automatica (solo entità personalizzate)
- Corrispondenza parziale (solo entità personalizzata)
Se stai creando un agente utilizzando l'API anziché la console, consulta Riferimento per EntityType. I nomi dei campi dell'API sono simili a quelli della console. Le istruzioni riportate di seguito evidenziano eventuali differenze importanti tra la console e l'API.
Entità mappa
Le entità della mappa forniscono una mappa a partire da valori di riferimento
ai sinonimi per ogni valore di riferimento.
Ogni voce di entità mappa contiene un singolo valore di riferimento
e un elenco di sinonimi.
Ad esempio, ciascuna delle righe seguenti contiene voci di entità
per un tipo di entità size
:
Valore di riferimento | Sinonimi |
---|---|
S | S, piccolo, minuscolo, piccolo |
M | M, media, media |
L | L, grande, enorme, grande |
Tieni presente che il valore di riferimento è incluso nell'elenco di sinonimi per ciascuna voce di entità riportata sopra. Per far corrispondere un valore di riferimento, deve essere incluso come sinonimo stesso. Quando inserisci inizialmente un valore di riferimento con la console, viene aggiunto automaticamente come sinonimo.
Se uno dei sinonimi corrisponde a una parte dell'espressione dell'utente finale, il valore di riferimento associato viene estratto per la corrispondenza e utilizzato per risolvere il valore del parametro associato.
Il valore di riferimento può essere omesso dall'elenco dei sinonimi. Ciò significa semplicemente che non corrisponde a una parte dell'espressione dell'utente finale, ma viene utilizzato come valore estratto quando viene associato uno dei suoi sinonimi. Ciò è auspicabile quando utilizzi stringhe speciali per i valori di riferimento che non vengono digitati o pronunciati dagli utenti finali.
Molte entità di sistema sono entità di mappe.
Ad esempio, l'entità di sistema @sys.date
corrisponde a input di date comuni come "1° gennaio 2015" o "1° gennaio 2015".
Entrambi gli input sono 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 Regexp entity e seleziona l'opzione Definisci sinonimi.
- Utilizzando l'API, imposta il campo
EntityType
kind
suKIND_MAP
.
Entità elenco
Le entità elenco forniscono un elenco di voci di entità con valore singolo.
Non hanno valori di riferimento né sinonimi.
Ad esempio, ciascuna delle seguenti righe è una voce dell'entità per un tipo di entità material
:
Valore |
---|
tessuto |
legno |
metallo |
Se un valore corrisponde a una parte di espressione dell'utente finale, il valore viene estratto per la corrispondenza e viene utilizzato per risolvere i problemi valore del parametro.
Molte entità di sistema sono entità elenco.
Ad esempio, l'entità di sistema @sys.color
corrisponde a input di colore comuni
come "rosso" o "blu".
Quando viene trovata una corrispondenza per un colore, il valore estratto non viene mappato a nessun valore di riferimento.
Ad esempio, tonalità di rosso, come "scarlatto" o "cremisi",
non sono mappati a "rosso" e vengono estratti
in quanto i loro valori originali sono "scarlatto" e "cremisi".
Per creare un'entità elenco:
- Utilizzando la console, deseleziona l'opzione Regexp entity e deseleziona l'opzione Definisci sinonimi.
- Utilizzando l'API,
imposta il
EntityType
kind
suKIND_LIST
.
Entità composita
Un'entità composita è un tipo speciale di entità elenco. Le voci delle entità per le entità di elenco in genere contengono parole o frasi semplici, ma possono contenere anche altri tipi di entità. Quando un tipo di entità viene fatto riferimento 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à composta.
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 abbinata un'entità composita in fase di runtime, il valore estratto viene restituito come oggetto JSON, con nomi di proprietà alias utilizzati come nomi di proprietà JSON. Il formato per inserire un alias è:
@entity-name:property-name
Ad esempio, potresti creare un tipo di entità place
che corrisponde 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 di un utente finale contiene "Nashville" parte,
corrisponde al 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 move
tipo di entità personalizzata che contiene
alias a un tipo di entità direction
e al tipo di entità di sistema @sys.number
:
Tipo di entità della mappa personalizzata per le indicazioni stradali:
Valore di riferimento | Sinonimi |
---|---|
avanti | avanti, avanti |
indietro | indietro, indietro, indietro |
Sposta il tipo di entità dell'elenco personalizzato:
Valore |
---|
@sys.number:steps passi @direction:direction |
Se l'entità move
viene associata
a un'espressione dell'utente finale che contiene "cinque passi indietro",
l'entità move
verrà associata.
Il valore estratto viene restituito come:
{"steps": 5, "direction": "back"}
.
Molte entità di sistema sono entità composte.
Ad esempio, l'entità di sistema @sys.unit-currency
viene utilizzata per abbinare gli importi in denaro a un nome di valuta.
Corrisponde a espressioni dell'utente finale come "50 euro" o "venti dollari e cinque centesimi".
Il valore estratto viene restituito come oggetto JSON come segue:
{"amount": 50, "currency": "EUR"}
Entità Espressione regolare
Con le entità regexp, puoi fornire espressioni regolari per la corrispondenza. Per ulteriori informazioni, consulta Entità Regexp.
Per creare un'entità regexp:
- Nella console, seleziona l'opzione Entità regexp.
- Utilizzando l'API, imposta il campo
EntityType
kind
suKIND_REGEXP
.
Espansione automatica
Puoi attivare l'espansione automatica per un tipo di entità personalizzato. Se questa opzione è attivata, l'agente può riconoscere i valori che non sono stati forniti esplicitamente. Ad esempio, prendiamo in considerazione un tipo di entità elenco della spesa:
Valore |
---|
pane |
burro |
latte |
apple |
gelato |
Se l'espressione di un utente finale è "Devo comprare delle carote", "carote" saranno abbinate a questo tipo di entità, anche se non è fornito. L'agente riconosce che le "carote" è contestualmente simile ad altri valori.
Quando valuti l'espansione automatica, devi seguire le best practice:
- L'attivazione dell'espansione automatica non garantisce l'estrazione delle entità. Per un elenco finito, devi fornire l'elenco completo instead of providing a partial list and enabling automated expansion.
- 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 che coprono tutti i casi d'uso che una determinata entità può essere trovata nel traffico dell'agente previsto. Se gli esempi non sono sufficienti, l'espansione automatica delle entità potrebbe non funzionare come previsto.
Per attivare l'espansione automatica:
- Utilizzando la console, Seleziona l'opzione Consenti espansione automatica.
- Utilizzando l'API,
imposta il
EntityType
autoExpansionMode
suAUTO_EXPANSION_MODE_DEFAULT
.
Corrispondenza parziale
Puoi attivare la corrispondenza parziale per un'entità personalizzata. Con la corrispondenza parziale attivata, l'ordine delle parole in un valore o sinonimo non ha importanza. Per ulteriori informazioni, consulta la sezione Corrispondenza approssimativa.
Per attivare la corrispondenza approssimativa:
- Utilizzando la console, Seleziona l'opzione Corrispondenza parziale.
- Utilizzando l'API, imposta il campo
EntityType
enableFuzzyExtraction
sutrue
.