Description
Pretrained named entity recognition deep learning model for clinical terms in French. 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","fr") \
.setInputCols(["sentence", "token"]) \
.setOutputCol("embeddings")
ner_model = MedicalNerModel.pretrained("ner_clinical", "fr", "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 = """Le KCNJ9 humain (Kir 3.3, GIRK3) is a member of the famille des canaux potassiques rectifiants activés par les protéines G (GIRK). Ici, nous décrivons l'organisation génomique du locus KCNJ9 sur le chromosome 1q21-23 en tant que gène candidat pour le diabète sucré de type II dans la population indienne Pima. Le gène s'étend sur environ 7,6 kb et contient un exon non codant et deux exons codants séparés respectivement par des introns d'environ 2,2 et environ 2,6 kb. Nous avons identifié 14 polymorphismes d'un seul nucléotide (SNP), dont un qui prédit une substitution Val366Ala, ainsi qu'une insertion/deletion de 8 paires de bases (bp). Nos études d'expression ont révélé la présence du transcrit dans divers tissus humains, notamment le pancréas et deux tissus importants réagissant à l'insuline : la graisse et le muscle squelettique. La caractérisation du gène KCNJ9 devrait faciliter d'autres études sur la fonction de la protéine KCNJ9 et permettre d'évaluer le rôle potentiel du locus dans le diabète de type II. CONTEXTE : À l'heure actuelle, l'un des aspects les plus importants pour le traitement du cancer du sein est le développement de la thérapie standard pour les patients précédemment traités avec des anthracyclines et des taxanes."""
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","fr")
.setInputCols(Array("document", "token"))
.setOutputCol("embeddings")
val ner_model = MedicalNerModel.pretrained("ner_clinical", "fr", "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
])
val sample_data = Seq("""Le KCNJ9 humain (Kir 3.3, GIRK3) is a member of the famille des canaux potassiques rectifiants activés par les protéines G (GIRK). Ici, nous décrivons l'organisation génomique du locus KCNJ9 sur le chromosome 1q21-23 en tant que gène candidat pour le diabète sucré de type II dans la population indienne Pima. Le gène s'étend sur environ 7,6 kb et contient un exon non codant et deux exons codants séparés respectivement par des introns d'environ 2,2 et environ 2,6 kb. Nous avons identifié 14 polymorphismes d'un seul nucléotide (SNP), dont un qui prédit une substitution Val366Ala, ainsi qu'une insertion/deletion de 8 paires de bases (bp). Nos études d'expression ont révélé la présence du transcrit dans divers tissus humains, notamment le pancréas et deux tissus importants réagissant à l'insuline : la graisse et le muscle squelettique. La caractérisation du gène KCNJ9 devrait faciliter d'autres études sur la fonction de la protéine KCNJ9 et permettre d'évaluer le rôle potentiel du locus dans le diabète de type II. CONTEXTE : À l'heure actuelle, l'un des aspects les plus importants pour le traitement du cancer du sein est le développement de la thérapie standard pour les patients précédemment traités avec des anthracyclines et des taxanes.""").toDS.toDF("text")
val result = pipeline.fit(sample_data).transform(sample_data)
Results
+---------------------------------------------------------+-----+----+---------+
|chunk |begin|end |ner_label|
+---------------------------------------------------------+-----+----+---------+
|GIRK3 |26 |30 |TREATMENT|
|canaux potassiques |64 |81 |TREATMENT|
|protéines G |111 |121 |TREATMENT|
|locus KCNJ9 |179 |189 |PROBLEM |
|gène |229 |232 |PROBLEM |
|diabète sucré de type II dans la population indienne Pima|251 |307 |PROBLEM |
|Le gène |310 |316 |TEST |
|un exon non codant |357 |374 |PROBLEM |
|exons codants |384 |396 |TEST |
|introns d'environ |429 |445 |TREATMENT|
|polymorphismes |494 |507 |TEST |
|SNP |531 |533 |TEST |
|substitution Val366Ala |560 |581 |TEST |
|insertion/deletion |597 |614 |PROBLEM |
|Nos études d'expression |643 |665 |TEST |
|transcrit dans divers tissus |693 |720 |PROBLEM |
|graisse |808 |814 |PROBLEM |
|muscle squelettique |822 |840 |PROBLEM |
|caractérisation du gène KCNJ9 |846 |874 |TEST |
|locus |991 |995 |PROBLEM |
|diabète de type II |1005 |1022|PROBLEM |
|thérapie standard |1157 |1173|TREATMENT|
|anthracyclines |1223 |1236|TREATMENT|
|taxanes |1245 |1251|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: | fr |
Size: | 2.9 MB |
Benchmarking
label precision recall f1-score support
TEST 0.92 0.80 0.85 288
PROBLEM 0.80 0.79 0.80 529
TREATMENT 0.70 0.66 0.68 310
micro-avg 0.80 0.76 0.78 1127
macro-avg 0.81 0.75 0.78 1127
weighted-avg 0.80 0.76 0.78 1127