Informazioni sul riconoscimento entità denominata personalizzata

Completato

Riconoscimento entità denominata personalizzata è un servizio API di Azure che esamina i documenti, identifica ed estrae le entità definite dall'utente. Queste entità possono essere qualsiasi elemento, da nomi e indirizzi di rendiconti bancari a knowledge mining, per migliorare i risultati della ricerca.

Riconoscimento entità denominata personalizzata fa parte di Lingua di Azure AI in Servizi di Azure AI.

Confronto tra la funzionalità Riconoscimento entità denominata personalizzata e predefinita

Lingua di Azure AI fornisce un livello di riconoscimento entità predefinito, per riconoscere elementi come una persona, una posizione, un'organizzazione o un URL. La funzionalità Riconoscimento entità denominata predefinita consente di configurare il servizio con una configurazione minima ed estrarre le entità Per chiamare una funzionalità Riconoscimento entità denominata predefinita, creare il servizio e chiamare l'endpoint per il servizio Riconoscimento entità denominata così:

<YOUR-ENDPOINT>/language/analyze-text/jobs?api-version=<API-VERSION>
Segnaposto Valore Esempio
<YOUR-ENDPOINT> Endpoint per la richiesta API https://<your-resource>.cognitiveservices.azure.com
<API-VERSION> Versione dell'API che si sta chiamando 2023-05-01

Il corpo di tale chiamata conterrà uno o più documenti da cui vengono estratte le entità e le intestazioni contengono la chiave del servizio.

La risposta dalla chiamata precedente contiene una matrice di entità riconosciute, ad esempio:

<...>
"entities":[
    {
        "text":"Seattle",
        "category":"Location",
        "subcategory":"GPE",
        "offset":45,
        "length":7,
        "confidenceScore":0.99
    },
    {
        "text":"next week",
        "category":"DateTime",
        "subcategory":"DateRange",
        "offset":104,
        "length":9,
        "confidenceScore":0.8
    }
]
<...>

Esempi di quando usare la funzionalità Riconoscimento entità denominata predefinita includono la ricerca di posizioni, nomi o URL in documenti di testo lunghi.

Suggerimento

Nella documentazione di Riconoscimento entità denominataè disponibile un elenco completo delle categorie di entità riconosciute.

La funzionalità Riconoscimento entità denominata personalizzata, su cui è incentrato il resto di questo modulo, è disponibile quando le entità da estrarre non fanno parte del servizio predefinito o si vogliono estrarre solo entità specifiche. È possibile creare un modello della funzionalità Riconoscimento entità denominata personalizzata con il livello di semplicità o complessità richiesto per l'app.

È ad esempio possibile che si voglia usare la funzionalità Riconoscimento entità denominata personalizzata per dati legali o bancari specifici o per knowledge per migliorare la ricerca nel catalogo o di testo specifico per criteri di controllo, Ognuno di questi progetti richiede un set specifico di entità e dati da estrarre.

Ciclo di vita del progetto di Lingua di Azure AI

Conceptual diagram showing a project steps to define entities, tag data, train model, view model, improve model, deploy model, and extract entities.

La creazione di un modello di estrazione di entità segue in genere un percorso simile alla maggior parte delle funzionalità del servizio Lingua di Azure AI:

  1. Definire le entità: è necessario comprendere i dati e le entità da identificare e provare a definirli nel modo più chiaro possibile, definendo ad esempio esattamente quali parte di un estratto conto bancario devono essere estratte.
  2. Assegnare etichette ai dati: è necessario assegnare etichette ai dati esistenti, ovvero contrassegnarli, specificando quale testo del set di dati corrisponde a una determinata entità. È importante eseguire questo passaggio in modo accurato e completo, poiché eventuali etichette errate o mancanti ridurranno l'efficacia del modello sottoposto a training. È utile specificare una certa varietà di documenti di input possibili, aggiungendo ad esempio un'etichetta a nome della banca, nome del cliente, indirizzo del cliente, condizioni specifiche del mutuo o del conto, importo del mutuo o del conto e numero di conto.
  3. Eseguire il training del modello: è necessario eseguire il training del modello dopo aver assegnato etichette alle entità. Il training insegna al modello come riconoscere le entità etichettate.
  4. Visualizzare il modello: dopo il training del modello, visualizzare i risultati restituiti dal modello. Questa pagina include un punteggio compreso tra 0 e 1 basato sulla precisione e sul richiamo dei dati testati. È possibile vedere quali entità hanno funzionato correttamente, ad esempio il nome del cliente, e quali entità necessitano di miglioramento, ad esempio il numero conto.
  5. Migliorare il modello: è necessario migliorare il modello verificando quali entità non sono state identificate e quali entità sono state estratte in modo non corretto. Occorre scoprire quali dati devono essere aggiunti al training del modello per migliorare le prestazioni. Questa pagina mostra quali errori si sono verificati per le entità e quali entità, ad esempio il numero di conto, devono essere differenziate da altre entità simili, ad esempio l'importo del mutuo.
  6. Distribuire il modello: quando il modello si comporta nel modo desiderato, distribuirlo il modello per renderlo disponibile tramite l'API. In questo esempio è possibile inviare richieste al modello quando viene distribuito per estrarre le entità di estratto conto bancario.
  7. Estrarre le entità: usare il modello per estrarre le entità. Il lab illustra come usare l'API e per altri dettagli è possibile vedere il riferimento API

Considerazioni sulla selezione dei dati e sull'affinamento delle entità

Per ottenere prestazioni ottimali, è necessario usare sia i dati di alta qualità per eseguire il training del modello che tipi di entità chiaramente definiti.

I dati di alta elevata consentiranno di dedicare meno tempo all'affinamento e produrre risultati migliori dal modello.

  • Diversità: usare il set di dati più diversificato possibile senza perdere la distribuzione concreta prevista nei dati reali. È consigliabile usare i dati di esempio dal maggior numero possibile di origini, ognuno con i rispettivi formati e numero di entità. È consigliabile che il set di dati rappresenti il maggior numero possibile di origini diverse.
  • Distribuzione: usare la distribuzione appropriata dei tipi di documento. Un set di dati più diversificato per il training del modello consentirà al modello di evitare di apprendere relazioni non corrette nei dati.
  • Accuratezza: usare i dati il più vicino possibile ai dati reali. I dati fittizi sono utili per avviare il processo di training, ma probabilmente differiscono dai dati reali in modi che possono causare l'estrazione non corretta del modello.

È inoltre necessario considerare attentamente le entità e definirle nel modo più distinto possibile. Evitare entità ambigue, ad esempio due nomi vicini in un estratto conto bancario, perché complicheranno la differenziazione da parte del modello. Se è necessario avere alcune entità ambigue, assicurarsi che siano disponibili altri esempi da cui il modello può apprendere, in modo da comprendere la differenza.

Mantenere distinte le entità risulterà estremamente utile per le prestazioni del modello. Il tentativo di estrazione di un elemento analogo a "Informazioni sul contatto", ad esempio, ovvero un numero di telefono, un handle di social media o un indirizzo e-mail, richiederebbe diversi esempi per un insegnamento corretto per il modello. È invece consigliabile provare a suddividere questi elementi in entità più specifiche, ad esempio "Telefono", "E-mail" e "Social media", e consentire al modello di assegnare etichette a qualsiasi tipo di informazioni di contatto rilevate.

Come estrarre le entità

Per inviare un'attività di estrazione, l'API richiede al corpo JSON di specificare quale attività eseguire. Per la funzionalità Riconoscimento entità denominata personalizzata, l'attività per il payload JSON è CustomEntityRecognition.

Il payload avrà un aspetto analogo al codice JSON seguente:

{
    "displayName": "string",
    "analysisInput": {
        "documents": [
            {
                "id": "doc1", 
                "text": "string"
            },
            {
                "id": "doc2",
                "text": "string"
            }
        ]
    },
    "tasks": [
        {
            "kind": "CustomEntityRecognition",
            "taskName": "MyRecognitionTaskName",
            "parameters": {
            "projectName": "MyProject",
            "deploymentName": "MyDeployment"
            }
        }
    ]
}

Limiti di progetto

Il servizio Lingua di Azure AI applica le restrizioni seguenti:

  • Training: almeno 10 file e non più di 100.000
  • Distribuzioni: 10 nomi di distribuzione per progetto
  • API
    • Creazione: questa API crea un progetto, esegue il training e distribuisce il modello. Sono consentite al massimo 10 operazioni POST e 100 operazioni GET al minuto
    • Analisi: questa API esegue l'estrazione effettiva delle entità. Richiede un'attività e recupera i risultati. Sono consentite al massimo 20 operazioni GET o POST
  • Progetti: solo 1 account di archiviazione per progetto, 500 progetti per risorsa e 50 modelli sottoposti a training per progetto
  • Entità: ogni entità può contenere fino a 500 caratteri. È possibile avere fino a 200 tipi di entità.

Per informazioni dettagliate, vedere la pagina Limiti del servizio di Lingua di Azure AI.