Alternative SpaCy per l'estrazione di entità (NER)

Da diversi anni SpaCy è uno standard di fatto per tutte le aziende che vogliono lanciare un progetto di estrazione di entità. Cosa ha reso SpaCy così popolare? E ci sono valide alternative a SpaCy nel 2023 per chiunque voglia avviare un progetto di estrazione di entità? Discutiamo questi punti in questo articolo.

SpaCy

SpaCy per l'estrazione di entità

La prima versione di spaCy è stata rilasciata nel 2015 ed è diventata rapidamente un framework standard per l'estrazione di entità di livello aziendale (nota anche come NER).

Se si dispone di un testo non strutturato (proveniente ad esempio dal web) e si desidera estrarre da esso dati strutturati, come date, nomi, luoghi, ecc. spaCy è un'ottima soluzione.

SpaCy è interessante perché sono disponibili diversi modelli pre-addestrati in circa 20 lingue. (vedi qui). Ciò significa che non è necessario addestrare il proprio modello per l'estrazione delle entità. Significa anche che, se si vuole addestrare il proprio modello, si può partire da un modello pre-addestrato invece di iniziare da zero, risparmiando così molto tempo.

SpaCy è considerato un framework di "livello produttivo" perché è molto veloce, affidabile e dotato di una documentazione completa.

Tuttavia, se le entità predefinite supportate dai modelli pre-addestrati di spaCy non sono sufficienti, è necessario lavorare sull'"annotazione dei dati" (nota anche come "etichettatura dei dati") per addestrare il proprio modello. Questo processo richiede molto tempo e molti progetti di estrazione di entità aziendali falliscono a causa di questa sfida.

Supponiamo di voler estrarre i titoli di lavoro da un testo (ad esempio, da un curriculum o da una pagina web aziendale). Poiché i modelli preaddestrati di spaCy non supportano tale entità per impostazione predefinita, è necessario insegnare a spaCy come riconoscere i titoli di lavoro. È necessario creare un set di dati di addestramento che contenga diverse migliaia di esempi di estrazione di titoli di lavoro (e forse anche molti di più!). È possibile utilizzare un software di annotazione a pagamento come Prodigy (realizzato dal team di spaCy), ma ciò comporta comunque un notevole lavoro umano. È abbastanza comune vedere aziende che assumono un gruppo di appaltatori per diversi mesi al fine di realizzare un progetto di annotazione dei dati. Un lavoro del genere è talmente ripetitivo e noioso che i set di dati risultanti contengono spesso molti errori...

Esempio di annotazione dei dati
Esempio di annotazione dei dati

Vediamo quali soluzioni alternative si possono provare nel 2023!

Stanford CoreNLP

Stanford CoreNLP

La prima versione di Stanford CoreNLP è stata rilasciata nel 2013. Si tratta di un framework Java (mentre spaCy è un framework Python) che consente di eseguire l'estrazione di entità con ottimi risultati.

Anche Stanford CoreNLP propone modelli pre-addestrati, ma meno di spaCy (vedi qui).

L'accuratezza di questo framework è simile a quella di spaCy, ma dipende dai dati che si stanno analizzando. Ad esempio, Stanford CoreNLP fornisce risultati migliori sui dati legali. Inoltre, vale la pena notare che alcune entità sono trattate in modo leggermente diverso rispetto a spaCy (è il caso, ad esempio, dell'entità GPE).

Per quanto riguarda le prestazioni, Stanford sembra chiaramente più lento di spaCy, il che potrebbe essere un problema se si sta cercando di raggiungere un throughput molto elevato.

Flair

Flair PNL

Flair è un framework Python più recente (rilasciato nel 2018) basato sul framework di deep learning PyTorch.

Sta guadagnando molta popolarità perché raggiunge un'accuratezza maggiore in molte lingue rispetto a spaCy. Sono stati proposti diversi modelli pre-addestrati (vedi qui).

Tuttavia, questo miglioramento della precisione ha un costo in termini di velocità. Il throughput sarà molto più basso rispetto a spaCy.

Modelli di intelligenza artificiale generativa (GPT-J, GPT-3...)

Un paio di anni fa, ha iniziato a comparire un nuovo tipo di modelli di intelligenza artificiale: i modelli generativi. Questi modelli sono stati inizialmente creati per la generazione di testi (scrivere l'inizio di un testo e lasciare che il modello generi il resto), ma ci si è rapidamente resi conto che questi modelli erano molto validi in tutti i casi di elaborazione del linguaggio naturale, compresa l'estrazione di entità.

I modelli generativi più popolari oggi sono GPT-3, GPT-J, GPT-NeoX, T5 e Bloom. Tutti questi modelli di deep learning utilizzano l'architettura Transformer, inventata da Google nel 2017.

Questa nuova generazione di modelli di intelligenza artificiale è molto pesante e costosa da eseguire. Di solito richiedono hardware di fascia alta basato su una o più GPU. Inoltre, sono più lenti di framework come spaCy. Ma grazie a questi modelli è ora possibile estrarre qualsiasi tipo di entità senza addestrare un modello dedicato!

L'estrazione di qualsiasi entità senza creare un modello dedicato è possibile grazie all'apprendimento a pochi colpi. Questa tecnica consiste nel mostrare rapidamente al modello ciò che si vuole fare, facendo solo un paio di esempi in fase di esecuzione. Per saperne di più sull'apprendimento con pochi colpi, cliccate qui.

Tornando al nostro esempio di estrazione dei titoli di lavoro, se si desidera estrarre i titoli di lavoro con un modello come GPT-J non sarà necessario annotare alcun dato. Si risparmieranno settimane o mesi di lavoro umano. E l'accuratezza sarà probabilmente molto più alta di qualsiasi estrazione di entità con spaCy.

Si veda il nostro articolo su come eseguire facilmente l'estrazione di entità con i modelli GPT.

Conclusione

SpaCy è un ottimo framework per l'elaborazione del linguaggio naturale che oggi viene utilizzato in produzione da molte aziende per l'estrazione di entità.

Tuttavia, spaCy e alternative come Stanford CoreNLP o Flair sono limitati in termini di accuratezza e richiedono un noioso lavoro di annotazione per estrarre nuove entità. Nel 2023 sarà possibile utilizzare diversi modelli alternativi basati sulla generazione di testo per l'estrazione di entità senza alcuna annotazione, come GPT-J, GPT-NeoX, GPT-3... Questi nuovi modelli aiuteranno sempre più aziende ad avere successo nei loro progetti di estrazione di entità.

Se volete utilizzare GPT-J e GPT-NeoX, non esitate a provare le API di NLP Cloud. (provalo qui)!

Juliette
Responsabile marketing presso NLP Cloud