Description
Pretrained named entity recognition deep learning model for clinical terms in Spanish. The SparkNLP deep learning model (MedicalNerModel) is inspired by a former state-of-the-art model for NER: Chiu & Nicols, Named Entity Recognition with Bidirectional LSTM-CNN.
Predicted Entities
PROBLEM
, TEST
, TREATMENT
Live Demo Open in Colab Copy S3 URI
How to use
document_assembler = DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")
sentence_detector = SentenceDetectorDLModel.pretrained("sentence_detector_dl", "xx")\
.setInputCols(["document"])\
.setOutputCol("sentence")
tokenizer = Tokenizer()\
.setInputCols(["sentence"])\
.setOutputCol("token")
embeddings = WordEmbeddingsModel.pretrained("w2v_cc_300d","es") \
.setInputCols(["sentence", "token"]) \
.setOutputCol("embeddings")
ner_model = MedicalNerModel.pretrained("ner_clinical", "es", "clinical/models")\
.setInputCols(["sentence", "token","embeddings"])\
.setOutputCol("ner")
ner_converter = NerConverterInternal()\
.setInputCols(["sentence", "token", "ner"])\
.setOutputCol('ner_chunk')
pipeline = Pipeline(stages=[
document_assembler,
sentence_detector,
tokenizer,
embeddings,
ner_model,
ner_converter
])
sample_text = """El KCNJ9 humano (Kir 3.3, GIRK3) es un miembro de la familia de canales de potasio rectificadores internos activados por proteínas G (GIRK). Aquí describimos la organización genómica del locus KCNJ9 en el cromosoma 1q21-23 como un gen candidato para la diabetes mellitus tipo II en la población india Pima. El gen abarca aproximadamente 7,6 kb y contiene un exón no codificante y dos exones codificantes separados por intrones de aproximadamente 2,2 y aproximadamente 2,6 kb, respectivamente. Identificamos 14 polimorfismos de un solo nucleótido (SNP), incluido uno que predice una sustitución Val366Ala, y una inserción/deleción de 8 pares de bases (bp). Nuestros estudios de expresión revelaron la presencia del transcrito en varios tejidos humanos, incluidos el páncreas y dos tejidos importantes sensibles a la insulina: grasa y músculo esquelético. La caracterización del gen KCNJ9 debería facilitar más estudios sobre la función de la proteína KCNJ9 y permitir la evaluación del posible papel del locus en la diabetes tipo II. CONTEXTO: En la actualidad, uno de los aspectos más importantes para el tratamiento del cáncer de mama es desarrollar la terapia estándar para pacientes tratados previamente con antraciclinas y taxanos."""
data = spark.createDataFrame([[sample_text]]).toDF("text")
result = pipeline.fit(data).transform(data)
val document_assembler = new DocumentAssembler()
.setInputCol("text")
.setOutputCol("document")
val sentence_detector = SentenceDetectorDLModel.pretrained("sentence_detector_dl", "xx")
.setInputCols("document")
.setOutputCol("sentence")
val tokenizer = new Tokenizer()
.setInputCols("sentence")
.setOutputCol("token")
val embeddings = WordEmbeddingsModel.pretrained("w2v_cc_300d","es")
.setInputCols(Array("sentence", "token"))
.setOutputCol("embeddings")
val ner_model = MedicalNerModel.pretrained("ner_clinical", "es", "clinical/models")
.setInputCols(Array("sentence", "token", "embeddings"))
.setOutputCol("ner")
val ner_converter = new NerConverterInternal()
.setInputCols(Array("sentence", "token", "ner"))
.setOutputCol("ner_chunk")
val pipeline = new Pipeline().setStages(Array(
document_assembler,
sentence_detector,
tokenizer,
embeddings,
ner_model,
ner_converter
))
sample_data = Seq("""El KCNJ9 humano (Kir 3.3, GIRK3) es un miembro de la familia de canales de potasio rectificadores internos activados por proteínas G (GIRK). Aquí describimos la organización genómica del locus KCNJ9 en el cromosoma 1q21-23 como un gen candidato para la diabetes mellitus tipo II en la población india Pima. El gen abarca aproximadamente 7,6 kb y contiene un exón no codificante y dos exones codificantes separados por intrones de aproximadamente 2,2 y aproximadamente 2,6 kb, respectivamente. Identificamos 14 polimorfismos de un solo nucleótido (SNP), incluido uno que predice una sustitución Val366Ala, y una inserción/deleción de 8 pares de bases (bp). Nuestros estudios de expresión revelaron la presencia del transcrito en varios tejidos humanos, incluidos el páncreas y dos tejidos importantes sensibles a la insulina: grasa y músculo esquelético. La caracterización del gen KCNJ9 debería facilitar más estudios sobre la función de la proteína KCNJ9 y permitir la evaluación del posible papel del locus en la diabetes tipo II. CONTEXTO: En la actualidad, uno de los aspectos más importantes para el tratamiento del cáncer de mama es desarrollar la terapia estándar para pacientes tratados previamente con antraciclinas y taxanos.""").toDS.toDF("text")
val result = pipeline.fit(sample_data).transform(sample_data)
Results
+-----------------------------------------------+-----+----+---------+
|chunk |begin|end |ner_label|
+-----------------------------------------------+-----+----+---------+
|potasio rectificadores |75 |96 |TREATMENT|
|proteínas G |121 |131 |TREATMENT|
|organización genómica del locus |161 |191 |TEST |
|un gen candidato |228 |243 |PROBLEM |
|diabetes mellitus tipo II en la población india|253 |299 |PROBLEM |
|intrones |418 |425 |TEST |
|SNP |547 |549 |PROBLEM |
|estudios de expresión |665 |685 |TEST |
|grasa |825 |829 |PROBLEM |
|músculo esquelético |833 |851 |PROBLEM |
|caracterización del gen |857 |879 |TEST |
|proteína |941 |948 |TEST |
|evaluación |970 |979 |TEST |
|diabetes tipo II |1015 |1030|PROBLEM |
|cáncer de mama |1121 |1134|PROBLEM |
|terapia |1154 |1160|TREATMENT|
|antraciclinas |1211 |1223|TREATMENT|
|taxanos |1227 |1233|TREATMENT|
+-----------------------------------------------+-----+----+---------+
Model Information
Model Name: | ner_clinical |
Compatibility: | Healthcare NLP 5.0.1+ |
License: | Licensed |
Edition: | Official |
Input Labels: | [sentence, token, embeddings] |
Output Labels: | [ner] |
Language: | es |
Size: | 2.9 MB |
Benchmarking
label precision recall f1-score support
PROBLEM 0.80 0.84 0.82 1036
TREATMENT 0.83 0.74 0.78 473
TEST 0.93 0.76 0.84 544
micro-avg 0.83 0.80 0.81 2053
macro-avg 0.85 0.78 0.81 2053
weighted-avg 0.84 0.80 0.81 2053