Guida introduttiva: Riconoscimento personalizzato di entità denominate

Usare questo articolo per iniziare a creare un progetto NER personalizzato in cui è possibile eseguire il training di modelli personalizzati per il riconoscimento di entità personalizzate. Un modello è un software di intelligenza artificiale sottoposto a training per eseguire una determinata attività. Per questo sistema, i modelli estraggono le entità denominate e vengono sottoposti a training tramite l'apprendimento dai dati con tag.

In questo articolo si usa Language Studio per illustrare i concetti chiave del riconoscimento delle entità denominate personalizzato (NER). Ad esempio, verrà creato un modello NER personalizzato per estrarre le entità pertinenti dai contratti di prestito, ad esempio:

  • Data del contratto
  • Nome, indirizzo, città e stato del mutuatario
  • Nome, indirizzo, città e stato del lender
  • Importi di prestiti e interessi

Prerequisiti

Creare una nuova risorsa del linguaggio di intelligenza artificiale di Azure e un account di archiviazione di Azure

Prima di poter usare NER personalizzato, è necessario creare una risorsa del linguaggio di intelligenza artificiale di Azure, che fornirà le credenziali necessarie per creare un progetto e avviare il training di un modello. È anche necessario un account di archiviazione di Azure, in cui è possibile caricare il set di dati che verrà usato per compilare il modello.

Importante

Per iniziare rapidamente, è consigliabile creare una nuova risorsa del linguaggio di intelligenza artificiale di Azure seguendo la procedura descritta in questo articolo. La procedura descritta in questo articolo consentirà di creare contemporaneamente la risorsa di linguaggio e l'account di archiviazione, che è più semplice rispetto a farlo in un secondo momento.

Se si dispone di una risorsa preesistente che si vuole usare, sarà necessario connetterla all'account di archiviazione. Per informazioni, vedere indicazioni sull'uso di una risorsa preesistente.

Creare una nuova risorsa dal portale di Azure

  1. Accedere al portale di Azure per creare una nuova risorsa del linguaggio di intelligenza artificiale di Azure.

  2. Nella finestra visualizzata selezionare Classificazione testo personalizzata e riconoscimento di entità denominate personalizzate dalle funzionalità personalizzate. Selezionare Continua per creare la risorsa nella parte inferiore della schermata .

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. Creare una risorsa lingua con i dettagli seguenti.

    Nome Descrizione
    Abbonamento La sottoscrizione di Azure.
    Gruppo di risorse Gruppo di risorse che conterrà la risorsa. È possibile usare uno esistente o crearne uno nuovo.
    Area Area per la risorsa lingua. Ad esempio, "Stati Uniti occidentali 2".
    Nome Nome della risorsa.
    Piano tariffario Piano tariffario per la risorsa Lingua. È possibile usare il livello Gratuito (F0) per provare il servizio.

    Nota

    Se viene visualizzato un messaggio che indica che l'account di accesso non è un proprietario del gruppo di risorse dell'account di archiviazione selezionato, l'account deve avere un ruolo di proprietario assegnato nel gruppo di risorse prima di poter creare una risorsa lingua. Per assistenza, contattare il proprietario della sottoscrizione di Azure.

  4. Nella sezione Classificazione testo personalizzata e riconoscimento di entità denominate personalizzate selezionare un account di archiviazione esistente o selezionare Nuovo account di archiviazione. Questi valori consentono di iniziare e non necessariamente i valori dell'account di archiviazione da usare negli ambienti di produzione. Per evitare la latenza durante la compilazione del progetto, connettersi agli account di archiviazione nella stessa area della risorsa lingua.

    Archiviazione valore dell'account Valore consigliato
    Nome account di archiviazione Qualsiasi nome
    Storage account type LRS Standard
  5. Assicurarsi che sia selezionata l'informativa sull'intelligenza artificiale responsabile. Selezionare Rivedi e crea nella parte inferiore della pagina e quindi selezionare Crea.

Caricare dati di esempio nel contenitore BLOB

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

  1. Scaricare il set di dati di esempio da GitHub.

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

  3. Nel portale di Azure passare all'account di archiviazione creato e selezionarlo.

  4. 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.

    A screenshot showing the main page for a storage account.

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

    A screenshot showing the button for uploading files to the storage account.

Il set di dati di esempio fornito contiene 20 contratti di prestito. Ogni accordo include due parti: un finanziatore e un mutuatario. È possibile utilizzare il file di esempio fornito per estrarre informazioni rilevanti per: entrambe le parti, una data del contratto, un importo del prestito e un tasso di interesse.

Creare un progetto di Riconoscimento entità denominata personalizzata

Dopo aver configurato la risorsa e l'account di archiviazione, creare un nuovo progetto NER personalizzato. 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 Lingua usata.

  1. Accedere a Language Studio. Verrà visualizzata una finestra che consente di selezionare la sottoscrizione e la risorsa lingua. Selezionare la risorsa Lingua creata nel passaggio precedente.

  2. Nella sezione Extract information (Estrai informazioni) di Language Studio selezionare Custom named entity recognition (Riconoscimento di entità denominate personalizzate).

    A screenshot showing the location of custom NER in the Language Studio landing page.

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

    A screenshot of the project creation page.

  4. Dopo aver fatto clic su Crea nuovo progetto, verrà visualizzata una finestra per consentire la connessione dell'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 Connessione account di archiviazione. Verranno impostati i ruoli necessari per l'account di archiviazione. Questo passaggio restituirà un errore se non si è assegnati come proprietario nell'account di archiviazione.

    Nota

    • È necessario eseguire questo passaggio una sola volta per ogni nuova risorsa usata.
    • Questo processo è irreversibile, se si connette un account di archiviazione alla risorsa lingua, non è possibile disconnetterlo in un secondo momento.
    • È possibile connettere la risorsa lingua solo a un account di archiviazione.

    A screenshot showing the storage connection screen.

  5. Immettere le informazioni sul progetto, inclusi un nome, una descrizione e la lingua dei file 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 interamente nello stesso linguaggio. È possibile avere più documenti, ognuno con lingue supportate diverse. Se il set di dati contiene documenti di lingue diverse o se si prevede testo da 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.

  6. Selezionare il contenitore in cui è stato caricato il set di dati. Se i dati sono già stati etichettati, assicurarsi che seguano il formato supportato e selezionare Sì, i miei file sono già etichettati e ho formattato il file di etichette JSON e selezionare il file delle etichette dal menu a discesa. Seleziona Avanti.

  7. Esaminare i dati immessi e selezionare Crea progetto.

Eseguire il training del modello

In genere, dopo aver creato un progetto, è possibile iniziare a contrassegnare i documenti presenti 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 del 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 training di un nuovo modello e digitare il nome del modello nella casella di testo. È anche possibile 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.

    Create a new training job

  4. Selezionare il metodo di suddivisione dei dati. È possibile scegliere Suddivisione automatica del set di test dai dati di training in cui il sistema suddividerà i dati etichettati tra i set di training e di test, in base alle percentuali specificate. In alternativa, è possibile usare una suddivisione manuale dei dati di training e test, questa opzione è abilitata solo se sono stati aggiunti documenti al set di test durante l'etichettatura dei dati. Per informazioni sulla suddivisione dei dati, vedere Come eseguire il training di un modello .

  5. Selezionare il pulsante Train (Esegui training ).

  6. Se si seleziona l'ID processo di training nell'elenco, verrà visualizzato un riquadro laterale in cui è possibile controllare lo stato del training, lo stato del processo e altri dettagli per questo processo.

    Nota

    • Solo i processi di training completati correttamente genereranno modelli.
    • Il training può richiedere tempo tra un paio di minuti e 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, esaminare i relativi dettagli di valutazione e apportare miglioramenti , se necessario. In questa guida introduttiva si distribuirà semplicemente il modello e lo si renderà disponibile per provare in Language Studio oppure è possibile chiamare l'API di stima.

Per distribuire il modello da Language Studio:

  1. Selezionare Deploying a model (Distribuzione di un modello ) dal menu a sinistra.

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

    A screenshot showing the deployment button

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

    Nota

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

    A screenshot showing the deployment screen

  4. Selezionare Distribuisci per avviare il processo di distribuzione.

  5. Al termine della distribuzione, accanto verrà visualizzata una data di scadenza. La scadenza della distribuzione è quando il modello distribuito non sarà disponibile per la stima, che in genere si verifica dodici mesi dopo la scadenza di una configurazione di training.

Testare il modello

Dopo aver distribuito il modello, è possibile iniziare a usarlo per estrarre le entità dal testo tramite l'API Prediction. Per questa guida introduttiva si userà Language Studio per inviare l'attività di riconoscimento delle entità personalizzate 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 da Language Studio:

  1. Selezionare Test delle distribuzioni dal menu a sinistra.

  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 che si esegue il test.

  4. Selezionare la distribuzione da eseguire query/test dall'elenco a discesa.

  5. È possibile immettere il testo da inviare alla richiesta o caricare un .txt file da usare.

  6. Selezionare Esegui il test dal menu in alto.

  7. Nella scheda Risultato è possibile visualizzare le entità estratte dal testo e i relativi tipi. È anche possibile visualizzare la risposta JSON nella scheda JSON .

A screenshot showing the model test results.

Pulire le risorse

Quando il progetto non è più necessario, è possibile eliminare il progetto usando Language Studio. Selezionare Riconoscimento entità denominato personalizzato (NER) nella parte superiore, selezionare il progetto da eliminare e quindi selezionare Elimina dal menu in alto.

Prerequisiti

Creare una nuova risorsa del linguaggio di intelligenza artificiale di Azure e un account di archiviazione di Azure

Prima di poter usare NER personalizzato, è necessario creare una risorsa del linguaggio di intelligenza artificiale di Azure, che fornirà le credenziali necessarie per creare un progetto e avviare il training di un modello. È anche necessario un account di archiviazione di Azure, in cui è possibile caricare il set di dati che verrà usato per compilare il modello.

Importante

Per iniziare rapidamente, è consigliabile creare una nuova risorsa del linguaggio di intelligenza artificiale di Azure seguendo la procedura descritta in questo articolo, che consente di creare la risorsa Lingua e creare e/o connettere un account di archiviazione contemporaneamente, che è più semplice rispetto a farlo in un secondo momento.

Se si dispone di una risorsa preesistente che si vuole usare, sarà necessario connetterla all'account di archiviazione. Per informazioni, vedere Creare un progetto .

Creare una nuova risorsa dal portale di Azure

  1. Accedere al portale di Azure per creare una nuova risorsa del linguaggio di intelligenza artificiale di Azure.

  2. Nella finestra visualizzata selezionare Classificazione testo personalizzata e riconoscimento di entità denominate personalizzate dalle funzionalità personalizzate. Selezionare Continua per creare la risorsa nella parte inferiore della schermata .

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. Creare una risorsa lingua con i dettagli seguenti.

    Nome Descrizione
    Abbonamento La sottoscrizione di Azure.
    Gruppo di risorse Gruppo di risorse che conterrà la risorsa. È possibile usare uno esistente o crearne uno nuovo.
    Area Area per la risorsa lingua. Ad esempio, "Stati Uniti occidentali 2".
    Nome Nome della risorsa.
    Piano tariffario Piano tariffario per la risorsa Lingua. È possibile usare il livello Gratuito (F0) per provare il servizio.

    Nota

    Se viene visualizzato un messaggio che indica che l'account di accesso non è un proprietario del gruppo di risorse dell'account di archiviazione selezionato, l'account deve avere un ruolo di proprietario assegnato nel gruppo di risorse prima di poter creare una risorsa lingua. Per assistenza, contattare il proprietario della sottoscrizione di Azure.

  4. Nella sezione Classificazione testo personalizzata e riconoscimento di entità denominate personalizzate selezionare un account di archiviazione esistente o selezionare Nuovo account di archiviazione. Questi valori consentono di iniziare e non necessariamente i valori dell'account di archiviazione da usare negli ambienti di produzione. Per evitare la latenza durante la compilazione del progetto, connettersi agli account di archiviazione nella stessa area della risorsa lingua.

    Archiviazione valore dell'account Valore consigliato
    Nome account di archiviazione Qualsiasi nome
    Storage account type LRS Standard
  5. Assicurarsi che sia selezionata l'informativa sull'intelligenza artificiale responsabile. Selezionare Rivedi e crea nella parte inferiore della pagina e quindi selezionare Crea.

Caricare dati di esempio nel contenitore BLOB

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

  1. Scaricare il set di dati di esempio da GitHub.

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

  3. Nel portale di Azure passare all'account di archiviazione creato e selezionarlo.

  4. 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.

    A screenshot showing the main page for a storage account.

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

    A screenshot showing the button for uploading files to the storage account.

Il set di dati di esempio fornito contiene 20 contratti di prestito. Ogni accordo include due parti: un finanziatore e un mutuatario. È possibile utilizzare il file di esempio fornito per estrarre informazioni rilevanti per: entrambe le parti, una data del contratto, un importo del prestito e un tasso di interesse.

Ottenere le chiavi di risorsa e l'endpoint

  1. Passare alla pagina di panoramica delle risorse nel portale di Azure

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

    A screenshot showing the key and endpoint page in the Azure portal

Creare un progetto NER personalizzato

Dopo aver configurato la risorsa e l'account di archiviazione, creare un nuovo progetto NER personalizzato. 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 Lingua usata.

Usare il file di tag scaricato dai dati di esempio nel passaggio precedente e aggiungerlo al corpo della richiesta seguente.

Attivare il processo di importazione del progetto

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

Se esiste già un progetto con lo stesso nome, i dati del 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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per l'autenticazione delle richieste API.

Corpo

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

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Key Segnaposto Valore Esempio
api-version {API-VERSION} Versione dell'API che si sta chiamando. La versione usata qui deve essere la stessa versione dell'API nell'URL. Altre informazioni sulle altre versioni dell'API disponibili 2022-03-01-preview
projectName {PROJECT-NAME} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
projectKind CustomEntityRecognition Tipo di progetto. CustomEntityRecognition
language {LANGUAGE-CODE} Stringa che specifica il codice della lingua per i documenti usati nel progetto. Se il progetto è un progetto multilingue, scegliere il codice linguistico della maggior parte dei documenti. en-us
multilingual true Valore booleano che consente di avere documenti in più lingue nel set di dati e quando il modello viene distribuito, è possibile eseguire query sul modello in qualsiasi linguaggio supportato (non necessariamente incluso nei documenti di training. Per informazioni sul supporto multilingue, vedere Supporto linguistico. true
storageInputContainerName {CONTAINER-NAME} Nome del contenitore di archiviazione di Azure in cui sono stati caricati i documenti. myContainer
entities Matrice contenente tutti i tipi di entità presenti nel progetto. Questi sono i tipi di entità che verranno estratti dai documenti in.
documents Matrice contenente tutti i documenti nel progetto e l'elenco delle entità etichettate all'interno di ogni documento. []
location {DOCUMENT-NAME} Posizione dei documenti nel contenitore di archiviazione. Poiché tutti i documenti si trovano nella radice del contenitore, questo deve essere il nome del documento. doc1.txt
dataset {DATASET} Set di test su cui verrà eseguito il file quando verrà suddiviso prima del training. Per altre informazioni sulla suddivisione 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 202 risposta che indica che il processo è stato inviato correttamente. Nelle intestazioni della risposta estrarre il operation-location valore. 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.
  • L'oggetto storageInputContainerName specificato non esiste.
  • Viene usato codice linguistico non valido o se il tipo di codice della lingua non è stringa.
  • multilingual value è 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 del 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} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{JOB-ID} ID per individuare lo stato di training del modello. Questo valore si trova nel valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per l'autenticazione delle richieste API.

Eseguire il training del modello

In genere, dopo aver creato un progetto, è possibile iniziare a contrassegnare i documenti presenti 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 processo di training

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} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per l'autenticazione delle richieste API.

Corpo della richiesta

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

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Key Segnaposto Valore Esempio
modelLabel {MODEL-NAME} Nome del modello che verrà assegnato al modello dopo il training. myModel
trainingConfigVersion {CONFIG-VERSION} Si tratta della versione del modello che verrà usata per eseguire il training del modello. 2022-05-01
evaluationOptions Opzione per suddividere i dati tra set di training e 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 contrassegnati da includere nel set di test. Il valore consigliato è 20. 20

Nota

E trainingSplitPercentagetestingSplitPercentage sono obbligatori 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 202 risposta che indica che il processo è stato inviato correttamente. Nelle intestazioni della risposta estrarre il location valore. 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 alcuni minuti tra 10 e 30 minuti per questo set di dati di esempio. È possibile usare la richiesta seguente per mantenere il polling dello stato del processo di training fino a quando non viene completato correttamente.

Usare la richiesta GET seguente 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} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{JOB-ID} ID per individuare lo stato di training del modello. Questo valore si trova nel valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato 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

In genere, dopo il training di un modello, è necessario esaminare i dettagli di valutazione e apportare miglioramenti, se necessario. In questa guida introduttiva si distribuirà semplicemente il modello e lo si renderà disponibile per provare in Language Studio oppure è possibile chiamare l'API di stima.

Avviare il 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} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{DEPLOYMENT-NAME} Nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. staging
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per l'autenticazione delle richieste API.

Corpo della richiesta

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

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

Dopo aver inviato la richiesta API, si riceverà una 202 risposta che indica che il processo è stato inviato correttamente. Nelle intestazioni della risposta estrarre il operation-location valore. 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 sullo 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} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{DEPLOYMENT-NAME} Nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. staging
{JOB-ID} ID per individuare lo stato di training del modello. Si trova nel valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per l'autenticazione delle richieste API.

Testo della risposta

Dopo aver inviato la richiesta, si otterrà la risposta seguente. Continuare a eseguire il polling di questo endpoint fino a quando il parametro di stato non viene modificato in "succeeded". Si dovrebbe ottenere un 200 codice per indicare l'esito positivo della richiesta.

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

Estrarre entità personalizzate

Dopo aver distribuito il modello, è possibile iniziare a usarlo per estrarre le entità dal testo usando l'API di stima. Nel set di dati di esempio scaricato in precedenza è possibile trovare alcuni documenti di test che è possibile usare in questo passaggio.

Inviare un'attività NER personalizzata

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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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 Chiave che fornisce l'accesso a questa API.

Corpo

{
  "displayName": "Extracting entities",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomEntityRecognition",
      "taskName": "Entity Recognition",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Key Segnaposto Valore Esempio
displayName {JOB-NAME} Nome del processo. MyJobName
documents [{},{}] Elenco di documenti in cui eseguire attività. [{},{}]
id {DOC-ID} Nome o ID del documento. doc1
language {LANGUAGE-CODE} Stringa che specifica il codice della lingua per il documento. Se questa chiave non è specificata, il servizio presuppone la lingua predefinita del progetto selezionato durante la creazione del progetto. Per un elenco dei codici linguistici supportati, vedere supporto per la lingua. en-us
text {DOC-TEXT} Attività documento in cui eseguire le attività. Lorem ipsum dolor sit amet
tasks Elenco di attività da eseguire. []
taskName CustomEntityRecognition Nome dell'attività CustomEntityRecognition
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} Nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. prod

Response

Si riceverà una risposta 202 che indica che l'attività è stata inviata correttamente. Nelle intestazioni della risposta estrarre operation-location. operation-location è formattato come segue:

{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/risultati dell'attività di riconoscimento dell'entità personalizzata.

{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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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 Chiave che fornisce l'accesso a questa API.

Testo 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-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è 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

Usare l'intestazione seguente per autenticare la richiesta.

Chiave valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per l'autenticazione delle richieste API.

Dopo aver inviato la richiesta API, si riceverà una 202 risposta che indica l'esito positivo, il che significa 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 il modello di estrazione di entità, è possibile:

Quando si inizia a creare progetti NER personalizzati, usare gli articoli sulle procedure per altre informazioni sull'assegnazione di tag, il training e l'utilizzo del modello in modo più dettagliato: