Vai al contenuto

Named Entity Recognition (NER)

Nell’elaborazione del linguaggio naturale, Named Entity Recognition (NER) è un processo in cui una frase o un pezzo di testo non strutturato viene analizzato per trovare entità che possono essere classificate come nomi, organizzazioni, posizioni, quantità, valori monetari, percentuali, ecc. Con il Named Entity Recognition, possiamo estrarre informazioni chiave per capire di cosa tratta un testo o semplicemente utilizzarle per raccogliere informazioni importanti da archiviare in un database.

NER fa parte dell’NLP (Natural Language Processing) un sottocampo dell’intelligenza artificiale che si occupa dell’elaborazione e dell’analisi del linguaggio naturale, cioè qualsiasi linguaggio che si sia sviluppato naturalmente, piuttosto che artificialmente, come con i linguaggi di codifica dei computer. Il NER è un pilastro dell’estrazione automatica di conoscenza ed evita ad un’azienda di dover ricorrere a un’attività di tipo manuale poco sostenibile: se è vero che la classificazione delle entità è un concetto naturale per l’essere umano, è anche vero che in moltissime circostanze il ricorso all’automazione risulta essere l’unica strada economicamente sostenibile.

Come funziona NER

Al centro di qualsiasi modello NER c’è un processo diviso in due fasi:

  1. Rilevare un’entità
  2. Classifica l’entità

Il primo passo consiste quindi nel rilevare  una parola o una stringa di parole che formano un’entità. Ogni parola rappresenta un token: “The Great Lakes” è una stringa di tre token che rappresenta un’entità. Il tagging interno-esterno-inizio è un modo comune per indicare dove iniziano e finiscono le entità. Il secondo passaggio richiede la creazione di categorie di entità.  Ecco alcune categorie di entità comuni:

  • Persona: Elvis Presley, Audrey Hepburn, David Beckham
  • Organizzazione: Google, Mastercard, Università di Oxford
  • Date e periodi: 2006, 16:34, 2:00
  • Posizione: Trafalgar Square, MoMA, Machu Picchu
  • Opera d’arte: Amleto, Guernica, Esilio su Main St.

Questi sono solo alcuni esempi. Possiamo creare altre categorie di entità in base alle esigenze, nonché fornire regole granulari per quali entità appartengono a quali categorie in casi di ambiguità o ontologie specifiche dell’attività che aiutano l’algoritmo di NER a districarsi tra le complesse caratteristiche sintattiche e lessicali del linguaggio naturale.

Per sapere cosa è e cosa non è un’entità rilevante e come classificarla, un modello richiede dati di addestramento. L’intero sistema è basato su tecniche di apprendimento automatico finalizzate a migliorare costantemente le performance dell’intero sistema. Più i dati di addestramento sono rilevanti per l’attività, più accurato sarà il modello nel completare l’attività. Se “alleniamo” il nostro modello sulla letteratura gotica vittoriana, probabilmente farà fatica a navigare su Twitter…

Dopo aver definito le entità e le categorie, possiamo usarle per etichettare i dati e creare un set di dati di addestramento. Il set di dati di addestramento viene poi usato per addestrare un algoritmo per etichettare il testo in modo predittivo.

Come si usa NER?

NER è adatto a tutte le situazioni in cui è utile una panoramica di alto livello di una grande quantità di testo. Con NER, puoi, a colpo d’occhio, comprendere l’argomento o il tema di un testo e raggruppare rapidamente i testi in base alla loro pertinenza o somiglianza. Alcuni casi d’uso NER notevoli includono:

  • Risorse umane
    • Velocizza il processo di assunzione riassumendo i CV dei candidati;
    • migliora i flussi di lavoro interni classificando i reclami e le domande dei dipendenti
  • Servizio Clienti
    • Migliora i tempi di risposta classificando le richieste degli utenti, i reclami e le domande e filtrando per parole chiave prioritarie
  • Motori di ricerca
    • Migliora la velocità e la pertinenza dei risultati di ricerca e dei consigli riassumendo testo descrittivo, recensioni e discussioni
    • La piattaforma Booking.com utilizza proprio NER per analizzare la grandissima mole di feedback e recensioni che gli utenti lasciano sulle strutture
  • Classificazione dei contenuti
    • Visualizza più facilmente i contenuti e ottieni informazioni dettagliate sulle tendenze identificando gli argomenti e i temi dei post del blog e degli articoli di notizie
  • Assistenza sanitaria
    • Migliora gli standard di assistenza ai pazienti e riduci i carichi di lavoro estraendo le informazioni essenziali dai rapporti di laboratorio
    • L’azienda Roche lo sta applicando ai referti di patologia e radiologia
  • Università
    • Consente a studenti e ricercatori di trovare materiale pertinente più velocemente riassumendo documenti e materiale d’archivio ed evidenziando termini, argomenti e temi chiave
    • La piattaforma digitale dell’UE per il patrimonio culturale, Europeana, utilizza NER per rendere ricercabili i giornali storici

NER open source e cloud

Esistono in commercio vari motori NER per qualsiasi esigenza, sia commerciali che open source.

Naturalmente, il vantaggio principale dei motori NER open source è che sono open source. Oltre al fatto di essere per la maggior parte gratuiti consentono di modificare il motore a proprio piacimento tramite piccoli interventi sul codice sorgente, iperparametrizzare il modello. Chiaramente, la scelta open source richiede anche una gestione dell’infrastruttura che dovrà ospitare il motore con annessi tutti gli oneri per mantenerlo e assicurarsi di avere abbastanza potenza di calcolo per gestire tutte le richieste.

I più famosi motori NER open source si possono trovare su github. Ecco uno dei più famosi:

D’altra parte, i motori NER cloud sono a pagamento, ma non avremo pensieri poichè il provider gestirà il server per noi, mantenendo e migliorerando il modello. In questo caso però, dobbiamo accettare di far transitare i nostri dati sul cloud del provider.  Ci sono molti motori NER cloud sul mercato. Ecco alcuni dei migliori del mercato:

  • Lettria
  • Paralleldots
  • MonkeyLearn
  • Google Cloud Natural Language
  • Amazon Comprehend
  • Microsoft Azure Text Analytics
  • IBM Watson
Tag: