Come preparare i dati e definire uno schema per NER personalizzato

Per creare un modello NER personalizzato, sono necessari dati di qualità per eseguirne il training. Questo articolo illustra come selezionare e preparare i dati, insieme alla definizione di uno schema. La definizione dello schema è il primo passaggio del ciclo di vita dello sviluppo del progetto e definisce i tipi/categorie di entità necessari per estrarre dal testo in fase di esecuzione.

Progettazione dello schema

Lo schema definisce i tipi o le categorie di entità necessari per estrarre il modello dal testo in fase di esecuzione.

  • Esaminare i documenti nel set di dati per acquisire familiarità con il formato e la struttura.

  • Identificare le entità da estrarre dai dati.

    Ad esempio, se si estraggono entità dai messaggi di posta elettronica di supporto, potrebbe essere necessario estrarre "Nome cliente", "Nome prodotto", "Data richiesta" e "Informazioni di contatto".

  • Evitare ambiguità tra i tipi di entità.

    L'ambiguità si verifica quando i tipi di entità selezionati sono simili tra loro. Più ambiguo è lo schema con più dati etichettati è necessario distinguere tra tipi di entità diversi.

    Ad esempio, se si estraggono dati da un contratto legale, per estrarre "Nome della prima parte" e "Nome della seconda parte" è necessario aggiungere altri esempi per superare l'ambiguità poiché i nomi di entrambe le parti hanno un aspetto simile. Evitare ambiguità perché consente di risparmiare tempo, sforzo e restituisce risultati migliori.

  • Evitare entità complesse. Le entità complesse possono essere difficili da scegliere con precisione dal testo, è consigliabile suddividerla in più entità.

    Ad esempio, l'estrazione di "Address" sarebbe complessa se non è suddivisa in entità più piccole. Ci sono così tante varianti di come appaiono gli indirizzi, sarebbe necessario un numero elevato di entità etichettate per insegnare al modello di estrarre un indirizzo, nel suo complesso, senza suddividerlo. Tuttavia, se si sostituisce "Address" con "Street Name", "PO Box", "City", "State" e "Zip", il modello richiederà un minor numero di etichette per entità.

Selezione dei dati

La qualità dei dati con cui si esegue il training del modello influisce notevolmente sulle prestazioni del modello.

  • Usare i dati reali che riflettono lo spazio dei problemi del dominio per eseguire il training efficace del modello. È possibile usare dati sintetici per accelerare il processo di training del modello iniziale, ma è probabile che sia diverso dai dati reali e rendere il modello meno efficace quando usato.

  • Bilanciare la distribuzione dei dati il più possibile senza deviare lontano dalla distribuzione in tempo reale. Ad esempio, se si esegue il training del modello per estrarre entità da documenti legali che possono venire in molti formati e lingue diversi, è necessario fornire esempi che esemplificano la diversità come ci si aspetterebbe di vedere nella vita reale.

  • Usare dati diversi quando possibile per evitare l'overfitting del modello. Una minore diversità nei dati di training può portare a correlazioni spurie di apprendimento del modello che potrebbero non esistere nei dati reali.

  • Evitare documenti duplicati nei dati. I dati duplicati hanno un effetto negativo sul processo di training, sulle metriche del modello e sulle prestazioni del modello.

  • Prendere in considerazione la provenienza dei dati. Se si raccolgono dati da una persona, da un reparto o da una parte dello scenario, è probabile che manchi una diversità importante per il modello.

Nota

Se i documenti si trovano in più lingue, selezionare l'opzione Abilita lingua multipla durante la creazione del progetto e impostare l'opzione lingua sulla lingua della maggior parte dei documenti.

Preparazione dei dati

Come prerequisito per la creazione di un progetto, i dati di training devono essere caricati in un contenitore BLOB nell'account di archiviazione. È possibile creare e caricare documenti di training direttamente da Azure o tramite lo strumento di Azure Storage Explorer. L'uso dello strumento Azure Storage Explorer consente di caricare più rapidamente dati.

È possibile usare .txt solo documenti. Se i dati sono in altro formato, è possibile usare il comando di analisi CLUtils per modificare il formato del documento.

È possibile caricare un set di dati con annotazioni oppure caricarne uno non annotato ed etichettare i dati in Language Studio.

Set di test

Quando si definisce il set di test, assicurarsi di includere documenti di esempio non presenti nel set di training. La definizione del set di test è un passaggio importante per calcolare le prestazioni del modello. Assicurarsi inoltre che il set di test includa documenti che rappresentano tutte le entità usate nel progetto.

Passaggi successivi

Se non è già stato fatto, creare un progetto NER personalizzato. Se è la prima volta che si usa NER personalizzato, provare a seguire la guida introduttiva per creare un progetto di esempio. È anche possibile visualizzare l'articolo sulle procedure per altre informazioni su ciò che è necessario creare un progetto.