Condividi tramite


Raccolta di dati per l'app

Importante

LUIS verrà ritirato il 1 ottobre 2025 e a partire dal 1 aprile 2023 non è più possibile creare nuove risorse LUIS. È consigliabile eseguire la migrazione delle applicazioni LUIS a comprensione del linguaggio di conversazione (CLU) per trarre vantaggio dal supporto continuo del prodotto e dalle funzionalità multilingua.

Un'app LUIS (Language Understanding) richiede dati come parte dello sviluppo di app.

Dati usati in LUIS

LUIS usa il testo come dati per eseguire il training e testare l'app LUIS per la classificazione per le finalità e per l'estrazione di entità. È necessario un set di dati sufficientemente grande che disponga di dati sufficienti per creare set di dati separati sia per il training che per i test, con la diversità e la distribuzione indicati in modo specifico di seguito. I dati in ciascun set non devono sovrapporsi.

Selezione dei dati di training per espressioni di esempio

Selezionare le espressioni per il set di training in base ai criteri seguenti:

  • I dati reali sono i migliori:

    • Dati reali dall'applicazione client: selezionare espressioni che sono dati reali dall'applicazione client. Se il cliente invia un modulo Web con la richiesta odierna e si sta creando un bot, è possibile iniziare usando i dati del modulo Web.
    • Dati di crowd sourced: se non si dispone di dati esistenti, prendere in considerazione le espressioni di crowdsourcing. Provare a creare espressioni di crowd source dal popolamento effettivo degli utenti per lo scenario per ottenere l'approssimazione migliore dei dati reali visualizzati dall'applicazione. Le espressioni umane con crowdsourcing sono migliori delle espressioni generate dal computer. Quando si compila un set di dati di espressioni sintetiche generate su modelli specifici, non sarà presente gran parte della variazione naturale che si noterà con gli utenti che creano le espressioni e non finiranno per generalizzare bene nell'ambiente di produzione.
  • Diversità dei dati:

    • Diversità dell'area: assicurarsi che i dati per ogni finalità siano il più diversificato possibile, tra cui formulazioni (scelta di parole) e grammatica. Se si sta insegnando una finalità sui criteri HR relativi ai giorni di ferie, assicurarsi di avere espressioni che rappresentano i termini usati per tutte le aree che si stanno servendo. Ad esempio, in Europa le persone potrebbe fare richieste in merito a taking a holiday e negli Stati Uniti potrebbe fare in richieste in merito a taking vacation days.
    • Diversità del linguaggio: se si hanno utenti con varie lingue native che comunicano in una seconda lingua, assicurarsi di avere espressioni che rappresentano parlanti non nativi.
    • Diversità di input: prendere in considerazione il percorso di input dei dati. Se si raccolgono dati da una persona, un reparto o un dispositivo di input (microfono) probabilmente manca la diversità che sarà importante affinché l'app possa ottenere informazioni su tutti i percorsi di input.
    • Diversità di punteggiatura: si consideri che le persone usano vari livelli di punteggiatura nelle applicazioni di testo e assicurarsi di avere una diversità di come viene usata la punteggiatura. Se si usano dati provenienti dal parlato, non saranno presenti punteggiatura, quindi i dati non dovrebbero neanche essere presenti.
  • Distribuzione dei dati: assicurarsi che i dati distribuiti tra finalità rappresentino la stessa distribuzione dei dati ricevuti dall'applicazione client. Se l'app LUIS classifica le espressioni che sono richieste per pianificare un congedo (50%), ma visualizzerà anche espressioni relative alle richieste dei giorni di permesso residui (20%), l'approvazione di permessi (20%) e alcuni elementi fuori ambito e chit chat (10%) il set di dati deve avere le percentuali di campionamento di ogni tipo di espressione.

  • Usare tutti i moduli dati: se l'app LUIS accetta dati in più moduli, assicurarsi di includere tali moduli nelle espressioni di training. Ad esempio, se l'applicazione client accetta sia l'input vocale che quello digitato, è necessario disporre sia del riconoscimento vocale in espressioni generate dal testo che delle espressioni digitate. Si noteranno variazioni diverse nel modo in cui le persone parlano da come digitano, nonché errori diversi nel riconoscimento vocale ed errori di digitazione. Tutte queste varianti devono essere rappresentate nei dati di training.

  • Esempi positivi e negativi: per insegnare un'app LUIS, è necessario conoscere la finalità (positiva) e ciò che non è (negativo). In LUIS le espressioni possono essere positive solo per una singola finalità. Quando un'espressione viene aggiunta a una finalità, LUIS rende automaticamente la stessa espressione di esempio un esempio negativo per tutte le altre finalità.

  • Dati esterni all'ambito dell'applicazione: se l'applicazione visualizzerà espressioni che non rientrano nelle finalità definite, assicurarsi di specificare tali espressioni. Gli esempi che non sono assegnati a una determinata finalità definita verranno etichettati con la finalità Nessuna. È importante avere esempi realistici per la finalità Nessuna per stimare correttamente le espressioni che non rientrano nell'ambito delle finalità definite.

    Ad esempio, se si sta creando un bot HR incentrato sugli orari di uscita e si hanno tre finalità:

    • pianificare o modificare un'assenza
    • informarsi sui giorni di congedo disponibili
    • approvare/disapprovare il congedo

    Assicurarsi di avere espressioni che coprono entrambe le finalità, ma che coprano anche potenziali espressioni esterne a tale ambito; l'applicazione deve essere simile alla seguente:

    • What are my medical benefits?
    • Who is my HR rep?
    • tell me a joke
  • Esempi rari: l'app dovrà avere esempi rari e esempi comuni. Se l'app non ha mai visto esempi rari, non sarà in grado di identificarli nell'ambiente di produzione. Se si usano dati reali, sarà possibile stimare in modo più accurato il funzionamento dell'app LUIS nell'ambiente di produzione.

Qualità anziché quantità

Prendere in considerazione la qualità dei dati esistenti prima di aggiungere altri dati. Con LUIS si usa il machine teaching. La combinazione delle etichette e delle funzionalità di apprendimento automatico definite è quella usata dall'app LUIS. Non si basa semplicemente sulla quantità di etichette per eseguire la stima migliore. La diversità degli esempi e la relativa rappresentazione di ciò che l'app LUIS vedrà nell'ambiente di produzione è la parte più importante.

Pre-elaborazione dei dati

La procedura di pre-elaborazione seguente consentirà di creare un'app LUIS migliore:

  • Rimuovere i duplicati: le espressioni duplicate non verranno danneggiate, ma non sono utili, quindi la rimozione di tali espressioni consente di risparmiare tempo per l'etichettatura.
  • Applicare la stessa pre-elaborazione dell'app client: se l'applicazione client, che chiama l'endpoint di stima LUIS, applica l'elaborazione dei dati in fase di esecuzione prima di inviare il testo a LUIS, è necessario eseguire il training dell'app LUIS sui dati elaborati nello stesso modo.
  • Non applicare nuovi processi di pulizia che l'app client non usa: se l'app client accetta il testo generato dal riconoscimento vocale direttamente senza alcuna pulizia, ad esempio grammatica o punteggiatura, le espressioni devono riflettere lo stesso, incluse eventuali segni di punteggiatura mancanti e qualsiasi altra mancata riconoscimento, è necessario tenere conto.
  • Non pulire i dati: non eliminare l'input in formato non valido che è possibile ottenere dal riconoscimento vocale non corretto, dalle chiavi accidentali o dal testo digitato/immesso in modo non corretto. Se l'app visualizzerà input come questi, è importante eseguirne il training e testarli. Aggiungere una finalità di input in formato non valido se non si prevede che l'app lo comprenda. Etichettare questi dati per consentire all'app LUIS di stimare la risposta corretta in fase di esecuzione. L'applicazione client può scegliere una risposta appropriata a espressioni non comprensibili, ad esempio Please try again.

Etichettatura dei dati

  • Etichettare il testo come se fosse corretto: tutte le espressioni di esempio devono avere tutte le forme di un'entità etichettata. Sono inclusi testo digitato in modo errato, digitato in modo non corretto e tradotto in modo non corretto.

Revisione dei dati dopo che l'app LUIS è in produzione

Esaminare le espressioni dell'endpoint per monitorare il traffico delle espressioni reali dopo aver distribuito un'app nell'ambiente di produzione. In questo modo, è possibile aggiornare le espressioni di training con dati reali, migliorando così l'app. Qualsiasi app compilata con dati di scenario in crowdsourcing o non reali dovrà essere migliorata in base al suo reale uso.

Selezione dei dati di test per i test batch

Tutti i principi elencati in precedenza per le espressioni di training si applicano alle espressioni da usare per il set di test. Assicurarsi che la distribuzione tra finalità ed entità rispecchi la distribuzione reale il più possibile.

Non riutilizzare le espressioni dal set di training nel set di test. Ciò influisce in modo errato sui risultati e non darà l'indicazione corretta delle prestazioni dell'app LUIS nell'ambiente di produzione.

Dopo aver pubblicato la prima versione dell'app, è necessario aggiornare il set di test con espressioni provenienti dal traffico reale per assicurarsi che il set di test rifletta la distribuzione di produzione e monitorare le prestazioni realistiche nel tempo.

Passaggi successivi

Informazioni su come LUIS modifica i dati prima della stima