Condividi tramite


Riconoscimento di entità denominate

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Riconosce le entità denominate in una colonna di testo

Categoria: Analisi del testo

Nota

Si applica a: Machine Learning Studio (versione classica)

Moduli di trascinamento della selezione simili sono disponibili nella finestra Azure Machine Learning progettazione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Riconoscimento entità denominata in Machine Learning Studio (versione classica) per identificare i nomi di elementi, ad esempio persone, aziende o posizioni in una colonna di testo.

Il riconoscimento delle entità denominate è un'area di ricerca importante per Machine Learning e per l'Elaborazione del linguaggio naturale (NLP, Natural Language Processing), poiché può essere usato per rispondere a molte domande del mondo reale, incluse le seguenti:

  • Un tweet include il nome di una persona? Il tweet fornisce anche la posizione attuale della persona?

  • Quali società sono citate in un articolo?

  • I prodotti specificati sono stati menzionati in reclami o recensioni?

Per ottenere un elenco di entità denominate, è necessario fornire come input un set di dati contenente una colonna di testo. Il Riconoscimento entità denominata modulo identificherà quindi tre tipi di entità: persone (PER), località (LOC) e organizzazioni (ORG).

Il modulo etichetta anche le sequenze in base alla posizione in cui sono state trovate queste parole, in modo da poter usare i termini in un'ulteriore analisi.

Ad esempio, la tabella seguente mostra una semplice frase di input e i termini e i valori generati dal modulo:

Testo di input Output del modulo
"Boston is a great place to live" 0,Boston,0,6,LOC

L'output può essere interpretato come segue:

  • Il primo '0' indica che questa stringa è il primo input di articolo nel modulo.

    Poiché un singolo articolo può avere più entità, l'inclusione del numero di riga dell'articolo nell'output è importante per le funzioni di mapping relative agli articoli.

  • Boston è l'entità riconosciuta.

  • L'oggetto 0 seguente Boston indica che l'entità Boston inizia dalla prima lettera della stringa di input. Gli indici sono in base zero.

  • 6 indica che la lunghezza dell'entità Boston è 6.

  • LOC indica che l'entità Boston è un luogo o una posizione. Altri tipi di entità denominati supportati sono persona (PER) e organizzazione (ORG).

Come configurare Riconoscimento entità denominata

  1. Aggiungere il Riconoscimento entità denominata modulo all'esperimento in Studio (versione classica). È possibile trovare il modulo nella categoria Analisi del testo.

  2. Nell'input denominato Story connettere un set di dati contenente il testo da analizzare.

    La "storia" deve contenere il testo da cui estrarre le entità denominate.

    La colonna usata come Story deve contenere più righe, in cui ogni riga è costituita da una stringa. la stringa può essere breve, ad esempio una frase, o lunga, come un articolo di notizie.

    È possibile connettere qualsiasi set di dati contenente una colonna di testo. Tuttavia, se il set di dati di input contiene più colonne, usare Seleziona colonne nel set di dati per scegliere solo la colonna contenente il testo da analizzare

    Nota

    Il secondo input, Risorse personalizzate (ZIP), non è attualmente supportato.

    In futuro, è possibile aggiungere file di risorse personalizzati qui, per identificare tipi di entità diversi.

  3. Eseguire l'esperimento.

Risultati

Il modulo restituisce un set di dati contenente una riga per ogni entità riconosciuta, insieme a offset.

Poiché ogni riga di testo di input può contenere più entità denominate, un numero ID articolo viene generato e incluso automaticamente nell'output per identificare la riga di input che contiene l'entità denominata. L'ID articolo si basa sull'ordine naturale delle righe nel set di dati di input.

È possibile convertire questo set di dati di output in CSV per il download o salvarlo come set di dati per il nuovo utilizzo.

Usare il riconoscimento di entità denominate in un servizio Web

Se si pubblica un servizio Web da Machine Learning Studio (versione classica) e si vuole utilizzare il servizio Web usando C#, Python o un altro linguaggio, ad esempio R, è necessario implementare prima il codice del servizio fornito nella pagina della Guida del servizio Web.

Se il servizio Web fornisce più righe di output, l'URL del servizio Web aggiunto al codice C#, Python o R dovrà avere il suffisso scoremultirow invece di score.

Si supponga ad esempio di usare l'URL seguente per il servizio Web: https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/score

Per abilitare l'output su più righe, modificare l'URL in https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/scoremultirow

Per pubblicare questo servizio Web, è necessario aggiungere un modulo Execute R Script aggiuntivo dopo il modulo Riconoscimento entità denominata per trasformare l'output su più righe in un singolo delimitato da punti e virgola (;). Il consolidamento di più righe di output in una singola riga permette di restituire più entità per ogni riga di input.

Si supponga ad esempio di disporre di una frase di input con due entità denominate. Anziché restituire due righe per ogni riga di input, è possibile restituire una singola riga con più entità, separate da punti e virgola, come illustrato di seguito:

Testo di input Output del servizio Web
Microsoft has two office locations in Boston. 0,Microsoft,0,9,ORG,;,0,Boston,38,6,LOC,;

L'esempio di codice seguente illustra come eseguire questa operazione:

# Map 1-based optional input ports to variables  
d <- maml.mapInputPort(1) # class: data.frame  
y=length(d) ##size of cols  
x=dim(d)[1] ##size of rows  
longd=matrix("NA",nrow=1,ncol=x*(y+1))  
for (i in 1:x)  
  {   
     for (j in 1:y)  
     {  
       longd[1,j+(i-1)*(y+1)]=toString(d[i,j])   
     }  
     longd[1,j+(i-1)*(y+1)+1]=c(";")  
  }   

final_output=as.data.frame(longd)  
# Select data.frame to be sent to the output Dataset port  
maml.mapOutputPort("final_output");  

Esempio

Questo blog fornisce una spiegazione estesa del funzionamento del riconoscimento delle entità denominate, del relativo background e delle possibili applicazioni:

Vedere anche gli esperimenti di esempio seguenti nel Azure AI Gallery per dimostrazioni su come usare i metodi di classificazione del testo comunemente usati in Machine Learning:

Note tecniche

Lingue supportate

Il modulo Named Entity Recognition supporta attualmente solo testo in lingua inglese. È in grado di rilevare nomi di organizzazioni, nomi personali e località nelle frasi in lingua inglese. Se si usa il modulo in altre lingue, è possibile che non venga visualizzato un errore, ma i risultati non sono ottimali come per il testo in inglese.

In futuro sarà possibile abilitare il supporto per lingue aggiuntive tramite l'integrazione dei componenti multilingue disponibili in Office Natural Language Toolkit.

Input previsti

Nome Tipo Descrizione
Storia Tabella dati Set di dati di input (DataTable) contenente la colonna di testo da analizzare.
CustomResources Zip (Facoltativo) Un file in formato ZIP contenente risorse personalizzate aggiuntive.

Questa opzione non è attualmente disponibile e viene fornita solo per compatibilità con le versioni successive.

Output

Nome Tipo Descrizione
Entità Tabella dati Elenco di offset di caratteri ed entità

Vedi anche

Analisi del testo
Hashing di funzioni
Punteggio vowpal wabbit 7-4 modello
Training del modello Vowpal Wabbit 7-4