Description
This model, extracts SSN number entities from clinical texts.
How to use
document_assembler = DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")
sentence_detector = SentenceDetectorDLModel.pretrained("sentence_detector_dl_healthcare","en","clinical/models")\
.setInputCols(["document"])\
.setOutputCol("sentence")
tokenizer = Tokenizer()\
.setInputCols(["sentence"])\
.setOutputCol("token")
ssn_contextual_parser = ContextualParserModel.pretrained("ssn_parser","en","clinical/models")\
.setInputCols(["sentence", "token"])\
.setOutputCol("chunk_ssn")
chunk_converter = ChunkConverter()\
.setInputCols(["chunk_ssn"])\
.setOutputCol("ner_chunk")
parserPipeline = Pipeline(stages=[
document_assembler,
sentence_detector,
tokenizer,
ssn_contextual_parser,
chunk_converter
])
model = parserPipeline.fit(spark.createDataFrame([[""]]).toDF("text"))
sample_text = """San Diego, CA, USA
Email: medunites@firsthospital.com
Patient John Davies, 62 y.o. ssn: 023-92-7136 was discharged after 12 hours of monitoring without any signs of internal damage.
TSICU Admission 65332 on 24/06/2019 by ambulance VIN 4Y1SL65848Z411439
Patient Mary Smith, 45 y.o. ssn: 456-78-9012 was admitted for routine checkup on 25/06/2019.
Patient Robert Johnson, 38 y.o. ssn: 789-12-3456 underwent surgery on 26/06/2019.
Patient Sarah Williams, 55 y.o. ssn: 234-56-7890 was treated in emergency room on 27/06/2019.
Patient Michael Brown, 41 y.o. ssn: 567-89-0123 was released after observation on 28/06/2019."""
result = model.transform(spark.createDataFrame([[sample_text]]).toDF("text"))
document_assembler = nlp.DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")
sentence_detector = nlp.SentenceDetectorDLModel.pretrained("sentence_detector_dl_healthcare","en","clinical/models")\
.setInputCols(["document"])\
.setOutputCol("sentence")
tokenizer = nlp.Tokenizer()\
.setInputCols(["sentence"])\
.setOutputCol("token")
ssn_contextual_parser = medical.ContextualParserModel.pretrained("ssn_parser","en","clinical/models")\
.setInputCols(["sentence", "token"])\
.setOutputCol("chunk_ssn")
chunk_converter = medical.ChunkConverter()\
.setInputCols(["chunk_ssn"])\
.setOutputCol("ner_chunk")
parserPipeline = nlp.Pipeline(stages=[
document_assembler,
sentence_detector,
tokenizer,
ssn_contextual_parser,
chunk_converter
])
model = parserPipeline.fit(spark.createDataFrame([[""]]).toDF("text"))
sample_text = """San Diego, CA, USA
Email: medunites@firsthospital.com
Patient John Davies, 62 y.o. ssn: 023-92-7136 was discharged after 12 hours of monitoring without any signs of internal damage.
TSICU Admission 65332 on 24/06/2019 by ambulance VIN 4Y1SL65848Z411439
Patient Mary Smith, 45 y.o. ssn: 456-78-9012 was admitted for routine checkup on 25/06/2019.
Patient Robert Johnson, 38 y.o. ssn: 789-12-3456 underwent surgery on 26/06/2019.
Patient Sarah Williams, 55 y.o. ssn: 234-56-7890 was treated in emergency room on 27/06/2019.
Patient Michael Brown, 41 y.o. ssn: 567-89-0123 was released after observation on 28/06/2019."""
result = model.transform(spark.createDataFrame([[sample_text]]).toDF("text"))
val document_assembler = new DocumentAssembler()
.setInputCol("text")
.setOutputCol("document")
val sentence_detector = SentenceDetectorDLModel.pretrained("sentence_detector_dl_healthcare","en","clinical/models")
.setInputCols("document")
.setOutputCol("sentence")
val tokenizer = new Tokenizer()
.setInputCols("sentence")
.setOutputCol("token")
val ssn_contextual_parser = ContextualParserModel.pretrained("ssn_parser","en","clinical/models")
.setInputCols(Array("sentence", "token"))
.setOutputCol("chunk_ssn")
val chunk_converter = new ChunkConverter()
.setInputCols("chunk_ssn")
.setOutputCol("ner_chunk")
val parserPipeline = new Pipeline().setStages(Array(
document_assembler,
sentence_detector,
tokenizer,
ssn_contextual_parser,
chunk_converter
))
val sample_text = """San Diego, CA, USA
Email: medunites@firsthospital.com
Patient John Davies, 62 y.o. ssn: 023-92-7136 was discharged after 12 hours of monitoring without any signs of internal damage.
TSICU Admission 65332 on 24/06/2019 by ambulance VIN 4Y1SL65848Z411439
Patient Mary Smith, 45 y.o. ssn: 456-78-9012 was admitted for routine checkup on 25/06/2019.
Patient Robert Johnson, 38 y.o. ssn: 789-12-3456 underwent surgery on 26/06/2019.
Patient Sarah Williams, 55 y.o. ssn: 234-56-7890 was treated in emergency room on 27/06/2019.
Patient Michael Brown, 41 y.o. ssn: 567-89-0123 was released after observation on 28/06/2019."""
val data = Seq(sample_text).toDF("text")
val results = parserPipeline.fit(data).transform(data)
Results
| chunk | begin | end | label |
|:------------|--------:|------:|:--------|
| 023-92-7136 | 88 | 98 | SSN |
| 456-78-9012 | 286 | 296 | SSN |
| 789-12-3456 | 383 | 393 | SSN |
| 234-56-7890 | 465 | 475 | SSN |
| 567-89-0123 | 558 | 568 | SSN |
Model Information
| Model Name: | ssn_parser |
| Compatibility: | Healthcare NLP 6.2.2+ |
| License: | Licensed |
| Edition: | Official |
| Input Labels: | [document, token_doc] |
| Output Labels: | [entity_ssn] |
| Language: | en |
| Size: | 4.4 KB |
| Case sensitive: | false |