Esistono diverse opzioni di entità che modificano il comportamento della corrispondenza delle entità ed estrazione dei dati. Queste opzioni sono preconfigurate entità di sistema, quindi non puoi modificarle per le entità di sistema. Tuttavia, puoi modificarli in base alle tue entità personalizzate. Puoi creare diversi tipi di entità, a seconda delle opzioni selezionate:
- Entità mappa
- Entità elenco
- Entità composita (un tipo speciale di entità elenco)
- Entità regexp
Esistono altre 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 Console Dialogflow CX (visita la documentazione e apri la console). Le istruzioni riportate di seguito riguardano l'utilizzo della console. Per accedere ai dati delle opzioni delle entità:
- Apri la console Dialogflow CX.
- Scegli il tuo progetto Google Cloud.
- Seleziona l'agente.
- Seleziona la scheda Gestisci.
- Fai clic su Tipi di entità.
- Consulta le seguenti opzioni per le entità esistenti
(alcune potrebbero essere visibili solo dopo aver espanso Opzioni avanzate):
- Solo entità (non sinonimi)
- Entità Regexp
- Aggiungere automaticamente entità
- Corrispondenza parziale
- Oscurare nel log
- Esclusioni di entità
Se stai creando un agente utilizzando l'API anziché la console, consulta il tipo EntityType
.
I nomi dei campi delle API sono simili a quelli dei campi della console.
Le istruzioni riportate di seguito evidenziano eventuali differenze importanti
tra la console e l'API.
Seleziona un protocollo e una versione per il riferimento EntityType:
Protocollo | V3 | V3beta1 |
---|---|---|
REST | Risorsa EntityType | Risorsa EntityType |
RPC | Interfaccia EntityType | Interfaccia EntityType |
C++ | EntityTypesClient | Non disponibile |
C# | EntityTypesClient | Non disponibile |
Vai | EntityTypesClient | Non disponibile |
Java | EntityTypesClient | EntityTypesClient |
Node.js | EntityTypesClient | EntityTypesClient |
PHP | Non disponibile | Non disponibile |
Python | EntityTypesClient | EntityTypesClient |
Ruby | Non disponibile | Non disponibile |
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 una singola voce valore di riferimento e un elenco di sinonimi. Se vuoi, puoi anche impostare un pattern DTMF per ogni entità.
Ad esempio, ciascuna delle seguenti righe è una voce dell'entità per un tipo di entità size
:
Entità | Sinonimi | Pattern DTMF |
---|---|---|
S | S, piccolo, minuscolo, poco | |
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. Affinché un valore di riferimento venga associato, deve essere incluso come sinonimo. Quando inserisci inizialmente un valore di riferimento con la console, viene aggiunto automaticamente come sinonimo.
Se uno dei sinonimi corrisponde a una parte di input utente finale, viene estratto il valore di riferimento associato per la corrispondenza e viene utilizzato per risolvere i problemi parametro valore.
Il valore di riferimento può essere omesso dall'elenco dei sinonimi. Ciò significa semplicemente che non viene abbinata a una parte di input utente finale, ma viene utilizzato come valore estratto quando viene trovata una corrispondenza con 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 data comuni
come "1 gennaio 2015" o "Il primo 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 Entità con espressione regolare e deseleziona l'opzione Solo entità.
- Utilizzando l'API, imposta il campo
EntityType.kind
suKIND_MAP
.
Entità elenco
Le entità elenco forniscono un elenco di voci di entità con un singolo valore.
Non hanno valori di riferimento e sinonimi.
Ad esempio, ciascuna delle righe seguenti contiene voci di entità
per un tipo di entità material
:
Valore |
---|
tessuto |
legno |
metallo |
Se un valore corrisponde a una parte di input utente finale, il valore viene estratto per la corrispondenza e viene utilizzato per risolvere i problemi parametro valore.
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 un colore corrisponde,
il valore estratto non è mappato ad alcun valore di riferimento.
Ad esempio, le sfumature di rosso, come "scarlatto" o "cremisi",
non vengono mappate a "rosso" e vengono estratte
come i valori originali "scarlatto" e "cremisi".
Per creare un'entità elenco:
- Nella console, deseleziona l'opzione Entità regexp e seleziona l'opzione Solo entità.
- Utilizzando l'API,
imposta il campo
EntityType.kind
suKIND_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 si fa riferimento a un tipo di entità in un altro tipo di entità, il riferimento è 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 fai riferimento e un nome della 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, puoi creare un tipo di entità place
corrispondente a una città o a uno stato con le seguenti voci di entità:
Valore |
---|
@sys.geo-city:city |
@sys.geo-state:state |
Se l'input 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 |
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 input 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 utilizzato per abbinare importi di denaro a un nome di valuta.
Corrisponde a input degli utenti finali come "50 euro" o "venti dollari e cinque centesimi".
Il valore estratto viene restituito come un oggetto JSON come:
{"amount": 50, "currency": "EUR"}
Entità Regexp
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 (aggiunta automatica di entità)
Puoi attivare l'espansione automatica per un tipo di entità personalizzata. Se questa opzione è abilitata, 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 un utente finale inserisce "Devo comprare delle carote", "carote" verrà associato 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 limitato, devi fornire quello 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 coprono tutti i casi d'uso in cui 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:
- Nella console, seleziona l'opzione Aggiungi automaticamente entità.
- Utilizzando l'API, imposta il campo
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 parziale.
Per attivare la corrispondenza approssimativa:
- Nella console, seleziona l'opzione Corrispondenza approssimativa.
- Utilizzando l'API,
imposta il campo
EntityType.enableFuzzyExtraction
sutrue
.
Oscurare nel log
Se attivi l'oscuramento delle entità, tutti i valori dei parametri estratti in fase di runtime per il tipo di entità verranno oscurati durante la registrazione.
In alternativa, puoi oscurare i singoli parametri.
Esclusioni entità
Puoi aggiungere esclusioni di entità, ovvero frasi per le quali non dovrebbero essere presenti corrispondenze. Ad esempio, se hai un tipo di entità di taglia con l'entità gigante (un aggettivo), potresti considerare di aggiungere giganti (un sostantivo) come eccezione.