Guida introduttiva: Classificazione personalizzata del testo

Usare questo articolo per iniziare a creare un progetto di classificazione personalizzata del testo in cui eseguire il training di modelli personalizzati per la classificazione del testo. Un modello è un software di intelligenza artificiale sottoposto a training per eseguire una determinata attività. Per questo sistema, i modelli classificano il testo e vengono sottoposti a training apprendendo dai dati contrassegnati.

La classificazione personalizzata del testo supporta due tipi di progetti:

  • Classificazione con etichetta singola: è possibile assegnare una singola classe per ogni documento nel set di dati. Ad esempio, la trama di un film può essere classificata solo come "Romanticismo" o "Commedia".
  • Classificazione multietichetta: è possibile assegnare più classi per ogni documento nel set di dati. Ad esempio, la trama di un film può essere classificata come “Commedia” o "Romanticismo" e "Commedia".

In questa guida introduttiva è possibile usare i set di dati di esempio forniti per creare una classificazione multietichetta in cui è possibile classificare gli script di film in una o più categorie oppure usare un set di dati di classificazione con etichetta singola in cui è possibile classificare abstract di documenti scientifici in uno dei domini definiti.

Prerequisiti

Creare una nuova risorsa di Lingua di Azure AI e un account di archiviazione di Azure

Per poter usare la classificazione personalizzata del testo, è necessario creare una risorsa di Lingua di Azure AI che fornisca le credenziali necessarie per creare un progetto e avviare il training di un modello. È anche necessario un account di archiviazione di Azure, in cui caricare il set di dati che verrà usato per compilare il modello.

Importante

Per iniziare rapidamente, è preferibile creare una nuova risorsa di Lingua di Azure AI seguendo la procedura descritta in questo articolo. La procedura descritta in questo articolo consentirà di creare la risorsa Lingua e l'account di archiviazione contemporaneamente, in quanto questa operazione sarebbe più complessa se venisse eseguita in un secondo momento.

Se si dispone di una risorsa preesistente da usare, sarà necessario connetterla all'account di archiviazione.

Creare una nuova risorsa dal portale di Azure

  1. Accedere al portale di Azure per creare una nuova risorsa di Lingua di Azure AI.

  2. Nella finestra visualizzata, selezionare Classificazione personalizzata del testo e Riconoscimento entità denominata personalizzata dalle funzionalità personalizzate. Selezionare Continua per creare la risorsa nella parte inferiore dello schermo.

    Screenshot che mostra l'opzione di selezione per Classificazione personalizzata del testo e Riconoscimento entità denominata personalizzata nel portale di Azure.

  3. Creare una risorsa linguistica con i dettagli seguenti.

    Nome Valore obbligatorio
    Abbonamento La sottoscrizione di Azure.
    Gruppo di risorse Un gruppo di risorse di Azure che conterrà la risorsa. È possibile usarne uno esistente o crearne uno nuovo.
    Area Una delle aree supportate. Ad esempio: “Stati Uniti occidentali 2”.
    Nome Un nome per la risorsa.
    Piano tariffario Uno dei piani tariffari supportati. Per provare il servizio, è possibile usare il livello gratuito (F0).

    Se viene visualizzato un messaggio che indica che “l'account di accesso non è un proprietario del gruppo di risorse dell'account di archiviazione selezionato”, è necessario assegnare all'account un ruolo di proprietario nel gruppo di risorse per poter creare una risorsa linguistica. Per assistenza contattare il proprietario della sottoscrizione di Azure.

    È possibile determinare il proprietario della sottoscrizione di Azure eseguendo una ricerca nel gruppo di risorse e seguendo il collegamento alla sottoscrizione associata. Quindi:

    1. Selezionare la scheda Controllo di accesso (IAM)
    2. Selezionare Assegnazioni di ruolo
    3. Filtrare in base a Ruolo:Proprietario.
  4. Nella sezione Classificazione personalizzata del testo e Riconoscimento entità denominata personalizzata, selezionare un account di archiviazione esistente o scegliere Nuovo account di archiviazione. Questi valori consentono di iniziare senza usare necessariamente i valori dell'account di archiviazione che verranno usati in ambienti di produzione. Per evitare la latenza durante la creazione del progetto, connettersi agli account di archiviazione nella stessa area della risorsa linguistica.

    Valore dell'account di archiviazione Valore consigliato
    Nome account di archiviazione Qualsiasi nome
    Storage account type LRS Standard
  5. Accertarsi che sia selezionata l’opzione Avviso intelligenza artificiale responsabile. Selezionare Rivedi e crea nella parte inferiore della pagina.

Caricare dati di esempio nel contenitore BLOB

Dopo aver creato un account di archiviazione di Azure e averlo connesso alla risorsa linguistica, sarà necessario caricare i documenti dal set di dati di esempio nella directory radice del contenitore. Questi documenti verranno usati successivamente per il training del modello.

  1. Scaricare il set di dati di esempio per i progetti di classificazione multietichetta.

  2. Aprire il file .zip ed estrarre la cartella contenente i documenti.

Il set di dati di esempio fornito contiene circa 200 documenti, ognuno dei quali è un riepilogo per un film. Ogni documento appartiene a una o più classi seguenti:

  • "Mystery"
  • "Drama"
  • "Thriller"
  • "Comedy"
  • "Action"
  1. Nel portale di Azure passare all'account di archiviazione creato e selezionarlo. A tal fine, fare clic su Account di archiviazione e digitare il nome dell'account di archiviazione in Filtro per qualunque campo.

    Se il gruppo di risorse non viene visualizzato, accertarsi che il filtro Sottoscrizione uguale a sia impostato su Tutti.

  2. Nell'account di archiviazione selezionare Contenitori nel menu a sinistra, sotto Archiviazione dati. Nella schermata visualizzata selezionare + Contenitore. Assegnare al contenitore il nome example-data e lasciare il livello di accesso pubblico predefinito.

    Screenshot che mostra la pagina principale di un account di archiviazione.

  3. Dopo aver creato il contenitore, selezionarlo. Selezionare quindi il pulsante Carica per selezionare i file .txt e .json scaricati in precedenza.

    Screenshot che mostra il pulsante per caricare i file nell'account di archiviazione.

Creare un progetto di classificazione personalizzata del testo

Dopo aver configurato la risorsa e il contenitore di archiviazione, creare un nuovo progetto di classificazione personalizzata del testo. Un progetto è un'area di lavoro per la creazione di modelli di Machine Learning personalizzati in base ai dati. L'accesso al progetto può essere eseguito solo dall'utente e da altri utenti che hanno accesso alla risorsa linguistica usata.

  1. Accedere a Language Studio. Verrà visualizzata una finestra che consente di selezionare la sottoscrizione e la risorsa linguistica. Selezionare la risorsa linguistica.

  2. Nella sezione Classifica testo di Language Studio, selezionare Classificazione personalizzata del testo.

    Screenshot che mostra la posizione di Classificazione personalizzata del testo nella pagina di destinazione di Language Studio.

  3. Selezionare Crea nuovo progetto dal menu in alto nella pagina dei progetti. La creazione di un progetto consentirà di etichettare i dati, eseguire il training, valutare, migliorare e distribuire i modelli.

    Screenshot della pagina di creazione del progetto di Classificazione personalizzata del testo.

  4. Dopo aver fatto clic su Crea nuovo progetto, verrà visualizzata una finestra che consente di connettere il proprio account di archiviazione. Se è già stato connesso un account di archiviazione, verrà visualizzato l'account di archiviazione connesso. In caso contrario, scegliere l'account di archiviazione dall'elenco a discesa visualizzato e selezionare Connetti account di archiviazione. Verranno impostati i ruoli necessari per l'account di archiviazione. Questo passaggio potrebbe restituire un errore se all’utente non è assegnato il ruolo di proprietario nell'account di archiviazione.

    Nota

    • Questo passaggio deve essere eseguito una sola volta per ogni nuova risorsa linguistica usata.
    • Questo processo è irreversibile, per cui se si connette un account di archiviazione a una risorsa linguistica, non sarà possibile disconnetterlo in un secondo momento.
    • È possibile connettere una risorsa linguistica a un solo account di archiviazione.

    Screenshot della schermata di connessione di archiviazione per i progetti di classificazione personalizzati.

  5. Selezionare il tipo di progetto. È possibile creare un progetto di classificazione multietichetta in cui ogni documento può appartenere a una o più classi o a un progetto di classificazione con etichetta singola in cui ogni documento può appartenere a una sola classe. Il tipo selezionato non potrà essere modificato successivamente. Altre informazioni sui tipi di progetto

    Screenshot dei tipi di progetto di classificazione personalizzati disponibili.

  6. Immettere le informazioni sul progetto, inclusi un nome, una descrizione e la lingua dei documenti nel progetto. Se si usa il set di dati di esempio, selezionare Inglese. Non sarà possibile modificare il nome del progetto in un secondo momento. Selezionare Avanti.

    Suggerimento

    Il set di dati non deve essere tutto nella stessa lingua. È possibile avere più documenti, ognuno con diverse lingue supportate. Se il set di dati contiene documenti in lingue diverse o se si prevede testo in lingue diverse durante il runtime, selezionare l’opzione Abilita set di dati multilingue quando si immettono le informazioni di base per il progetto. Questa opzione può essere abilitata in un secondo momento dalla pagina Impostazioni progetto.

  7. Selezionare il contenitore in cui è stato caricato il set di dati.

    Nota

    Se i dati sono già stati etichettati, accertarsi che rispettino il formato supportato e selezionare Sì, i documenti sono già etichettati e il file di etichette JSON è formattato, quindi selezionare il file di etichette dal menu a discesa seguente.

    Se si usa uno dei set di dati di esempio, usare il file JSON webOfScience_labelsFile o movieLabels incluso. Quindi seleziona Avanti.

  8. Esaminare i dati immessi e selezionare Crea progetto.

Eseguire il training del modello

In genere, dopo aver creato un progetto, è possibile procedere e iniziare ad aggiungere tag ai documenti inclusi nel contenitore connesso al progetto. Per questa guida introduttiva è stato importato un set di dati con tag di esempio e il progetto è stato inizializzato con il file di tag JSON di esempio.

Per avviare il training di un modello da Language Studio:

  1. Selezionare Processi di training dal menu a sinistra.

  2. Selezionare Avvia un processo di training dal menu in alto.

  3. Selezionare Esegui il training di un nuovo modello e digitare il nome del modello nella casella di testo. Si può anche sovrascrivere un modello esistente selezionando questa opzione e scegliendo il modello da sovrascrivere dal menu a discesa. La sovrascrittura di un modello sottoposto a training è irreversibile, ma non influisce sui modelli distribuiti fino a quando non si distribuisce il nuovo modello.

    Creare un nuovo processo di training

  4. Selezionare il metodo di divisione dei dati. È possibile scegliere Divisione automatica del set di test dai dati di training in modo che il sistema divida i dati etichettati tra il set di training e il set di test in base alle percentuali scelte dall’utente. In alternativa, è possibile scegliere l’opzione Usa una divisione manuale dei dati di training e di test, che è abilitata solo se sono stati aggiunti documenti al set di test durante l’etichettatura dei dati. Per altre informazioni sulla divisione dei dati, vedere Come eseguire il training di un modello.

  5. Selezionare il pulsante Esegui il training.

  6. Se si seleziona l'ID del processo di training dall'elenco, viene visualizzato un riquadro laterale in cui è possibile controllare lo stato di avanzamento del training, lo stato del processo e altri dettagli relativi a questo processo.

    Nota

    • Solo i processi di training completati correttamente genereranno modelli.
    • L’esecuzione del training del modello può richiedere da qualche minuto a diverse ore, in base alle dimensioni dei dati etichettati.
    • È possibile eseguire un solo processo di training alla volta. Non è possibile avviare altri processi di training nello stesso progetto fino al completamento del processo in esecuzione.

Distribuire il modello

In genere, dopo il training di un modello, è opportuno rivedere i relativi dettagli di valutazione e apportare miglioramenti in base alla necessità. In questa guida introduttiva, il modello verrà solo distribuito e reso disponibile per una prova in Language Studio; è possibile anche richiamare l'API di stima.

Per distribuire un modello all’interno di Studio di linguaggio:

  1. Selezionare Distribuzione di un modello nel menu a sinistra.

  2. Selezionare Aggiungi distribuzione per avviare un nuovo processo di distribuzione.

    Screenshot che mostra il pulsante di distribuzione

  3. Selezionare Crea nuova distribuzione per creare una nuova distribuzione e assegnare un modello sottoposto a training dall'elenco a discesa seguente. È possibile anche sovrascrivere una distribuzione esistente selezionando questa opzione e scegliendo il modello sottoposto a training da assegnare dall'elenco a discesa seguente.

    Nota

    La sovrascrittura di una distribuzione esistente non richiede modifiche alla chiamata API di previsione, ma i risultati ottenuti saranno basati sul modello appena assegnato.

    Screenshot che mostra la schermata di distribuzione

  4. Selezionare Distribuisci per avviare il processo di distribuzione.

  5. Al termine della distribuzione verrà visualizzata una data di scadenza. La scadenza della distribuzione indica quando il modello non potrà essere usato per la stima, ossia generalmente dodici mesi dopo la scadenza di una configurazione di training.

Testare il modello

Dopo aver distribuito il modello, è possibile iniziare a usarlo per classificare il testo tramite l'API di stima. In questa guida introduttiva verrà usato Language Studio per inviare l'attività di classificazione personalizzata del testo e visualizzare i risultati. Nel set di dati di esempio scaricato in precedenza è possibile trovare alcuni documenti di test che è possibile usare in questo passaggio.

Per testare i modelli distribuiti in Language Studio:

  1. Selezionare Test delle distribuzioni dal menu a sinistra della schermata.

  2. Selezionare la distribuzione da testare. È possibile testare solo i modelli assegnati alle distribuzioni.

  3. Per i progetti multilingue, nell'elenco a discesa lingua selezionare la lingua del testo di cui si esegue il test.

  4. Selezionare dall'elenco a discesa la distribuzione su cui si intende eseguire la query/il test.

  5. Immettere il testo da inviare nella richiesta o caricare un documento .txt da usare. Se si usa uno dei set di dati di esempio, è possibile usare uno dei file .txt inclusi.

  6. Selezionare Esegui il test dal menu in alto.

  7. Nella scheda Risultato è possibile visualizzare le classi stimate per il testo. È anche possibile visualizzare la risposta JSON nella scheda JSON. L'esempio seguente è relativo a un progetto di classificazione con etichetta singola. Un progetto di classificazione multietichetta può restituire un risultato con più classi.

    Screenshot che mostra i risultati dei test del modello per un singolo progetto di classificazione delle etichette.

Pulire i progetti

Quando il progetto non è più necessario, è possibile eliminarlo usando Language Studio. Selezionare Classificazione personalizzata del testo nella parte superiore della schermata e quindi selezionare il progetto da eliminare. Per eliminare il progetto, selezionare Elimina dal menu in alto.

Prerequisiti

Creare una nuova risorsa di Lingua di Azure AI e un account di archiviazione di Azure

Per poter usare la classificazione personalizzata del testo, è necessario creare una risorsa di Lingua di Azure AI che fornisca le credenziali necessarie per creare un progetto e avviare il training di un modello. È necessario anche un account di archiviazione di Azure in cui è possibile caricare il set di dati che verrà usato per la generazione del modello.

Importante

Per iniziare rapidamente, è preferibile creare una nuova risorsa di Lingua di Azure AI seguendo la procedura descritta in questo articolo; tale procedura consentirà di creare la risorsa linguistica e/o di connettere un account di archiviazione contemporaneamente, in quanto questa operazione sarebbe più complessa se venisse eseguita in un secondo momento.

Se si dispone di una risorsa preesistente da usare, sarà necessario connetterla all'account di archiviazione.

Creare una nuova risorsa dal portale di Azure

  1. Accedere al portale di Azure per creare una nuova risorsa di Lingua di Azure AI.

  2. Nella finestra visualizzata, selezionare Classificazione personalizzata del testo e Riconoscimento entità denominata personalizzata dalle funzionalità personalizzate. Selezionare Continua per creare la risorsa nella parte inferiore dello schermo.

    Screenshot che mostra l'opzione di selezione per Classificazione personalizzata del testo e Riconoscimento entità denominata personalizzata nel portale di Azure.

  3. Creare una risorsa linguistica con i dettagli seguenti.

    Nome Valore obbligatorio
    Abbonamento La sottoscrizione di Azure.
    Gruppo di risorse Un gruppo di risorse di Azure che conterrà la risorsa. È possibile usarne uno esistente o crearne uno nuovo.
    Area Una delle aree supportate. Ad esempio: “Stati Uniti occidentali 2”.
    Nome Un nome per la risorsa.
    Piano tariffario Uno dei piani tariffari supportati. Per provare il servizio, è possibile usare il livello gratuito (F0).

    Se viene visualizzato un messaggio che indica che “l'account di accesso non è un proprietario del gruppo di risorse dell'account di archiviazione selezionato”, è necessario assegnare all'account un ruolo di proprietario nel gruppo di risorse per poter creare una risorsa linguistica. Per assistenza contattare il proprietario della sottoscrizione di Azure.

    È possibile determinare il proprietario della sottoscrizione di Azure eseguendo una ricerca nel gruppo di risorse e seguendo il collegamento alla sottoscrizione associata. Quindi:

    1. Selezionare la scheda Controllo di accesso (IAM)
    2. Selezionare Assegnazioni di ruolo
    3. Filtrare in base a Ruolo:Proprietario.
  4. Nella sezione Classificazione personalizzata del testo e Riconoscimento entità denominata personalizzata, selezionare un account di archiviazione esistente o scegliere Nuovo account di archiviazione. Questi valori consentono di iniziare senza usare necessariamente i valori dell'account di archiviazione che verranno usati in ambienti di produzione. Per evitare la latenza durante la creazione del progetto, connettersi agli account di archiviazione nella stessa area della risorsa linguistica.

    Valore dell'account di archiviazione Valore consigliato
    Nome account di archiviazione Qualsiasi nome
    Storage account type LRS Standard
  5. Accertarsi che sia selezionata l’opzione Avviso intelligenza artificiale responsabile. Selezionare Rivedi e crea nella parte inferiore della pagina.

Caricare dati di esempio nel contenitore BLOB

Dopo aver creato un account di archiviazione di Azure e averlo connesso alla risorsa linguistica, sarà necessario caricare i documenti dal set di dati di esempio nella directory radice del contenitore. Questi documenti verranno usati successivamente per il training del modello.

  1. Scaricare il set di dati di esempio per i progetti di classificazione multietichetta.

  2. Aprire il file .zip ed estrarre la cartella contenente i documenti.

Il set di dati di esempio fornito contiene circa 200 documenti, ognuno dei quali è un riepilogo per un film. Ogni documento appartiene a una o più classi seguenti:

  • "Mystery"
  • "Drama"
  • "Thriller"
  • "Comedy"
  • "Action"
  1. Nel portale di Azure passare all'account di archiviazione creato e selezionarlo. A tal fine, fare clic su Account di archiviazione e digitare il nome dell'account di archiviazione in Filtro per qualunque campo.

    Se il gruppo di risorse non viene visualizzato, accertarsi che il filtro Sottoscrizione uguale a sia impostato su Tutti.

  2. Nell'account di archiviazione selezionare Contenitori nel menu a sinistra, sotto Archiviazione dati. Nella schermata visualizzata selezionare + Contenitore. Assegnare al contenitore il nome example-data e lasciare il livello di accesso pubblico predefinito.

    Screenshot che mostra la pagina principale di un account di archiviazione.

  3. Dopo aver creato il contenitore, selezionarlo. Selezionare quindi il pulsante Carica per selezionare i file .txt e .json scaricati in precedenza.

    Screenshot che mostra il pulsante per caricare i file nell'account di archiviazione.

Ottenere le chiavi e l’endpoint di una risorsa

  • Passare alla pagina di panoramica della risorsa nel portale di Azure

  • Dal menu a sinistra selezionare Chiavi ed endpoint. Si useranno l'endpoint e la chiave per le richieste API

Screenshot che mostra la pagina della chiave e dell'endpoint nel portale di Azure.

Creare un progetto di classificazione personalizzata del testo

Dopo aver configurato la risorsa e il contenitore di archiviazione, creare un nuovo progetto di classificazione personalizzata del testo. Un progetto è un'area di lavoro per la creazione di modelli di Machine Learning personalizzati in base ai dati. L'accesso al progetto può essere eseguito solo dall'utente e da altri utenti che hanno accesso alla risorsa linguistica usata.

Attivare un processo di importazione progetto

Inviare una richiesta POST usando l'URL, le intestazioni e il corpo JSON seguenti per importare il file di etichette. Accertarsi che il file di etichette rispetti il formato accettato.

Se esiste già un progetto con lo stesso nome, i dati di tale progetto vengono sostituiti.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Altre informazioni su altre versioni dell’API disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Corpo

Usare il JSON seguente nella richiesta. Sostituire i valori segnaposto seguenti con i propri valori.

{
  "projectFileVersion": "{API-VERSION}",
  "stringIndexType": "Utf16CodeUnit",
  "metadata": {
    "projectName": "{PROJECT-NAME}",
    "storageInputContainerName": "{CONTAINER-NAME}",
    "projectKind": "customMultiLabelClassification",
    "description": "Trying out custom multi label text classification",
    "language": "{LANGUAGE-CODE}",
    "multilingual": true,
    "settings": {}
  },
  "assets": {
    "projectKind": "customMultiLabelClassification",
    "classes": [
      {
        "category": "Class1"
      },
      {
        "category": "Class2"
      }
    ],
    "documents": [
      {
        "location": "{DOCUMENT-NAME}",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "classes": [
          {
            "category": "Class1"
          },
          {
            "category": "Class2"
          }
        ]
      },
      {
        "location": "{DOCUMENT-NAME}",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "classes": [
          {
            "category": "Class2"
          }
        ]
      }
    ]
  }
}

Chiave Segnaposto Valore Esempio
api-version {API-VERSION} La versione dell'API che si sta chiamando. La versione usata qui deve essere la stessa versione dell'API nell'URL. Altre informazioni su altre versioni dell’API disponibili 2022-05-01
projectName {PROJECT-NAME} Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
projectKind customMultiLabelClassification Il tipo di progetto. customMultiLabelClassification
linguaggio {LANGUAGE-CODE} Una stringa che specifica il codice lingua per i documenti usati nel progetto. Se il progetto è un progetto multilingue, scegliere il codice lingua della maggior parte dei documenti. Per altre informazioni sul supporto multilingue, vedere Supporto lingue. en-us
multilingual true Un valore booleano che consente di avere documenti in più lingue nel set di dati; quando il modello viene distribuito, è possibile eseguire query sul modello in qualunque lingua supportata (non necessariamente inclusa nei documenti di training). Per altre informazioni sul supporto multilingue, vedere Supporto lingue. true
storageInputContainerName {CONTAINER-NAME} Il nome del contenitore di archiviazione di Azure in cui sono stati caricati i documenti. myContainer
classi [] Array contenente tutte le classi incluse nel progetto. Queste sono le classi in cui classificare i documenti. []
documenti [] Array contenente tutti i documenti nel progetto e le classi etichettate per il documento. []
posizione {DOCUMENT-NAME} Posizione dei documenti nel contenitore di archiviazione. Siccome tutti i documenti sono inclusi nella radice del contenitore, deve essere il nome del documento. doc1.txt
set di dati {DATASET} Il set di test a cui verrà sottoposto questo documento quando verrà diviso prima del training. Per altre informazioni sulla divisione dei dati, vedere Come eseguire il training di un modello. I valori possibili per questo campo sono Train e Test. Train

Dopo aver inviato la richiesta API, si riceverà una risposta 202 che indica che il processo è stato inviato correttamente. Nelle intestazioni della risposta estrarre il valore operation-location. Il formato sarà simile al seguente:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} viene usato per identificare la richiesta, poiché questa operazione è asincrona. Questo URL verrà usato per ottenere lo stato del processo di importazione.

Possibili scenari di errore per questa richiesta:

  • La risorsa selezionata non dispone delle autorizzazioni appropriate per l'account di archiviazione.
  • Il valore storageInputContainerName specificato non esiste.
  • Il codice lingua usato non è non valido o il tipo del codice lingua non è stringa.
  • Il valore multilingual è una stringa e non un valore booleano.

Ottenere lo stato del processo di importazione

Usare la richiesta GET seguente per ottenere lo stato dell’importazione di un progetto. Sostituire i valori segnaposto seguenti con i propri valori.

Richiesta URL

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{JOB-ID} L’ID per individuare lo stato del training del modello. Questo valore si trova nel valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Altre informazioni su altre versioni dell’API disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Eseguire il training del modello

In genere, dopo aver creato un progetto, è possibile procedere e cominciare ad aggiungere tag ai documenti inclusi nel contenitore connesso al progetto. Per questa guida introduttiva è stato importato un set di dati con tag di esempio e il progetto è stato inizializzato con il file di tag JSON di esempio.

Avviare il training di un modello

Dopo aver importato il progetto, è possibile avviare il training del modello.

Inviare una richiesta POST usando l'URL, le intestazioni e il corpo JSON seguenti per inviare un processo di training. Sostituire i valori segnaposto seguenti con i propri valori.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Altre informazioni su altre versioni dell’API disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Corpo della richiesta

Usare il JSON seguente nel corpo della richiesta. Al termine del training, al modello verrà assegnato {MODEL-NAME}. Solo i processi di training riusciti produrranno modelli.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Chiave Segnaposto Valore Esempio
modelLabel {MODEL-NAME} Nome del modello che verrà assegnato al modello dopo aver eseguito il training correttamente. myModel
trainingConfigVersion {CONFIG-VERSION} È la versione del modello che verrà usata per il training del modello. 2022-05-01
evaluationOptions Opzione per dividere i dati tra set di training e set di test. {}
kind percentage Metodi di divisione. I possibili valori sono percentage o manual. Per altre informazioni, vedere Come eseguire il training di un modello. percentage
trainingSplitPercentage 80 Percentuale dei dati con tag da includere nel set di training. Il valore consigliato è 80. 80
testingSplitPercentage 20 Percentuale dei dati con tag da includere nel set di test. Il valore consigliato è 20. 20

Nota

trainingSplitPercentage e testingSplitPercentage sono necessari solo se Kind è impostato su percentage e la somma di entrambe le percentuali deve essere uguale a 100.

Dopo aver inviato la richiesta API, si riceverà una risposta 202 che indica che il processo è stato inviato correttamente. Nelle intestazioni della risposta estrarre il valore location. Il formato sarà simile al seguente:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} viene usato per identificare la richiesta, poiché questa operazione è asincrona. È possibile usare questo URL per ottenere lo stato del training.

Ottenere lo stato del processo di training

Il training potrebbe richiedere qualche minuto tra 10 e 30 minuti. È possibile usare la richiesta seguente per continuare il polling dello stato del processo di training fino a quando non viene completato correttamente.

Usare la seguente richiesta GET per ottenere lo stato dello stato di avanzamento del training del modello. Sostituire i valori segnaposto seguenti con i propri valori.

Richiesta URL

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{JOB-ID} L’ID per individuare lo stato del training del modello. Questo valore si trova nel valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Per altre informazioni su altre versioni disponibili dell’API, vedere Ciclo di vita di un modello. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Testo della risposta

Dopo aver inviato la richiesta, si otterrà la risposta seguente.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Distribuire il modello

Generalmente, dopo il training di un modello è opportuno rivedere i relativi dettagli di valutazione e apportare miglioramenti in base alla necessità. In questa guida introduttiva, il modello verrà solo distribuito e reso disponibile per una prova in Language Studio; è possibile anche richiamare l'API di stima.

Inviare un processo di distribuzione

Inviare una richiesta PUT usando l'URL, le intestazioni e il corpo JSON seguenti per inviare un processo di distribuzione. Sostituire i valori segnaposto seguenti con i propri valori.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{DEPLOYMENT-NAME} Il nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. staging
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Altre informazioni su altre versioni dell’API disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Corpo della richiesta

Usare il JSON seguente nel corpo della richiesta. Usare il nome del modello da assegnare alla distribuzione.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Chiave Segnaposto Valore Esempio
trainedModelLabel {MODEL-NAME} Nome del modello che verrà assegnato alla distribuzione. È possibile assegnare solo modelli il cui training è stato eseguito correttamente. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myModel

Dopo aver inviato la richiesta API, si riceverà una risposta 202 che indica che il processo è stato inviato correttamente. Nelle intestazioni della risposta estrarre il valore operation-location. Il formato sarà simile al seguente:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} viene usato per identificare la richiesta, poiché questa operazione è asincrona. È possibile usare questo URL per ottenere lo stato della distribuzione.

Ottenere lo stato del processo di distribuzione

Usare la richiesta GET seguente per eseguire una query dello stato del processo di distribuzione. È possibile usare l'URL ricevuto dal passaggio precedente oppure sostituire i valori segnaposto seguenti con i propri valori.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{DEPLOYMENT-NAME} Il nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. staging
{JOB-ID} L’ID per individuare lo stato del training del modello. Si trova nel valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Altre informazioni su altre versioni dell’API disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Testo della risposta

Dopo aver inviato la richiesta, si otterrà la risposta seguente. Continuare il polling di questo endpoint fino a quando il parametro dello stato diventa "succeeded". Si ottiene un codice 200 indicante l'esito positivo della richiesta.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Classifica testo

Dopo aver distribuito correttamente il modello, è possibile iniziare a usarlo per classificare il testo tramite l'APIStima. Nel set di dati di esempio scaricato in precedenza è possibile trovare alcuni documenti di test che è possibile usare in questo passaggio.

Inviare un’attività di classificazione personalizzata del testo

Usare questa richiesta POST per avviare un'attività di classificazione del testo.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Per altre informazioni sulle altre versioni dell'API disponibili, vedere Ciclo di vita del modello. 2022-05-01

Intestazioni

Chiave valore
Ocp-Apim-Subscription-Key La chiave che fornisce l'accesso all’API.

Corpo

{
  "displayName": "Classifying documents",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomMultiLabelClassification",
      "taskName": "Multi Label Classification",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Chiave Segnaposto Valore Esempio
displayName {JOB-NAME} Il nome del processo. MyJobName
documents [{},{}] Elenco di documenti per cui eseguire le attività. [{},{}]
id {DOC-ID} Nome o ID del documento. doc1
language {LANGUAGE-CODE} Una stringa che specifica il codice lingua per il documento. Se questa chiave non è specificata, il servizio presuppone la lingua predefinita del progetto selezionata durante la creazione del progetto. Per un elenco dei codici lingua supportati, vedere Supporto lingua. en-us
text {DOC-TEXT} Attività del documento per cui eseguire le attività. Lorem ipsum dolor sit amet
tasks Elenco di attività da eseguire. []
taskName CustomMultiLabelClassification Il nome dell’attività CustomMultiLabelClassification
parameters Elenco di parametri da passare all’attività.
project-name {PROJECT-NAME} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
deployment-name {DEPLOYMENT-NAME} Il nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. prod

Response

Si riceverà una risposta 202 che indica l'esito positivo. Nelle intestazioni della risposta, estrarre operation-location. operation-location è formattato come indicato di seguito:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

È possibile usare questo URL per eseguire una query sullo stato di completamento dell'attività e ottenere i risultati al termine dell'attività.

Ottenere i risultati dell’attività

Usare la richiesta GET seguente per eseguire una query sullo stato o sui risultati dell'attività di classificazione del testo.

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} La versione dell'API che si sta richiamando. Il valore a cui fa riferimento qui è relativo all’ultima versione del modello rilasciata. 2022-05-01

Intestazioni

Chiave valore
Ocp-Apim-Subscription-Key La chiave che fornisce l'accesso all’API.

Corpo della risposta

La risposta sarà un documento JSON con i parametri seguenti.

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxxxx-xxxxx-xxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "customMultiClassificationTasks",
        "taskName": "Classify documents",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "id": "{DOC-ID}",
              "classes": [
                  {
                      "category": "Class_1",
                      "confidenceScore": 0.0551877357
                  }
              ],
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

Pulire le risorse

Quando il progetto non è più necessario, è possibile eliminarlo con la richiesta DELETE seguente. Sostituire i valori segnaposto con i propri valori.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Segnaposto Valore Esempio
{ENDPOINT} Endpoint per l'autenticazione della richiesta API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{API-VERSION} La versione dell'API che si sta chiamando. Il valore a cui si fa riferimento qui è relativo alla versione più recente rilasciata. Altre informazioni su altre versioni dell’API disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key La chiave della risorsa. È usata per l’autenticazione delle richieste API.

Dopo aver inviato la richiesta API, si riceverà una risposta 202 con l'esito positivo che indica che il progetto è stato eliminato. Risultati di una chiamata con esito positivo con un'intestazione Operation-Location usata per controllare lo stato del processo.

Passaggi successivi

Dopo aver creato un modello di classificazione personalizzata del testo, è possibile:

Quando si inizia a creare progetti di classificazione personalizzata del testo, usare gli articoli sulle procedure per altre informazioni più dettagliate sullo sviluppo del modello: