Drug Strength Contextual Parser

Description

This is a ContextualParser model that identifies drug strength entities in clinical text. It recognizes dosage patterns including mg, mcg, g, ml, IU, units, and various numeric formats.

Predicted Entities

DRUG_STRENGTH

Copy S3 URI

How to use


document_assembler = DocumentAssembler()\
    .setInputCol("text")\
    .setOutputCol("document")

sentence_detector = SentenceDetector()\
    .setInputCols(["document"])\
    .setOutputCol("sentence")

tokenizer = Tokenizer()\
    .setInputCols(["sentence"])\
    .setOutputCol("token")

drug_strength_parser = ContextualParserModel.pretrained("drug_strength_parser", "en", "clinical/models")\
    .setInputCols(["sentence", "token"])\
    .setOutputCol("parsed_drug_strength")

pipeline = Pipeline().setStages([
    document_assembler,
    sentence_detector,
    tokenizer,
    drug_strength_parser
])

text = """Patient was prescribed Metformin 500mg twice daily and Lisinopril 10mg once daily. Ibuprofen 200mg PRN for pain. Vitamin D 1000 IU daily was also recommended."""

data = spark.createDataFrame([[text]]).toDF("text")

result = pipeline.fit(data).transform(data)


document_assembler = nlp.DocumentAssembler()\
    .setInputCol("text")\
    .setOutputCol("document")

sentence_detector = nlp.SentenceDetector()\
    .setInputCols(["document"])\
    .setOutputCol("sentence")

tokenizer = nlp.Tokenizer()\
    .setInputCols(["sentence"])\
    .setOutputCol("token")

drug_strength_parser = medical.ContextualParserModel.pretrained("drug_strength_parser", "en", "clinical/models")\
    .setInputCols(["sentence", "token"])\
    .setOutputCol("parsed_drug_strength")

pipeline = nlp.Pipeline().setStages([
    document_assembler,
    sentence_detector,
    tokenizer,
    drug_strength_parser
])

text = """Patient was prescribed Metformin 500mg twice daily and Lisinopril 10mg once daily. Ibuprofen 200mg PRN for pain. Vitamin D 1000 IU daily was also recommended."""

data = spark.createDataFrame([[text]]).toDF("text")

result = pipeline.fit(data).transform(data)


val documentAssembler = new DocumentAssembler()
    .setInputCol("text")
    .setOutputCol("document")

val sentenceDetector = new SentenceDetector()
    .setInputCols(Array("document"))
    .setOutputCol("sentence")

val tokenizer = new Tokenizer()
    .setInputCols(Array("sentence"))
    .setOutputCol("token")

val drugStrengthParser = ContextualParserModel.pretrained("drug_strength_parser", "en", "clinical/models")
    .setInputCols(Array("sentence", "token"))
    .setOutputCol("parsed_drug_strength")

val pipeline = new Pipeline().setStages(Array(
    documentAssembler,
    sentenceDetector,
    tokenizer,
    drugStrengthParser
))

val data = Seq("""Patient was prescribed Metformin 500mg twice daily and Lisinopril 10mg once daily. Ibuprofen 200mg PRN for pain. Vitamin D 1000 IU daily was also recommended.""").toDF("text")

val result = pipeline.fit(data).transform(data)

Results


+-------+-----+---+-------------+
|chunk  |begin|end|label        |
+-------+-----+---+-------------+
|500mg  |33   |37 |DRUG_STRENGTH|
|10mg   |64   |67 |DRUG_STRENGTH|
|200mg  |95   |99 |DRUG_STRENGTH|
|1000 IU|126  |132|DRUG_STRENGTH|
+-------+-----+---+-------------+

Model Information

Model Name: drug_strength_parser
Compatibility: Healthcare NLP 6.2.0+
License: Licensed
Edition: Official
Input Labels: [sentence, token]
Output Labels: [chunk_drug_strength]
Language: en
Size: 16.2 KB
Case sensitive: false