
摘要
命名实体识别(NER)是一项广泛适用的自然语言处理任务,是问答系统、主题建模、信息检索等领域的基础构建模块。在医疗领域,NER 通过从临床笔记和报告中提取有意义的信息片段,为下游任务如断言状态检测、实体解析、关系抽取和去标识化提供支持,从而发挥关键作用。我们基于 Apache Spark 重新实现了 Bi-LSTM-CNN-Char 深度学习架构,提出了一种单一可训练的 NER 模型,在未使用像 BERT 这样的重型上下文嵌入的情况下,在七个公开的生物医学基准测试中取得了新的最先进结果。这包括将 BC4CHEMD 的性能提升至 93.72%(提高了 4.1%),Species800 提升至 80.91%(提高了 4.6%),以及 JNLPBA 提升至 81.29%(提高了 5.2%)。此外,该模型作为开源 Spark NLP 库的一部分,提供了一个生产级别的代码库;可以在任何 Spark 集群上进行扩展以用于训练和推理;支持 GPU 和多种流行编程语言的库,如 Python、R、Scala 和 Java;并且可以通过无需修改代码的方式扩展以支持其他人类语言。
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| named-entity-recognition-ner-on-bc5cdr | BLSTM-CNN-Char (SparkNLP) | F1: 89.73 |
| named-entity-recognition-ner-on-bc5cdr | Spark NLP | F1: 89.73 |
| named-entity-recognition-ner-on-jnlpba | Spark NLP | F1: 81.29 |
| named-entity-recognition-ner-on-jnlpba | BLSTM-CNN-Char (SparkNLP) | F1: 81.29 |
| named-entity-recognition-ner-on-ncbi-disease | BLSTM-CNN-Char (SparkNLP) | F1: 89.13 |
| named-entity-recognition-ner-on-ncbi-disease | Spark NLP | F1: 89.13 |
| named-entity-recognition-on-anatem | BLSTM-CNN-Char (SparkNLP) | F1: 89.13 |
| named-entity-recognition-on-bc2gm | Spark NLP | F1: 88.75 |
| named-entity-recognition-on-bc4chemd | BLSTM-CNN-Char (SparkNLP) | F1: 93.72 |
| named-entity-recognition-on-bc5cdr-chemical | Spark NLP | F1: 94.88 |
| named-entity-recognition-on-bionlp13-cg | BLSTM-CNN-Char (SparkNLP) | F1: 85.58 |
| named-entity-recognition-on-linnaeus | BLSTM-CNN-Char (SparkNLP) | F1: 86.26 |
| named-entity-recognition-on-linnaeus | Spark NLP | F1: 86.26 |
| named-entity-recognition-on-species-800 | Spark NLP | F1: 80.91 |
| named-entity-recognition-on-species800 | BLSTM-CNN-Char (SparkNLP) | F1: 80.91 |