Estrarre dati da testo di un'espressione con finalità ed entità

Importante

LUIS verrà ritirato il 1° ottobre 2025 e a partire dal 1° aprile 2023 non sarà possibile creare nuove risorse LUIS. È consigliabile eseguire la migrazione delle applicazioni LUIS alla comprensione del linguaggio conversazionale per trarre vantaggio dal supporto continuo del prodotto e dalle funzionalità multilingue.

LUIS consente di ottenere informazioni da espressioni in linguaggio naturale dell'utente. Le informazioni vengono estratte in modo che possano essere usate da un programma, applicazione o chatbot per intervenire. Le sezioni seguenti spiegano quali dati vengono restituiti da finalità ed entità con esempi di JSON.

I dati più difficili da estrarre sono i dati di Machine Learning perché non corrispondono esattamente al testo. L'estrazione dei dati delle entità di Machine Learning deve far parte del ciclo di creazione fino a quando non si è certi di ricevere i dati previsti.

Posizione dei dati e uso di chiavi

LUIS estrae i dati dall'espressione dell'utente nell'endpoint pubblicato. La richiesta HTTPS (POST o GET) contiene l'espressione e alcune configurazioni facoltative, ad esempio ambienti di staging o produzione.

Richiesta dell'endpoint di previsione V2

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris

Richiesta dell'endpoint di previsione V3

https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris

appID è disponibile nella pagina Settings (Impostazioni) dell'app LUIS e in parte dell'URL (dopo /apps/) quando si modifica quell'app LUIS. subscription-key è la chiave endpoint usata per eseguire query nell'app. Sebbene sia possibile usare la chiave di creazione/avvio durante l'apprendimento di LUIS, è importante modificare la chiave endpoint in una chiave che supporti l'uso previsto di LUIS. L'unità timezoneOffset è in minuti.

La risposta HTTPS contiene tutte le informazioni su finalità ed entità che LUIS è in grado di determinare in base al modello attualmente pubblicato dell'endpoint di staging o produzione. L'URL dell'endpoint è disponibile nel sito Web LUIS, nella sezione Manage (Gestisci) della pagina Keys and endpoints (Chiavi ed endpoint).

Dati da finalità

I dati principali sono dati dal nome della finalità con il punteggio superiore. La risposta dell'endpoint è:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "entities": []
}
Oggetto dati Tipo di dati Posizione dei dati Valore
Finalità String topScoringIntent.intent "GetStoreInfo"

Se il chatbot o l'app per chiamate LUIS prende una decisione basata su più di un punteggio di finalità, restituire tutti i punteggi delle finalità.

Impostare il parametro querystring, verbose=true. La risposta dell'endpoint è:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "intents": [
    {
      "intent": "GetStoreInfo",
      "score": 0.984749258
    },
    {
      "intent": "None",
      "score": 0.2040639
    }
  ],
  "entities": []
}

Le finalità vengono ordinate dal punteggio più alto al più basso.

Oggetto dati Tipo di dati Posizione dei dati Valore Punteggio
Finalità String intents[0].intent "GetStoreInfo" 0,984749258
Finalità String intents[0].intent "None" 0,0168218873

Se si aggiungono domini predefiniti, il nome della finalità indica il dominio, ad esempio Utilties o Communication e la finalità:

{
  "query": "Turn on the lights next monday at 9am",
  "topScoringIntent": {
    "intent": "Utilities.ShowNext",
    "score": 0.07842206
  },
  "intents": [
    {
      "intent": "Utilities.ShowNext",
      "score": 0.07842206
    },
    {
      "intent": "Communication.StartOver",
      "score": 0.0239675418
    },
    {
      "intent": "None",
      "score": 0.0168218873
    }],
  "entities": []
}
Domain Oggetto dati Tipo di dati Posizione dei dati Valore
Utilità Finalità String intents[0].intent "Utilities.ShowNext"
Comunicazione Finalità String intents[0].intent Communication.StartOver"
Finalità String intents[2].intent "None"

Dati da entità

La maggior parte dei bot di chat e delle applicazioni richiede più del nome della finalità. Questi dati aggiuntivi e facoltativi provengono da entità trovate nell'espressione. Ogni tipo di entità restituisce informazioni diverse sulla corrispondenza.

Una singola parola o frase dell'espressione può corrispondere a più di un'entità. In questo caso, ogni entità corrispondente viene restituita con il relativo punteggio.

Tutte le entità vengono restituite nella matrice di entità della risposta dall'endpoint

Entità in formato token restituita

Esaminare il supporto dei token in LUIS.

Dati entità predefinita

Vengono trovate le entità predefinite in base alla corrispondenza con espressione regolare usando il progetto Recognizers-Text open-source. Le entità predefinite vengono restituite nella matrice di entità e usano il nome tipo con prefisso builtin::.

Dati entità elenco

Le entità elenco rappresentano un set fisso e chiuso di parole correlate insieme ai relativi sinonimi. LUIS non individua valori aggiuntivi per le entità elenco. Usare la funzione consigliata per visualizzare i suggerimenti per le nuove parole in base all'elenco corrente. Se sono presenti più entità elenco con lo stesso valore, ogni entità viene restituita nella query endpoint.

Dati entità espressione regolare

Un'entità di espressione regolare estrae un'entità in base a un'espressione regolare specificata.

Estrazione di nomi

Ottenere i nomi da un'espressione è difficile perché un nome può essere qualsiasi combinazione di lettere e parole. Le opzioni disponibili variano a seconda del tipo di nome estratto. I suggerimenti seguenti non sono regole, ma linee guida.

Aggiungere le entità PersonName e GeographyV2 predefinite

Le entità PersonName e GeographyV2 sono disponibili in alcune impostazioni cultura della lingua.

Nomi di persone

I nomi delle persone possono presentare un formato a seconda della lingua e delle impostazioni cultura. Usare un'entità personName predefinita o un'entità semplice con ruoli di nome e cognome.

Se si usa l'entità semplice, assicurarsi di fornire esempi che usano il nome e il cognome in parti diverse dell'espressione, nelle espressioni di lunghezze diverse e espressioni in tutte le finalità, inclusa la finalità Nessuno. Rivedere regolarmente le espressioni endpoint per etichettare qualsiasi nome non stimato correttamente.

Nomi di località

I nomi delle località sono impostati e noti, ad esempio città, contee, stati, province e paesi/aree geografiche. Usare l'entità predefinita geographyV2 per estrarre le informazioni sulla posizione.

Nomi nuovi ed emergenti

Alcune app devono essere in grado di trovare nomi nuovi ed emergenti, ad esempio prodotti o aziende. Questi tipi di nomi sono il tipo più difficile di estrazione dei dati. Iniziare con un'entità semplice e aggiungere un elenco di frasi. Rivedere regolarmente le espressioni endpoint per etichettare qualsiasi nome non stimato correttamente.

Dati entità Pattern.any

Pattern.any è un segnaposto a lunghezza variabile usato solo nell'espressione modello di un modello per contrassegnare dove inizia e termina l'entità. L'entità usata nel modello deve essere trovata affinché il modello venga applicato.

Analisi valutazione

Se l'analisi del sentiment è configurata durante la pubblicazione, la risposta JSON LUIS include l'analisi del sentiment. Altre informazioni sull'analisi del sentiment sono disponibili nella documentazione del servizio linguistico.

Dati entità estrazione frasi chiave

L'entità di estrazione frasi chiave restituisce frasi chiave nell'espressione, fornite dal servizio lingua.

Dati corrispondenti a più entità

LUIS restituisce tutte le entità individuate nell'espressione. Di conseguenza, il chatbot potrebbe dover prendere una decisione in base ai risultati.

Dati corrispondenti a più entità elenco

Se una parola o frase corrisponde a più entità elenco, la query di endpoint restituisce ciascuna entità elenco.

Per la query when is the best time to go to red rock?e l'app ha la parola red in più di un elenco, LUIS riconosce tutte le entità e restituisce una matrice di entità come parte della risposta dell'endpoint JSON.

Passaggi successivi

Vedere Aggiungere entità per ulteriori informazioni sull'aggiunta di entità all'app LUIS.