Modelli nelle app LUIS

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.

Un criterio consente di ottenere maggiore accuratezza in relazione a una finalità senza fornire molte altre espressioni. Un criterio consente di ottenere maggiore accuratezza in relazione a una finalità senza fornire molte altre espressioni.

I criteri risolvono il problema dell'attendibilità ridotta della finalità

Si consideri un'app di risorse umane che genera report nel grafico aziendale su un dipendente. Dato un nome e una relazione dipendente, LUIS restituisce i dipendenti coinvolti. Si consideri un dipendente, Tom, con un manager di nome Alice, e un team di sottoposti che si chiamano Michael, Rebecca e Carl.

Screenshot che mostra l'uso di modelli

Espressioni Finalità stimata Punteggio di finalità
Chi è il sottoposto di Tom? GetOrgChart 0,30
Come si chiama il sottoposto di Tom? GetOrgChart 0,30

Se un'app ha tra le 10 e le 20 espressioni con diverse lunghezze di frase, diverso ordine di parole e persino diverse parole (sinonimi di "sottoposto", "gestire", "report"), LUIS può restituire un punteggio corrispondente a un'attendibilità bassa. Creare un modello per consentire a LUIS di comprendere l'importanza dell'ordine delle parole.

I criteri risolvono le situazioni seguenti:

  • Il punteggio della finalità è basso
  • La finalità corretta non è il punteggio più alto ma è troppo vicina al punteggio più alto.

I criteri non sono una garanzia della finalità

I modelli usano una combinazione di tecniche di stima. L'impostazione di una finalità per l'espressione di un modello in un criterio non è una garanzia per la stima della finalità ma è un segnale.

I modelli non migliorano il rilevamento delle entità di Machine Learning

Un modello è destinato principalmente alla stima delle finalità e dei ruoli. L'entità "pattern.any" viene usata per estrarre entità in formato libero. Mentre i modelli usano entità, un modello non consente di rilevare un'entità di Machine Learning.

Non aspettarsi un miglioramento della stima delle entità se si comprimono più espressioni in un singolo criterio. Per usare entità semplici dall'app, è necessario aggiungere espressioni o usare entità elenco.

I criteri usano i ruoli delle entità

Se due o più entità in un criterio hanno una relazione di tipo contestuale, i criteri usano i ruoli delle entità per estrarre informazioni contestuali sull'entità.

Punteggi di stima con e senza criteri

Con un numero sufficiente di espressioni di esempio, LUIS potrebbe aumentare l'attendibilità delle stime anche senza criteri. I criteri aumentano il punteggio di attendibilità senza dovere specificare un numero così elevato di espressioni.

Corrispondenza dei criteri

Per cercare una corrispondenza tra criteri, prima vengono rilevate le entità all'interno del criterio, poi vengono convalidate le parole restanti e l'ordine delle parole del criterio. Le entità nel criterio sono necessarie perché venga individuata una corrispondenza del criterio. Il criterio viene applicato a livello di token, non a livello di carattere.

Entità pattern.any

L'entità pattern.any consente di trovare i dati in formato libero nel caso in cui la formulazione dell'entità renda difficile determinare la fine dell'entità dal resto dell'espressione.

Si consideri, ad esempio, un'app Risorse umane che consente ai dipendenti di trovare documenti aziendali. Questa app potrebbe dover comprendere le espressioni di esempio seguenti.

  • "Dove si trova HRF-123456?"
  • "Chi ha creato HRF-123234?"
  • "HRF-456098 è pubblicato in francese?"

Tuttavia, ogni documento ha un nome formattato (usato nell'elenco precedente) e un nome leggibile, ad esempio Richiedi rilocazione dal dipendente nuovo all'azienda 2018 versione 5.

Le espressioni con il nome leggibile possono essere simili alle seguenti:

  • "Dove è Richiesta di trasferimento del nuovo dipendente dell'azienda 2018 versione 5?"
  • "Chi ha creato "Richiesta di trasferimento del nuovo dipendente dell'azienda 2018 versione 5"?"
  • La Richiesta di trasferimento del nuovo dipendente dell'azienda 2018 versione 5 viene pubblicata in francese?"

Le espressioni includono parole che possono confondere LUIS su dove termina l'entità. Usando un'entità Pattern.any in un criterio è possibile specificare l'inizio e la fine del nome del documento in modo che LUIS lo estragga correttamente. Ad esempio, le espressioni modello seguenti:

  • Dov'è {NomeModulo}[?]
  • Chi ha creato {NomeModulo}[?]
  • {FormName} è pubblicato in francese[?]

Procedure consigliate per i modelli:

Aggiungere modelli nelle iterazioni successive

È necessario comprendere il comportamento dell'app prima di aggiungere modelli perché i modelli sono ponderati più pesantemente rispetto alle espressioni di esempio e confidenza asimmetria.

Dopo aver compreso il comportamento dell'app, aggiungere modelli quando si applicano all'app. Non è necessario aggiungerli ogni volta che si esegue l'iterazione nella progettazione dell'app.

Non è sbagliato aggiungerle all'inizio della progettazione del modello, ma è più facile vedere come ogni criterio influisce sui risultati dopo che il modello è stato testato con le espressioni.

Non aggiungere molti criteri

Non aggiungere troppi criteri. LUIS apprenderà rapidamente con un minor numero di esempi. Non sovraccaricare il sistema inutilmente.

Funzionalità

Nell'apprendimento automatico, una funzionalità è un tratto distintivo o un attributo di dati rilevato dal sistema e attraverso cui il sistema apprende.

Le funzionalità di Machine Learning forniscono a LUIS segnali importanti per individuare le caratteristiche che distinguono un concetto. Sono suggerimenti che LUIS può usare, ma non sono regole rigide. LUIS usa questi hint con le etichette per trovare i dati.

Una funzionalità può essere descritta come una funzione, ad esempio f(x) = y. Nell'espressione di esempio, la funzionalità indica dove cercare il tratto distintivo. Usare queste informazioni per creare lo schema.

Tipi di caratteristiche

Le funzionalità sono una parte necessaria della progettazione dello schema. LUIS supporta sia elenchi di frasi che modelli come funzionalità:

  • Funzionalità degli elenchi di frasi
  • Modello (finalità o entità) come funzionalità

Trovare le funzionalità nelle espressioni di esempio

Poiché LUIS è un'applicazione basata sul linguaggio, le funzionalità sono basate su testo. Scegliere il testo che indica il tratto che si desidera distinguere. Per LUIS l'unità più piccola è il token. Per la lingua inglese, un token è un intervallo contiguo di lettere e numeri senza spazi o punteggiatura.

Poiché gli spazi e la punteggiatura non sono token, concentrarsi sugli indizi di testo che è possibile usare come funzionalità. Ricordarsi di includere varianti di parole, ad esempio:

  • Forme plurali
  • Tempi verbi
  • Abbreviations
  • Ortografia ed errori di ortografia

Determinare se il testo richiede quanto segue perché distingue un tratto:

  • Trova la corrispondenza con una parola o una frase esatta: è consigliabile aggiungere un'entità di espressione regolare o un'entità elenco come funzionalità all'entità o alla finalità.
  • Trovare una corrispondenza con un concetto noto, ad esempio date, ore o nomi di persone: usare un'entità predefinita come funzionalità per l'entità o la finalità.
  • Informazioni sui nuovi esempi nel tempo: usare un elenco di frasi di alcuni esempi del concetto come funzionalità per l'entità o la finalità.

Creare un elenco di frasi per un concetto

Un elenco di frasi è un elenco di parole o frasi che descrivono un concetto. Un elenco di frasi viene applicato come corrispondenza senza distinzione tra maiuscole e minuscole a livello di token.

Quando si aggiunge un elenco di frasi, è possibile impostare la funzionalità su globale. Una funzionalità globale si applica all'intera app.

Quando usare un elenco di frasi

Usare un elenco di frasi quando è necessaria l'app LUIS per generalizzare e identificare nuovi elementi per il concetto. Gli elenchi di frasi sono simili al vocabolario specifico del dominio. Migliorano la qualità della comprensione per finalità ed entità.

Come usare un elenco di frasi

Con un elenco di frasi, LUIS considera il contesto e generalizza per identificare gli elementi simili, ma non sono, una corrispondenza di testo esatta. Seguire questa procedura per usare un elenco di frasi:

  1. Iniziare con un'entità di Machine Learning:
  2. Aggiungere espressioni di esempio.
  3. Etichettare con un'entità di Machine Learning.
  4. Aggiungere un elenco di frasi:
  5. Aggiungere parole con un significato simile. Non aggiungere ogni parola o frase possibile. Aggiungere invece alcune parole o frasi alla volta. Ripetere quindi il training e pubblicare.
  6. Rivedere e aggiungere parole suggerite.

Uno scenario tipico per un elenco di frasi

Uno scenario tipico per un elenco di frasi consiste nell'aumentare le parole correlate a un'idea specifica.

I termini medici sono un buon esempio di parole che potrebbero avere bisogno di un elenco di frasi per aumentare il loro significato. Questi termini possono avere significati fisici, chimici, terapeutici o astratti specifici. LUIS non saprà che i termini sono importanti per il dominio soggetto senza un elenco di frasi.

Ad esempio, per estrarre i termini medici:

  1. Creare espressioni di esempio ed etichettare termini medici all'interno di tali espressioni.
  2. Creare un elenco di frasi con esempi dei termini all'interno del dominio soggetto. Questo elenco di frasi deve includere il termine effettivo etichettato e altri termini che descrivono lo stesso concetto.
  3. Aggiungere l'elenco di frasi all'entità o alla sottoentità che estrae il concetto usato nell'elenco di frasi. Lo scenario più comune è un componente (figlio) di un'entità di Machine Learning. Se l'elenco di frasi deve essere applicato a tutte le finalità o alle entità, contrassegnare l'elenco di frasi come elenco di frasi globale. Il flag enabledForAllModels controlla questo ambito del modello nell'API.

Corrispondenze di token per un elenco di frasi

Un elenco di frasi si applica sempre a livello di token. Nella tabella seguente viene illustrato come un elenco di frasi con la parola Ann viene applicato alle varianti degli stessi caratteri in altro ordine.

Variante del token di "Ann" Corrispondenza dell'elenco di frasi quando viene trovato il token
ANN
aNN
Sì, il token è Ann
Ann Sì, il token è Ann
Anne No, il token è Anne

Un modello come funzionalità consente a un altro modello

È possibile aggiungere un modello (finalità o entità) come funzionalità a un altro modello (finalità o entità). Aggiungendo una finalità o un'entità esistente come funzionalità, si aggiunge un concetto ben definito con esempi etichettati.

Quando si aggiunge un modello come funzionalità, è possibile impostare la funzionalità come segue:

  • Obbligatorio. È necessario trovare una funzionalità necessaria affinché il modello venga restituito dall'endpoint di stima.
  • Globale. Una funzionalità globale si applica all'intera app.

Quando usare un'entità come funzionalità per una finalità

Aggiungere un'entità come funzionalità a una finalità quando il rilevamento di tale entità è significativo per la finalità.

Ad esempio, se la finalità è quella di prenotare un volo, ad esempio BookFlight e l'entità è informazioni sui biglietti (ad esempio il numero di postazioni, l'origine e la destinazione), l'individuazione dell'entità di informazioni sui biglietti dovrebbe aggiungere peso significativo alla previsione della finalità BookFlight.

Quando usare un'entità come funzionalità per un'altra entità

Un'entità (A) deve essere aggiunta come funzionalità a un'altra entità (B) quando il rilevamento di tale entità (A) è significativo per la stima dell'entità (B).

Ad esempio, se un'entità indirizzo di spedizione è contenuta in una sottoentità indirizzo stradale, la ricerca della sottoentità dell'indirizzo stradale aggiunge un peso significativo alla stima per l'entità indirizzo di spedizione.

  • Indirizzo di spedizione (entità di Machine Learning):
    • Numero civico (sottoentità)
    • Indirizzo stradale (sottoentità)
    • Città (sottoentità)
    • Stato o Provincia (subentità)
    • Paese/Area geografica (sottoentità)
    • Codice postale (sottoentità)

Sottoentità annidate con funzionalità

Una sottoentità di Machine Learning indica che un concetto è presente all'entità padre. L'elemento padre può essere un'altra sottoentità o l'entità principale. Il valore della sottoentità funge da caratteristica per il relativo elemento padre.

Una sottoentità può avere sia un elenco di frasi che un modello (un'altra entità) come funzionalità.

Quando la sottoentità ha un elenco di frasi, aumenta il vocabolario del concetto, ma non aggiungerà informazioni alla risposta JSON della stima.

Quando la sottoentità ha una funzionalità di un'altra entità, la risposta JSON include i dati estratti di tale altra entità.

Funzionalità necessarie

È necessario trovare una funzionalità necessaria affinché il modello venga restituito dall'endpoint di stima. Usare una funzionalità necessaria quando si sa che i dati in ingresso devono corrispondere alla funzionalità.

Se il testo dell'espressione non corrisponde alla funzionalità richiesta, non verrà estratto.

Una funzionalità necessaria usa un'entità non di Machine Learning:

  • Entità di espressioni normali
  • Entità elenco
  • Entità predefinita

Se si è certi che il modello verrà trovato nei dati, impostare la funzionalità in base alle esigenze. Una funzionalità obbligatoria non restituisce nulla se non viene trovata.

Continuando con l'esempio dell'indirizzo di spedizione:

Indirizzo di spedizione (entità basata su Machine Learning)

  • Numero civico (sottoentità)
  • Indirizzo stradale (sottoentità)
  • Nome strada (sottoentità)
  • Città (sottoentità)
  • Stato o Provincia (subentità)
  • Paese/Area geografica (sottoentità)
  • Codice postale (sottoentità)

Funzionalità richiesta con entità predefinite

Le entità predefinite, ad esempio città, stato e paese/area geografica, sono in genere un set chiuso di elenchi, ovvero non cambiano molto nel tempo. Queste entità potrebbero avere le funzionalità consigliate pertinenti e tali funzionalità potrebbero essere contrassegnate come necessarie. Tuttavia, il flag isRequired è correlato solo all'entità a cui è assegnato e non influisce sulla gerarchia. Se la funzionalità dell'entità secondaria predefinita non viene trovata, ciò non influirà sul rilevamento e sulla restituzione dell'entità padre.

Come esempio di una funzionalità obbligatoria, prendere in considerazione la possibilità di rilevare gli indirizzi. È possibile prendere in considerazione la possibilità di rendere un numero di strada un requisito. In questo modo un utente può immettere "1 Microsoft Way" o "One Microsoft Way" ed entrambi si risolverebbero nel numero numerico "1" per l'entità secondaria del numero di strada. Per altre informazioni, vedere l'articolo sull'entità predefinita.

Funzionalità necessaria con le entità elenco

Un'entità di elenco viene usata come elenco di nomi canonici insieme ai relativi sinonimi. Come funzionalità necessaria, se l'espressione non include il nome canonico o un sinonimo, l'entità non viene restituita come parte dell'endpoint di stima.

Si supponga che la società sia disponibile solo in un set limitato di paesi/aree geografiche. È possibile creare un'entità elenco che include diversi modi per fare riferimento al paese o all'area geografica del cliente. Se LUIS non trova una corrispondenza esatta all'interno del testo dell'espressione, l'entità (con la funzionalità necessaria dell'entità elenco) non viene restituita nella stima.

Nome canonico** Sinonimi
Stati Uniti Isole
U.S.A
Stati Uniti
USA
0

Un'applicazione client, ad esempio un chatbot, può porre una domanda di completamento per assistenza. Ciò consente al cliente di comprendere che la selezione del paese/area geografica è limitata e obbligatoria.

Funzionalità obbligatoria con entità di espressione regolare

Un'entità di espressione regolare usata come funzionalità necessaria offre funzionalità avanzate di corrispondenza del testo.

Nell'esempio di indirizzo di spedizione è possibile creare un'espressione regolare che acquisisce le regole di sintassi dei codici postali del paese o dell'area geografica.

Funzionalità globali

Anche se l'uso più comune consiste nell'applicare una funzionalità a un modello specifico, è possibile configurare la funzionalità come funzionalità globale per applicarla all'intera applicazione.

L'uso più comune per una funzionalità globale consiste nell'aggiungere un vocabolario aggiuntivo all'app. Ad esempio, se i clienti usano una lingua primaria, ma si prevede di poter usare un'altra lingua all'interno della stessa espressione, è possibile aggiungere una funzionalità che include parole dalla lingua secondaria.

Poiché l'utente si aspetta di usare la lingua secondaria in qualsiasi finalità o entità, aggiungere parole dalla lingua secondaria all'elenco di frasi. Configurare l'elenco di frasi come funzionalità globale.

Combinare le funzionalità per il vantaggio aggiunto

È possibile usare più funzionalità per descrivere un tratto o un concetto. Un'associazione comune consiste nell'usare:

Esempio: funzionalità dell'entità di prenotazione biglietti per un'app di viaggio

Come esempio di base, si consideri un'app per la prenotazione di un volo con finalità di prenotazione dei voli e un'entità di prenotazione biglietti. L'entità di prenotazione biglietti acquisisce le informazioni per prenotare un biglietto aereo in un sistema di prenotazione.

L'entità di Machine Learning per ticket-book ha due sottoentità per acquisire l'origine e la destinazione. Le funzionalità devono essere aggiunte a ogni sottoentità, non all'entità di primo livello.

Screenshot che mostra le entità di esempio per un'applicazione di prenotazione biglietti.

L'entità di prenotazione biglietti è un'entità di Machine Learning con delle sottoentità tra cui Origine e Destinazione. Queste sottoentità indicano entrambe una posizione geografica. Per estrarre le posizioni e distinguere tra Origine e Destinazione, ogni sottoentità deve avere delle funzionalità.

Type Sottoentità dell'origine Sottoentità di destinazione
Modello come funzionalità Entità geographyV2 predefinita Entità geographyV2 predefinita
Elenco di frasi Parole di origine: iniziare da, partire da, partenza Parole di destinazione: diretto, arrivare, atterrare, andare, destinazione, rimanere, partenza
Elenco di frasi Codici aeroporto - stesso elenco sia per l'origine che per la destinazione Codici aeroporto - stesso elenco sia per l'origine che per la destinazione
Elenco di frasi Nomi degli aeroporti - stesso elenco sia per l'origine che per la destinazione Codici aeroporto - stesso elenco sia per l'origine che per la destinazione

Se si prevede che le persone usino codici aeroportuali e nomi di aeroporto, LUIS deve avere elenchi di frasi che usano entrambi i tipi di frasi. I codici aeroportuali possono essere più comuni con il testo immesso in un chatbot, mentre i nomi degli aeroporti possono essere più comuni con la conversazione parlata, ad esempio un chatbot abilitato per il riconoscimento vocale.

I dettagli corrispondenti delle funzionalità vengono restituiti solo per i modelli, non per gli elenchi di frasi perché solo i modelli vengono restituiti in JSON di stima.

Etichettatura delle prenotazioni di biglietti nella finalità

Dopo aver creato l'entità di Machine Learning, è necessario aggiungere espressioni di esempio a una finalità ed etichettare l'entità padre e tutte le sottoentità.

Per l'esempio di prenotazione dei biglietti, etichettare le espressioni di esempio nella finalità con l'entità TicketBooking e le eventuali sottoentità nel testo.

Screenshot che mostra l'etichettatura per un'espressione di esempio.

Esempio: app per l'ordinamento della pizza

Per un secondo esempio, si consideri un'app per un ristorante di pizza, che riceve ordini di pizza, inclusi i dettagli del tipo di pizza che qualcuno sta ordinando. Ogni dettaglio della pizza deve essere estratto, se possibile, per completare l'elaborazione dell'ordine.

L'entità di Machine Learning in questo esempio è più complessa con sottoentità annidate, elenchi di frasi, entità predefinite ed entità personalizzate.

Screenshot che mostra un'entità di Machine Learning con sottoentità diverse.

In questo esempio vengono usate funzionalità a livello di sottoentità e figlio del livello di sottoentità. Quale livello ottiene il tipo di elenco di frasi o modello come funzionalità è una parte importante della progettazione dell'entità.

Anche se le sottoentità possono avere molti elenchi di frasi come funzionalità che consentono di rilevare l'entità, ogni sottoentità ha un solo modello come funzionalità. In questa app per la prenotazione della pizza, questi modelli sono principalmente elenchi.

Screenshot che mostra un'entità di Machine Learning con molti elenchi di frasi come funzionalità.

Le espressioni di esempio etichettate correttamente vengono visualizzate in modo da mostrare come vengono annidate le entità.

Passaggi successivi