Automazione del riconoscimento delle entità chimiche Creazione del tuo modello ChemNER

Automazione del riconoscimento delle entità chimiche Crea il tuo modello ChemNER

Foto di Aakash Dhage su Unsplash

Ho sempre avuto un forte interesse per la chimica, e questa ha svolto un ruolo significativo nel plasmare sia il mio percorso accademico che professionale. Come professionista dei dati con una formazione in chimica, ho trovato molti modi per applicare sia le mie competenze scientifiche che di ricerca, come creatività, curiosità, pazienza, attenta osservazione e analisi, a progetti di dati. In questo articolo, ti guiderò nello sviluppo di un semplice modello di Named Entity Recognition (NER) che ho chiamato ChemNER. Questo modello può identificare composti chimici all’interno di un testo e classificarli in categorie come alcani, alcheni, alchini, alcoli, aldeidi, chetoni o acidi carbossilici.

TL;DR

Se vuoi solo giocare con il modello ChemNER e/o utilizzare l’app Streamlit che ho creato, puoi accedervi tramite i seguenti link:

Link HuggingFace: https://huggingface.co/victormurcia/en_chemner

App Streamlit: ChemNER Link

Introduzione

Approcci NER possono essere generalmente classificati in una delle seguenti 3 categorie:

  • Basati su un lessico: Definire un dizionario di classi e termini
  • Basati su regole: Definire regole per i termini che corrispondono a ciascuna classe
  • Basati su Machine Learning (ML): Far imparare al modello le regole di denominazione da un corpus di addestramento

Ciascuno di questi approcci ha i suoi punti di forza e limitazioni e, come sempre, un modello più complicato e sofisticato non è sempre il migliore.

In questo caso, l’approccio basato su un lessico sarebbe limitante in termini di portata, poiché per ogni classe di composti che ci interessa classificare dovremmo definire manualmente TUTTI i composti che rientrano in quella categoria. In altre parole, per rendere questo approccio completo, dovresti inserire manualmente ogni composto chimico per ogni classe di composti.

L’approccio ML potrebbe essere il modo più potente, tuttavia l’annotazione di un dataset può essere piuttosto laboriosa (anticipo: alla fine finirò per addestrare un modello, ma voglio mostrare l’intero processo per motivi didattici). Invece, perché non iniziare con alcune regole di denominazione predefinite?