Che cos'è l'estrazione di entità?

L'estrazione di entità è il processo di identificazione ed estrazione automatica di informazioni specifiche, come nomi, luoghi o date, da un testo normale. Può anche essere conosciuta con altri termini, tra cui Named Entity Recognition (NER), identificazione di entità e suddivisione di entità. 

Immagina di avere un documento pieno di frasi e paragrafi e di voler estrarre tutti i nomi di persone, luoghi o organizzazioni menzionati. L'estrazione di entità utilizza tecniche di AI come l'elaborazione del linguaggio naturale (NLP), il machine learning e il deep learning per identificare e classificare automaticamente informazioni chiave come nomi, luoghi e organizzazioni all'interno di grandi volumi di testo non strutturato.

Che cosa si intende per entità?

Nel contesto dell'estrazione di entità, un'entità si riferisce a una specifica informazione o a un oggetto all'interno di un testo che ha un significato particolare. Si tratta spesso di concetti reali o di menzioni specifiche che i sistemi possono identificare e classificare. Considerale come i nomi o le frasi nominali chiave che trasmettono informazioni oggettive. 

I tipi comuni di entità includono:

  • Persone: nomi di persone (ad esempio, "Sundar Pichai", "Dott.ssa Jane Doe")
  • Organizzazioni: nomi di società, istituzioni, agenzie governative o altri gruppi strutturati (ad esempio, "Google", "Organizzazione Mondiale della Sanità")
  • Luoghi: luoghi geografici, indirizzi o punti di riferimento (ad esempio "New York", "Parigi", "Stati Uniti")
  • Date e orari: date specifiche, intervalli di date o espressioni temporali (ad esempio, "ieri", "5 maggio 2025", "2006")
  • Quantità e valori monetari: espressioni numeriche relative a importi, percentuali o denaro (ad esempio, "300 azioni", "50%", "100 $")
  • Prodotti: beni o servizi specifici (ad esempio, "iPhone", "Google Cloud")
  • Eventi: occorrenze denominate come conferenze, conflitti o festival (ad esempio, "Giochi olimpici", "Seconda guerra mondiale")
  • Altre categorie specifiche: a seconda dell'applicazione, le entità possono includere anche qualifiche (ad esempio, "CEO"), numeri di telefono, indirizzi email, codici medici o qualsiasi termine definito in modo personalizzato e pertinente a un determinato dominio

L'obiettivo è identificare queste menzioni significative e assegnarle a una categoria predefinita, trasformando il testo non strutturato in dati che un computer può elaborare e interpretare.

Come funziona l'estrazione di entità?

L'obiettivo dell'estrazione di entità è trasformare il testo non strutturato in dati strutturati. In genere, questo viene fatto attraverso il seguente workflow:

  1. Pre-elaborazione del testo: preparazione del testo per l'analisi.
  2. Identificazione delle entità: individuazione delle potenziali entità nel testo.
  3. Classificazione delle entità: categorizzazione delle entità identificate.
  4. Output: presentazione delle informazioni estratte in un formato strutturato.

Pre-elaborazione del testo

Il primo passaggio consiste nel preparare il testo per l'analisi. Spesso include tecniche come:

  • Tokenizzazione: suddivisione del testo in unità più piccole come parole o frasi. 
  • Tagging delle parti del discorso: assegnazione di tag grammaticali a ogni parola (ad esempio, sostantivo, verbo, aggettivo). Questo aiuta a comprendere la struttura grammaticale, poiché le entità sono spesso nomi o sintagmi nominali.
  • Lemmatizzazione/stemming: riduzione delle parole alla loro forma di base o radice per standardizzare le variazioni. La lemmatizzazione è generalmente preferita perché tiene conto del significato della parola.
  • Rimozione delle stop word (facoltativa): filtra le parole comuni come "il", "e" e "un" che potrebbero non contribuire in modo significativo all'identificazione delle entità. Questo passaggio è facoltativo, poiché alcune stop word possono far parte di entità denominate (ad esempio, "Stati Uniti d'America"). 
  • Segmentazione delle frasi: divisione del testo in singole frasi, che aiuta a mantenere il contesto locale. 
  • Normalizzazione (facoltativa): standardizzazione del testo, ad esempio conversione in minuscolo o gestione dei caratteri speciali. 

Le tecniche specifiche utilizzate possono variare a seconda del metodo di estrazione delle entità e della natura dei dati di testo. Ad esempio, mentre l'analisi delle dipendenze (comprensione delle relazioni tra le parole) è un'attività NLP utile, non è sempre un passaggio di pre-elaborazione fondamentale per tutti gli approcci di estrazione delle entità.

Identificazione delle entità

In questo passaggio, il sistema cerca potenziali entità all'interno del testo pre-elaborato. Il riconoscimento delle entità denominate (NER) è l'attività principale di identificazione e classificazione di queste entità. Le tecniche utilizzate per eseguire il NER includono:

  • Corrispondenza di pattern: ricerca di pattern o sequenze di parole specifici che spesso indicano entità (ad esempio, "Sig." seguito da un nome o formati specifici per date o indirizzi email).
  • Modelli statistici: utilizzo di modelli addestrati come Conditional Random Field (CRF), reti neurali ricorrenti (RNN) o Transformer per identificare le entità in base al loro contesto e alle parole circostanti. Questi modelli apprendono dalle caratteristiche estratte dal testo, come la forma delle parole, i tag di parte del discorso e i word embedding contestuali. 

Classificazione delle entità

Una volta identificate le potenziali entità, gli algoritmi di classificazione dell'AI, spesso basati su modelli di machine learning o sistemi basati su regole, le categorizzano in categorie predefinite. Come accennato in precedenza, alcune categorie comuni possono includere:

  • Persona: nomi di persone
  • Organizzazione: nomi di aziende, istituzioni o gruppi
  • Località: nomi di città, paesi o aree geografiche
  • Data/ora: date o orari specifici menzionati nel testo
  • Altro: altre categorie che potrebbero essere pertinenti per le tue esigenze specifiche (ad esempio, prodotto, denaro o evento)

Output

Infine, le entità estratte e le loro classificazioni vengono presentate in un formato strutturato, ad esempio: 

  • Elenchi: semplici elenchi di entità e dei relativi tipi
  • JSON/XML: formati comuni per l'archiviazione e lo scambio di dati strutturati 
  • Knowledge Graph: un modo per visualizzare le relazioni tra le entità 

Esempio di estrazione di entità

Per capire come funziona l'estrazione di entità nella pratica, considera la seguente frase: "Il 29 agosto 2024, Optimist Corp. ha annunciato a Chicago che il suo CEO, Brad Doe, si sarebbe dimesso dopo un round di finanziamento di successo da 5 milioni di dollari". Un sistema di estrazione di entità elaborerebbe questo testo e restituirebbe i seguenti dati strutturati:

  • Persona: Brad Doe
  • Organizzazione: Optimist Corp.
  • Località: Chicago
  • Data: 29 agosto 2024
  • Denaro: 5 milioni di $

Tecniche di estrazione delle entità

Per eseguire l'estrazione di entità si possono utilizzare diverse tecniche, ognuna con i propri punti di forza e di debolezza.

Approcci basati su regole

Questi metodi si basano su regole e pattern predefiniti per identificare le entità. Sono:

  • Relativamente semplici da implementare
  • Trasparenti
  • Richiedono competenze nel dominio per definire le regole
  • Possono essere efficaci in domini specifici con regole ben definite, ma avere difficoltà a gestire variazioni nel linguaggio o strutture di frasi complesse, con conseguente richiamo limitato
  • Difficili da scalare e mantenere man mano che le regole diventano più complesse

Approcci di machine learning

Queste tecniche sfruttano modelli statistici addestrati su set di dati di grandi dimensioni per identificare e classificare le entità. Ecco cosa fanno:

  • Possono adattarsi a nuovi dati e variazioni linguistiche
  • Richiedono grandi quantità di dati di addestramento etichettati e feature engineering (anche se in misura minore per il deep learning)
  • L'addestramento può essere costoso in termini di calcolo
  • I modelli comuni includono sistemi di deep learning moderni come le reti neurali ricorrenti (RNN) e i transformer (come BERT), che vengono addestrati su grandi set di dati per riconoscere le entità in base al contesto

Approcci ibridi

Questi metodi combinano i punti di forza degli approcci di machine learning e basati su regole. Ecco cosa fanno:

  • Offrono un equilibrio tra flessibilità ed efficienza, con un potenziale aumento dell'accuratezza
  • Richiedono una progettazione e un'implementazione attente per integrare componenti diversi

Ad esempio, un sistema ibrido potrebbe utilizzare metodi basati su regole per identificare potenziali entità con pattern chiari (come date o ID) e quindi applicare modelli di machine learning per classificare entità più ambigue (come nomi di persone o organizzazioni).

Vantaggi dell'utilizzo dell'estrazione di entità

L'utilizzo di tecnologie di estrazione di entità può avere una serie di vantaggi per le organizzazioni e gli utenti che lavorano con dati testuali. 

Automazione dell'estrazione di informazioni e riduzione del lavoro manuale

L'estrazione di entità ha la capacità di automatizzare il processo altrimenti laborioso e dispendioso in termini di tempo di vagliare manualmente grandi volumi di testo per trovare ed estrarre informazioni importanti. Questa automazione può aumentare notevolmente l'efficienza operativa, ridurre la monotonia dell'inserimento e della revisione manuale dei dati e liberare risorse umane per concentrarsi su attività più complesse, analitiche e strategiche che richiedono giudizio e creatività umani.

Miglioramento dell'accuratezza e della coerenza

I sistemi di estrazione automatizzata delle entità possono spesso raggiungere un grado di accuratezza e coerenza maggiore rispetto ai processi di estrazione manuale. Gli annotatori o revisori umani sono soggetti ad affaticamento, interpretazioni soggettive, bias ed errori, soprattutto quando hanno a che fare con set di dati di grandi dimensioni o attività ripetitive. I modelli NER ben addestrati, d'altra parte, possono applicare i criteri in modo coerente e potenzialmente ridurre gli errori che altrimenti potrebbero verificarsi. 

Scalabilità per grandi volumi di dati di testo

I sistemi di estrazione di entità sono intrinsecamente più scalabili. Possono aiutare a elaborare grandi quantità di dati di testo, superiori a quelle che gli esseri umani potrebbero gestire in un arco di tempo comparabile, in modo molto più rapido ed efficiente. Questa scalabilità rende l'estrazione di entità una soluzione ideale per le applicazioni che devono gestire volumi sempre crescenti di documenti, contenuti web, flussi di social media o altre fonti di informazioni basate su testo.

Contributo a un processo decisionale migliore

Fornendo un accesso rapido e strutturato alle informazioni pertinenti estratte dal testo, l'estrazione di entità supporta un processo decisionale più tempestivo e basato sui dati in varie funzioni organizzative. Ad esempio, le strategie di investimento possono essere migliorate attraverso l'analisi rapida e accurata di articoli e report di notizie finanziarie, con l'estrazione di entità che identifica le principali società, valute ed eventi di mercato.

Organizzazione e ricercabilità dei dati migliorate

Le entità estratte dai sistemi NER possono essere utilizzate come tag di metadati associati ai documenti originali o ai segmenti di testo, il che può migliorare l'organizzazione dei dati, rendendoli più ricercabili, rilevabili e recuperabili. Ad esempio, l'estrazione di entità può essere utilizzata per taggare automaticamente i documenti in un sistema di gestione dei contenuti con persone, organizzazioni e luoghi pertinenti, rendendo i documenti più facilmente ricercabili.

Abilitazione delle attività NLP downstream

L'estrazione di entità fornisce i dati strutturati di base che spesso sono un prerequisito per attività di NLP più avanzate e complesse. Queste possono includere l'estrazione delle relazioni (identificazione delle relazioni tra entità), l'analisi del sentiment (soprattutto se collegata a entità specifiche per comprendere le opinioni a riguardo), i sistemi di question answering (che devono identificare le entità nelle domande e nelle potenziali risposte) e la creazione di Knowledge Graph.

Quali sono le sfide dell'estrazione di entità?

Sebbene l'estrazione di entità possa essere uno strumento efficace, è essenziale essere consapevoli delle sue potenziali sfide e limitazioni:

  • Ambiguità: le entità a volte possono essere ambigue o avere più significati a seconda del contesto (ad esempio, "Washington" come persona, luogo o organizzazione). Per identificarle e classificarle in modo accurato è necessaria una solida comprensione del contesto.
  • Dati con rumore e incompleti: i dati di testo del mondo reale possono spesso avere rumore (contenere errori, errori di ortografia, termini gergali, grammatica non convenzionale) e potrebbero non avere un contesto sufficiente, il che può influire sulle prestazioni dei sistemi di estrazione delle entità. 
  • Entità non incluse nel vocabolario (OOV)/nuove entità: i modelli potrebbero avere difficoltà a riconoscere entità o parole non incontrate durante l'addestramento (parole OOV) o termini e nomi nuovi. La tokenizzazione a livello di sottoparola e gli incorporamenti a livello di carattere possono contribuire a mitigare questo problema.
  • Errori di rilevamento dei confini delle entità: identificare con precisione l'inizio e la fine di uno span di entità può essere difficile, soprattutto per entità lunghe o complesse o per quelle in domini specializzati. Gli errori qui influiscono direttamente sulla classificazione.
  • Scarsità di dati e costi di annotazione: i modelli di machine learning supervisionato, in particolare quelli di deep learning, in genere richiedono grandi quantità di dati annotati di alta qualità, la cui creazione è costosa e richiede molto tempo. Questo rappresenta un notevole collo di bottiglia per le lingue con poche risorse o per i domini specializzati. 
  • Adattamento del dominio: i modelli addestrati su un dominio spesso hanno prestazioni scarse quando vengono applicati a un dominio diverso a causa delle differenze nel vocabolario, nella sintassi e nei tipi di entità. Tecniche come il transfer learning (ottimizzazione dei modelli preaddestrati) possono essere fondamentali per l'adattamento. 
  • Sfide specifiche per la lingua: le prestazioni di estrazione delle entità variano a seconda della lingua a causa delle differenze nella grammatica, nella morfologia (ad esempio, per le lingue con flessione nominale), nei sistemi di scrittura (ad esempio, la mancanza di maiuscole per i nomi in alcune lingue) e nella disponibilità di risorse linguistiche. 
  • Scalabilità e risorse di calcolo: l'addestramento e il deployment di modelli di deep learning complessi possono richiedere un'elevata intensità di calcolo, che richiede una potenza di elaborazione significativa (come le GPU) e molto tempo. 
  • Bias ed equità: i modelli di estrazione di entità possono ereditare i bias presenti nei dati di addestramento, il che può portare a risultati iniqui o discriminatori. È importante utilizzare dati diversificati e rappresentativi e impiegare tecniche di rilevamento e mitigazione dei bias. 

Implementazione dell'estrazione di entità

Per iniziare a utilizzare l'estrazione di entità, in genere è necessario seguire questi passaggi:

1. Definisci le tue entità

Definisci chiaramente i tipi di entità che vuoi estrarre e le categorie associate e comunica gli obiettivi del sistema NER e il modo in cui verranno utilizzate le entità estratte. Questo passaggio è fondamentale per garantire che il sistema di estrazione delle entità sia adattato alle tue esigenze specifiche.

2. Raccolta e annotazione dei dati

Raccogli un corpus di dati di testo pertinenti al tuo dominio. Per gli approcci di machine learning supervisionato, questi dati devono essere annotati (etichettati) meticolosamente da annotatori umani secondo linee guida predefinite. La qualità e la coerenza di queste annotazioni sono fondamentali per l'addestramento di un modello ad alte prestazioni. 

3. Scegli un metodo

Seleziona una tecnica di estrazione di entità appropriata (basata su regole, machine learning, deep learning o ibrida) in base ai requisiti, alla disponibilità dei dati, all'accuratezza desiderata e alle risorse di calcolo.Considera i compromessi tra questi approcci. 

4. Preparazione dei dati

Pulisci e pre-elabora i dati di testo per rimuovere rumore e incongruenze. Ciò può includere la gestione di problemi come errori di ortografia, punteggiatura e caratteri speciali, nonché i passaggi di pre-elaborazione menzionati in precedenza (tokenizzazione, tagging POS e altro). 

5. Selezione e addestramento del modello

Se utilizzi un approccio di machine learning o deep learning, il passaggio successivo consiste nel selezionare e addestrare un modello. Ciò comporta la scelta di un'architettura di modello appropriata (come RNN o Transformer) e quindi l'addestramento sui dati etichettati. L'addestramento prevede l'inserimento nel modello di esempi di testo e delle entità corrispondenti per apprendere pattern e relazioni. 

6. Valutazione

Valuta le prestazioni del tuo sistema di estrazione di entità utilizzando metriche come precisione, richiamo e punteggio F1 su un set di test che hai messo da parte in precedenza. Questo ti aiuta a capire quanto bene il tuo sistema sta identificando e classificando le entità. L'analisi degli errori è fondamentale anche per identificare le debolezze.

7. Ottimizzazione e iterazione del modello

In base ai risultati della valutazione e all'analisi degli errori, perfeziona il modello. Ciò può comportare la regolazione degli iperparametri, la modifica o il miglioramento dei dati di addestramento o persino la modifica dell'architettura del modello. Si tratta di un processo iterativo.

8. Deployment

Esegui il deployment del sistema per elaborare nuovi dati di testo ed estrarre entità in tempo reale o in batch. Ciò può comportare l'integrazione del sistema di estrazione delle entità in un'applicazione o un workflow più ampio, ad esempio sotto forma di API. 

9. Monitoraggio e manutenzione

Monitora continuamente le prestazioni del modello in produzione. Le caratteristiche dei dati possono cambiare nel tempo ("deriva dei dati"), con un potenziale peggioramento delle prestazioni. Potrebbe essere necessario eseguire regolarmente un nuovo addestramento o aggiornamenti con nuovi dati.

Applicazioni dell'estrazione di entità

L'estrazione di entità svolge un ruolo cruciale in vari usi reali, tra cui: 

  • Estrazione di informazioni e Knowledge Graph: aiuta a estrarre informazioni strutturate da testo non strutturato, che possono poi essere utilizzate per creare Knowledge Graph. Questi grafi rappresentano le entità e le loro relazioni e consentono la ricerca avanzata, il question answering e l'analisi dei dati. 
  • Gestione dei rapporti con i clienti (CRM) e assistenza: l'estrazione di entità può essere utilizzata per analizzare le interazioni con i clienti come email, post sui social media e ticket di assistenza. Ciò consente alle organizzazioni di identificare il sentiment dei clienti, monitorare i problemi, classificare le richieste e fornire un'assistenza più personalizzata. 
  • Intelligence e sicurezza: può essere utilizzata per analizzare grandi quantità di dati di testo provenienti da articoli, social media e altre fonti per identificare potenziali minacce, monitorare persone di interesse e raccogliere intelligence. 
  • Motori di ricerca: migliora la pertinenza e la velocità della ricerca grazie alla comprensione delle entità nelle query e nei documenti. 
  • Classificazione e suggerimenti di contenuti: aiuta a categorizzare i contenuti e a consigliare articoli, prodotti o media pertinenti in base alle entità estratte. 

Casi d'uso per settore

L'estrazione di entità può essere utilizzata anche in campi come:

  • Sanità: estrazione di entità mediche (patologie, sintomi, farmaci, informazioni sui pazienti) da cartelle cliniche, note cliniche e documenti di ricerca per l'analisi e la ricerca
  • Finanza: identificazione di entità finanziarie (nomi di aziende, simboli azionari, valori monetari) ed eventi in articoli e report per l'analisi di mercato, la valutazione del rischio e il rilevamento delle frodi
  • E-commerce: estrazione di informazioni sui prodotti, sui brand e sulle caratteristiche da recensioni e descrizioni per migliorare la ricerca, i sistemi di consigli e l'analisi di mercato
  • Risorse umane: automazione del vaglio dei curriculum tramite l'estrazione di competenze, esperienza e qualifiche

Fai il prossimo passo

Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.

Google Cloud