Detect Assertion Status (assertion_classifier_base)

Description

Assign assertion status to clinical entities.

Copy S3 URI

How to use

# Test classifier in Spark NLP pipeline
document_assembler = DocumentAssembler()\
    .setInputCol("text") \
    .setOutputCol("document")

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

# Load newly trained classifier
assertion_classifier = MedicalBertForSequenceClassification\
    .pretrained("AssertionBertForSequence_i2b2_3label", "en", "clinical/models")\
    .setInputCols(["document", "token"])\
    .setOutputCol("prediction")

pipeline = Pipeline(stages=[
    document_assembler, 
    tokenizer,
    assertion_classifier
])

# Generating example
data = spark.createDataFrame(["he was begun on physical therapy but remained agitated .",
                              "there were no meatal blood ."], StringType()).toDF("text")
                              
result = pipeline.fit(data).transform(data)

# Checking results
result.select("text", "prediction.result").show(truncate=False)



# Test classifier in Spark NLP pipeline
document_assembler = nlp.DocumentAssembler() \
    .setInputCol("text") \
    .setOutputCol("document")

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

# Load newly trained classifier
assertion_classifier = medical.BertForSequenceClassification\
    .pretrained("AssertionBertForSequence_i2b2_3label", "en", "clinical/models")\
    .setInputCols(["document", "token"])\
    .setOutputCol("prediction")

pipeline = nlp.Pipeline(stages=[
    document_assembler, 
    tokenizer,
    assertion_classifier
])

# Generating example
data = spark.createDataFrame(["he was begun on physical therapy but remained agitated .",
                              "there were no meatal blood ."], StringType()).toDF("text")
                              
result = pipeline.fit(data).transform(data)


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

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

val assertion_classifier = MedicalBertForSequenceClassification
    .pretrained("AssertionBertForSequence_i2b2_3label", "en", "clinical/models")
    .setInputCols(Array("document", "token"))
    .setOutputCol("prediction")

val pipeline = new Pipeline().setStages(Array(documenter, tokenizer, assertion_classifier))


val data = Seq(Array("he was begun on physical therapy but remained agitated .",
                    "there were no meatal blood .")).toDF("text")

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


Results


+----------------------------------------------------------------+-------+
|text                                                            |result |
+----------------------------------------------------------------+-------+
|he was begun on physical therapy but remained agitated  .       |present|
|there were no meatal blood .                                    |absent |
+----------------------------------------------------------------+-------+

Model Information

Model Name: AssertionBertForSequence_i2b2_3label
Compatibility: Healthcare NLP 5.5.2+
License: Licensed
Edition: Official
Input Labels: [document, token]
Output Labels: [assertion_class]
Language: en
Size: 406.3 MB
Case sensitive: false
Max sentence length: 512