Compilare un'applicazione LUIS scomponibile
Importante
LUIS verrà ritirato il 1 ottobre 2025 e a partire dal 1 aprile 2023 non è più possibile creare nuove risorse LUIS. Si consiglia di eseguire la migrazione delle applicazioni LUIS a comprensione del linguaggio di conversazione per sfruttare appieno un supporto costante per i prodotti e le funzionalità multilingue.
In questa esercitazione sarà possibile creare un'applicazione LUIS per telecomunicazioni in grado di stimare intenzioni utente diverse. Al termine dell'esercitazione, è necessario disporre di un'applicazione per telecomunicazioni in grado di stimare le intenzioni degli utenti in base al testo fornito dagli utenti.
Verranno illustrati diversi scenari utente (finalità), ad esempio:
- Iscrizione a una nuova linea di telecomunicazioni
- Aggiornamento di un livello esistente
- Pagamento di una fattura
In questa esercitazione si apprenderà come:
- Creare un'applicazione LUIS
- Creare finalità
- Aggiungere entità
- Aggiungere espressioni
- Etichettare le espressioni di esempio
- Eseguire il training di un'app
- Pubblicare un'app
- Ottenere stime dall'endpoint pubblicato
Creare un'applicazione LUIS
Accedere al portale LUIS
Creare una nuova applicazione selezionando +Nuova app.
Nella finestra visualizzata immettere il nome "Telecom Tutorial", mantenendo le impostazioni cultura predefinite, inglese. Gli altri campi sono facoltativi, non impostarli. Selezionare Fatto.
Intenzioni dell'utente come finalità
La prima cosa che si vedrà nella sezione Build è la finalità dell'app. Le finalità rappresentano un'attività o un'azione che un utente vuole eseguire.
Si supponga di avere un'applicazione LUIS per telecomunicazioni, cosa sarebbe necessario per un utente?
Probabilmente sarebbe necessario eseguire un tipo di azione dell'utente o chiedere assistenza. Un altro utente potrebbe voler aggiornare il livello o pagare una fattura
Lo schema risultante è il seguente. Per altre informazioni, vedere Procedure consigliate per la pianificazione dello schema.
Intent | Scopo |
---|---|
UserActions | Determinare le azioni dell'utente |
Help | Richiedere assistenza |
UpdateTier | Aggiornare il livello corrente |
PayBill | Pagare una fattura in sospeso |
None | Determinare se l'utente sta chiedendo qualcosa per cui l'app LUIS non è progettata per rispondere. Questa finalità viene fornita come parte della creazione dell'app e non può essere eliminata. |
Creare una nuova finalità
La finalità viene usata per classificare le espressioni utente in base all'intenzione dell'utente, determinata dal testo in linguaggio naturale.
Per classificare un'espressione, sono necessari esempi di espressioni utente che dovranno essere classificate con questa finalità.
Selezionare Compila dal menu di spostamento in alto e quindi selezionare Finalità sul lato sinistro della schermata. Selezionare + Create (Crea) per creare una nuova finalità. Immettere il nuovo nome della finalità, "UserAction", quindi selezionare Fine
UserAction può essere una delle molte finalità. Ad esempio, alcuni utenti potrebbero voler iscriversi a una nuova riga, mentre altri potrebbero chiedere di recuperare informazioni.
Aggiungere a questa finalità diverse espressioni di esempio che verranno presumibilmente usate dagli utenti:
- Ciao. Desidero iscrivermi per una nuova riga
- È possibile iscriversi per una nuova riga?
- Ciao, voglio una nuova riga
- Ho dimenticato il mio numero di riga!
- Vorrei un nuovo numero di riga
Per la finalità PayBill, alcune espressioni potrebbero essere:
- Voglio pagare la fattura
- Liquidare la fattura
- Paga conto
- Voglio chiudere il mio saldo corrente
- Questo Voglio pagare la fattura corrente
Fornendo espressioni di esempio, LUIS impara quali sono i tipi di espressione che dovranno essere previste per la finalità in questione. Questi sono esempi positivi. Le espressioni in tutte le altre finalità sono considerate esempi negativi per questa finalità. Idealmente, più saranno le espressioni di esempio aggiunte, migliore sarà la stima dell'app.
Queste espressioni solo a scopo dimostrativo. Un'app reale dovrebbe includere almeno 15-30 espressioni di lunghezza, ordine e conteggio delle parole, tempo verbale, correttezza grammaticale e punteggiatura variabili.
Creazione delle finalità rimanenti
Eseguire i passaggi precedenti per aggiungere le finalità seguenti all'app:
"Help"
- "Ho bisogno di aiuto"
- "Ho bisogno di assistenza"
- "Aiutatemi per favore"
- "Qualcuno può sostenermi?"
- "Sono bloccato, potete aiutarmi"
- "Posso ottenere aiuto?"
"UpdateTier"
- "Voglio aggiornare il livello"
- "Aggiornare il livello"
- "Voglio passare al livello VIP"
- "Modificare la sottoscrizione al livello standard"
Espressioni di esempio per la finalità Nessuno
L'applicazione client deve stabilire se un'espressione non è significativa o appropriata per l'applicazione. La finalità “None” (Nessuna) viene aggiunta a ciascuna applicazione come parte del processo di creazione per determinare se l'applicazione client non deve rispondere a un'espressione.
Se LUIS restituisce la finalità “None” (Nessuna) per un'espressione, l'applicazione client può chiedere se l'utente intende terminare la conversazione oppure offrire altre indicazioni per continuare la conversazione.
Se si lascia vuota la finalità “None” (Nessuna), un'espressione che deve essere stimata all'esterno del dominio soggetto sarà stimata in una delle finalità del dominio soggetto esistente. Ciò determinerà operazioni non corrette basate su una stima errata da parte dell'applicazione client, ad esempio un chatbot.
Selezionare Intents (Finalità) dal pannello di sinistra.
Selezionare la finalità None (Nessuna). Aggiungere tre espressioni che l'utente potrebbe usare, ma che non sono pertinenti per l'app Telecom. Questi esempi non devono usare parole che ci si aspetta nel dominio soggetto, ad esempio livello, aggiornamento, iscrizione, fattura.
- "Quando è il mio volo?"
- "Devo cambiare l’ordine della mia pizza per favore"
- "Che tempo farà oggi?"
Aggiungere entità
Un'entità è un elemento che è rilevante per la finalità dell'utente. Le entità definiscono i dati che possono essere estratti dall'espressione e sono essenziali per completare l'azione richiesta da un utente.
Nella sezione build, selezionare Entities (Entità).
Per aggiungere una nuova entità, selezionare +Crea
In questo esempio verranno create due entità, "UpdateTierInfo" come tipo di entità appreso dal computer e "Livello" come tipo di entità elenco. Luis consente anche di creare diversi tipi di entità.
Nella finestra visualizzata immettere "UpdateTierInfo" e selezionare Machine learned dai tipi disponibili. Selezionare la casella Aggiungi struttura per poter aggiungere una struttura a questa entità.
Selezionare Avanti.
Per aggiungere una sottoentità figlio, fare clic sul simbolo "+" e iniziare ad aggiungere l'elemento figlio. Per l'esempio di entità "UpdateTierInfo", sono necessari tre elementi:
- OriginalTier
- NewTier
- PhoneNumber
Fare clic su Crea dopo aver aggiunto tutte le sottoentità.
Verrà creata un'altra entità denominata "Livello", ma questa volta sarà un'entità elenco e includerà tutti i livelli che è possibile fornire: livello Standard, livello Premium e livello VIP.
A tale scopo, passare alla scheda entità e premere +crea e selezionare elenco dai tipi nella schermata visualizzata.
Aggiungere gli elementi all'elenco e, facoltativamente, è possibile aggiungere sinonimi per assicurarsi che tutti i casi di tale menzione vengano riconosciuti.
Tornare ora all'entità "UpdateTierInfo" e aggiungere l'entità "livello" come funzionalità per le entità "OriginalTier" e "newTier" create in precedenza. L'output dovrebbe essere simile al seguente:
È stato aggiunto il livello come funzionalità per "originalTier" e "newTier" ed è stata aggiunta l'entità "Phonenumber", ovvero un tipo Regex. Può essere creato nello stesso modo in cui è stato creato un machine learning e un'entità elenco.
Ora sono state create finalità, sono state aggiunte espressioni di esempio e sono state aggiunte entità. Sono state create quattro finalità (diverse dalla finalità "none") e tre entità.
Etichettare le espressioni di esempio
Viene creata l'entità basata su machine Learning e le sottoentità dispongono di funzionalità. Per completare il miglioramento dell'estrazione, le espressioni di esempio devono essere etichettate con le sottoentità.
Esistono due modi per etichettare le espressioni:
Usare lo strumento di etichettatura
- Per aprire l'Entity Palette (Tavolozza entità) selezionare il simbolo “@“ sulla barra degli strumenti contestuale.
- Selezionare ogni riga di entità nella tavolozza, quindi usare il cursore della tavolozza per selezionare l'entità in ogni espressione di esempio.
Evidenziare il testo trascinando il cursore. Usando il cursore, evidenziare il testo da etichettare. Nell'immagine seguente è stato evidenziato "vip - tier" e selezionato l'entità "NewTier".
Eseguire il training dell'app
In alto a destra nel sito Web LUIS selezionare il pulsante Train (Esegui il training).
Prima del training, assicurarsi che sia presente almeno un'espressione per ogni finalità.
Pubblicazione dell'app
Per ottenere una previsione di Language Understanding Intelligent Service (LUIS) in un chatbot o in un'altra applicazione client, è necessario pubblicare l'app nell'endpoint di previsione. Per pubblicare, è necessario eseguire il training dell'applicazione fist.
Selezionare Pubblica nel riquadro di spostamento in alto a destra.
Selezionare Slot di produzione e quindi Fatto.
Selezionare il collegamento Accedi agli URL degli endpoint nella notifica per passare alla pagina Risorse di Azure. Sarà possibile visualizzare gli URL solo se all'app è associata una risorsa di previsione. È anche possibile trovare la pagina Risorse di Azure facendo clic su Gestisci a sinistra della schermata.
Ottenere la stima della finalità
Selezionare Gestisci nel menu in alto a destra, quindi selezionare Risorse di Azure a sinistra.
Copiare l'URL di query di esempio e incollarlo in una nuova scheda del Web browser.
L'URL dell'endpoint avrà il formato seguente.
https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
Passare alla fine dell'URL nella barra degli indirizzi e sostituire il parametro stringa
query=
con:"Salve, Sto cercando un nuovo numero per favore”.
La query di espressione viene passata nell'URI. Questa espressione non è uguale a nessuna delle espressioni di esempio e deve essere un buon test per verificare se LUIS stima la finalità UserAction come finalità di punteggio superiore.
{ "query": "hello! i am looking for a new number please", "prediction": { "topIntent": "UserAction", "intents": { "UserAction": { "score": 0.8607431}, "Help":{ "score": 0.031376917}, "PayBill": { "score": 0.01989629}, "None": { "score": 0.013738701}, "UpdateTier": { "score": 0.012313577} }, "entities": {} } }
Il risultato JSON identifica la finalità di punteggio principale come proprietà prediction.topIntent. Tutti i punteggi sono compresi tra 1 e 0, con il punteggio migliore prossimo a 1.
Passaggi successivi dell'applicazione client
In questa esercitazione è stata creata un'app LUIS, sono state create le finalità, le entità, sono state aggiunte espressioni di esempio a ognuna delle finalità e alla finalità None (Nessuna) e sono stati eseguiti il training, la pubblicazione e il test a livello dell'endpoint. Questi sono i passaggi di base per la creazione di un modello LUIS.
LUIS non risponde alle espressioni dell'utente, si limita a identificare il tipo di informazione richiesta in linguaggio naturale. Il follow-up discorsivo viene fornito dall'applicazione client, ad esempio il servizio Azure Bot.
Pulire le risorse
Quando non è più necessaria, eliminare l'app LUIS. A questo scopo, selezionare App personali dal menu in alto a sinistra. Selezionare i puntini di sospensione (...) a destra del nome dell'app nell'elenco e quindi scegliere _Elimina. Nella finestra di dialogo popup denominata Elimina app selezionare OK.