Biomedical Named Entity Recognition at Scale

12 Nov 2020  ·  Veysel Kocaman, David Talby ·

Named entity recognition (NER) is a widely applicable natural language processing task and building block of question answering, topic modeling, information retrieval, etc. In the medical domain, NER plays a crucial role by extracting meaningful chunks from clinical notes and reports, which are then fed to downstream tasks like assertion status detection, entity resolution, relation extraction, and de-identification. Reimplementing a Bi-LSTM-CNN-Char deep learning architecture on top of Apache Spark, we present a single trainable NER model that obtains new state-of-the-art results on seven public biomedical benchmarks without using heavy contextual embeddings like BERT. This includes improving BC4CHEMD to 93.72% (4.1% gain), Species800 to 80.91% (4.6% gain), and JNLPBA to 81.29% (5.2% gain). In addition, this model is freely available within a production-grade code base as part of the open-source Spark NLP library; can scale up for training and inference in any Spark cluster; has GPU support and libraries for popular programming languages such as Python, R, Scala and Java; and can be extended to support other human languages with no code changes.

PDF Abstract
Task Dataset Model Metric Name Metric Value Global Rank Result Benchmark
Named Entity Recognition (NER) AnatEM BLSTM-CNN-Char (SparkNLP) F1 89.13 # 3
Named Entity Recognition (NER) BC2GM Spark NLP F1 88.75 # 1
Named Entity Recognition (NER) BC4CHEMD BLSTM-CNN-Char (SparkNLP) F1 93.72 # 4
Named Entity Recognition (NER) BC5CDR Spark NLP F1 89.73 # 8
Named Entity Recognition (NER) BC5CDR BLSTM-CNN-Char (SparkNLP) F1 89.73 # 8
Named Entity Recognition (NER) BC5CDR-chemical Spark NLP F1 94.88 # 1
Named Entity Recognition (NER) BioNLP13-CG BLSTM-CNN-Char (SparkNLP) F1 85.58 # 1
Named Entity Recognition (NER) JNLPBA BLSTM-CNN-Char (SparkNLP) F1 81.29 # 2
Named Entity Recognition (NER) JNLPBA Spark NLP F1 81.29 # 2
Named Entity Recognition (NER) LINNAEUS Spark NLP F1 86.26 # 1
Named Entity Recognition (NER) LINNAEUS BLSTM-CNN-Char (SparkNLP) F1 86.26 # 1
Named Entity Recognition (NER) NCBI-disease BLSTM-CNN-Char (SparkNLP) F1 89.13 # 8
Named Entity Recognition (NER) NCBI-disease Spark NLP F1 90.48 # 1
Named Entity Recognition (NER) Species800 BLSTM-CNN-Char (SparkNLP) F1 80.91 # 1
Named Entity Recognition (NER) Species-800 Spark NLP F1 82.59 # 4

Methods