Modelli nelle app LUIS

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.

I modelli sono progettati per migliorare l'accuratezza quando più espressioni sono molto simili. Un criterio consente di ottenere maggiore accuratezza per una finalità senza fornire più 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 subordinati denominato Michael, Rebecca e Carl.

Screenshot che mostra l'uso dei 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 superiore, ma troppo vicino al punteggio superiore.

I criteri non sono una garanzia della finalità

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

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

Dato un numero sufficiente di espressioni di esempio, LUIS può aumentare la probabilità di stima senza modelli. I criteri aumentano il punteggio di attendibilità senza dovere specificare un numero così elevato di espressioni.

Criteri di ricerca

Un criterio viene confrontato rilevando prima le entità all'interno del criterio, quindi convalidando il resto delle parole 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 sia un nome formattato (usato nell'elenco precedente) sia un nome leggibile, ad esempio Richiedere la rilocazione dal dipendente nuovo all'azienda 2018 versione 5.

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

  • "Where is Request relocation from employee new to the company 2018 version 5?"
  • "Chi ha creato "Richiedere la rilocazione dal dipendente nuovo all'azienda 2018 versione 5"?"
  • La richiesta di rilocazione da un dipendente nuovo all'azienda 2018 versione 5 è pubblicata in francese?"

Le espressioni includono parole che possono confondere LUIS sulla posizione in cui termina l'entità. L'uso di un'entità Pattern.any in un modello consente di specificare l'inizio e la fine del nome del documento, quindi LUIS estrae correttamente il nome del modulo. 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 in modo più elevato rispetto alle espressioni di esempio e genereranno un'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 c'è alcun danno nell'aggiunta all'inizio della progettazione del modello, ma è più facile vedere come ogni modello modifica il modello dopo che il modello viene testato con espressioni.

Non aggiungere molti criteri

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

Funzionalità

In Machine Learning, una funzionalità è un tratto distintivo o attributo di dati che il sistema osserva e apprende.

Le funzionalità di Machine Learning forniscono a LUIS importanti segnali per individuare i concetti 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 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 funzionalità

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

  • Funzionalità elenco frasi
  • Modello (finalità o entità) come funzionalità

Trovare le funzionalità nelle espressioni di esempio

Poiché LUIS è un'applicazione basata sulla lingua, 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
  • Abbreviazioni
  • Ortografia e 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à.
  • Trova la corrispondenza con un concetto noto come date, ore o nomi di persone: usare un'entità predefinita come funzionalità per l'entità o la finalità.
  • Informazioni su 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 come 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 a, 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. Etichetta 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. Esaminare 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 conosce 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 tra tutte le finalità o le entità, contrassegnare l'elenco di frasi come elenco di frasi globali. Il flag enabledForAllModels controlla l'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 si applica alle varianti degli stessi caratteri in tale ordine.

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

Un modello come funzionalità consente 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 che contiene esempi etichettati.

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

  • Obbligatorio. È necessario trovare una funzionalità necessaria per restituire il modello 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, origine e destinazione), trovare l'entità informazioni sul ticket deve aggiungere peso significativo alla stima della finalità BookFlight .

Quando usare un'entità come funzionalità a 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à di indirizzo di strada, la ricerca della sottoentità dell'indirizzo di strada aggiunge un peso significativo alla stima per l'entità dell'indirizzo di spedizione.

  • Indirizzo di spedizione (entità di Machine Learning):
    • Numero di strada (sottoentità)
    • Indirizzo di strada (sottoentità)
    • Città (sottoentità)
    • Stato o Provincia (sottoentità)
    • Paese/Area geografica (subentità)
    • 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 funzionalità per il relativo 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 per restituire il modello dall'endpoint di stima. Usare una funzionalità necessaria quando si conosce 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à richiesta non restituisce alcun elemento se non viene trovato.

Continuare con l'esempio dell'indirizzo di spedizione:

Indirizzo di spedizione (entità appresa dal computer)

  • Numero di strada (sottoentità)
  • Indirizzo di strada (sottoentità)
  • Nome della strada (sottoentità)
  • Città (sottoentità)
  • Stato o Provincia (sottoentità)
  • Paese/Area geografica (subentità)
  • 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, il che significa che non cambiano molto nel tempo. Queste entità potrebbero avere le funzionalità consigliate pertinenti e tali funzionalità potrebbero essere contrassegnate come richiesto. Tuttavia, il flag isRequired è correlato solo all'entità assegnata a e non influisce sulla gerarchia. Se la funzionalità di entità secondaria predefinita non viene trovata, questo non influisce sul rilevamento e sulla restituzione dell'entità padre.

Come esempio di una funzionalità necessaria, prendere in considerazione l'intenzione di rilevare gli indirizzi. È possibile prendere in considerazione la possibilità di rendere un numero di strada un requisito. Ciò consentirà a un utente di immettere "1 Microsoft Way" o "One Microsoft Way" ed entrambi verranno risolti nel numero numerico "1" per l'entità secondaria del numero di strada. Per altre informazioni, vedere l'articolo sull'entità predefinita.

Funzionalità obbligatoria con entità elenco

Un'entità 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 l'azienda viene fornita solo a 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 U.S.
USA
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 o dell'area geografica è limitata e necessaria.

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/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 prevede 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ù di una 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 ticket.

L'entità ticket-booking è un'entità di Machine Learning, con sottoentità tra cui Origin e Destination. Queste sottoentità indicano entrambe una posizione geografica. Per estrarre le posizioni e distinguere tra Origin e Destination, ogni sottoentità deve avere caratteristiche.

Tipo Sottoentità di origine Sottoentità di destinazione
Modello come funzionalità Entità predefinita geographyV2 Entità predefinita geographyV2
Elenco di frasi Parole di origine : iniziare da, iniziare da, lasciare Parole di destinazione : per, arrivare, atterrare, andare, andare, rimanere, intestazione
Elenco di frasi Codici di aeroporto - stesso elenco sia per l'origine che per la destinazione Codici di aeroporto - stesso elenco sia per l'origine che per la destinazione
Elenco di frasi Nomi di aeroporto: lo stesso elenco sia per l'origine che per la destinazione Codici di aeroporto - stesso elenco sia per l'origine che per la destinazione

Se si prevede che le persone usino codici di aeroporto e nomi di aeroporto, LUIS deve avere elenchi di frasi che usano entrambi i tipi di frasi. I codici di aeroporto 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 ticket, etichettare le espressioni di esempio nella finalità con l'entità TicketBooking ed 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 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.

Questo esempio usa le 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 di 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 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