Description
This model is a BERT based classifier that can classify the origin of symptoms related to Covid-19 from Spanish tweets. This model is intended for direct use as a classification model and the target classes are: Lit-News_mentions, Self_reports, non-personal_reports.
Predicted Entities
Lit-News_mentions
, Self_reports
, non-personal_reports
Live Demo Open in Colab Copy S3 URI
How to use
document_assembler = DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")\
tokenizer = Tokenizer()\
.setInputCols(["document"])\
.setOutputCol("token")
sequenceClassifier = MedicalBertForSequenceClassification.pretrained("bert_sequence_classifier_self_reported_symptoms_tweet", "es", "clinical/models")\
.setInputCols(["document", "token"])\
.setOutputCol("class")\
.setCaseSensitive(True)\
.setMaxSentenceLength(512)
pipeline = Pipeline(stages=[
document_assembler,
tokenizer,
sequenceClassifier
])
model = pipeline.fit(spark.createDataFrame([[""]]).toDF("text"))
data = spark.createDataFrame(["Las vacunas 3 y hablamos inminidad vivo Son bichito vivo dentro de lÃquido de la vacuna suelen tener reacciones alÃorgicas si que sepan",
"Yo pense que me estaba dando el coronavirus porque cuando me levante casi no podia respirar pero que si era que tenia la nariz topada de mocos.",
"Tos, dolor de garganta y fiebre, los síntomas más reportados por los porteños con coronavirus"], StringType()).toDF("text")
result = model.transform(data)
val document_assembler = new DocumentAssembler()
.setInputCol("text")
.setOutputCol("document")
val tokenizer = new Tokenizer()
.setInputCols("document")
.setOutputCol("token")
val sequenceClassifier = MedicalBertForSequenceClassification.pretrained("bert_sequence_classifier_self_reported_symptoms_tweet", "es", "clinical/models")
.setInputCols(Array("document", "token"))
.setOutputCol("class")
.setCaseSensitive(True)
.setMaxSentenceLength(512)
val pipeline = new PipelineModel().setStages(Array(document_assembler,
tokenizer,
sequenceClassifier
))
val data = Seq(Array("Las vacunas 3 y hablamos inminidad vivo Son bichito vivo dentro de lÃquido de la vacuna suelen tener reacciones alÃorgicas si que sepan",
"Yo pense que me estaba dando el coronavirus porque cuando me levante casi no podia respirar pero que si era que tenia la nariz topada de mocos.",
"Tos, dolor de garganta y fiebre, los síntomas más reportados por los porteños con coronavirus")).toDS.toDF("text")
val result = model.fit(data).transform(data)
import nlu
nlu.load("es.classify.self_reported_symptoms").predict("""Yo pense que me estaba dando el coronavirus porque cuando me levante casi no podia respirar pero que si era que tenia la nariz topada de mocos.""")
Results
+-------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+
|text |result |
+-------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+
|Las vacunas 3 y hablamos inminidad vivo Son bichito vivo dentro de lÃquido de la vacuna suelen tener reacciones alÃorgicas si que sepan |[non-personal_reports]|
|Yo pense que me estaba dando el coronavirus porque cuando me levante casi no podia respirar pero que si era que tenia la nariz topada de mocos.|[Self_reports] |
|Tos, dolor de garganta y fiebre, los síntomas más reportados por los porteños con coronavirus |[Lit-News_mentions] |
+-------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+
Model Information
Model Name: | bert_sequence_classifier_self_reported_symptoms_tweet |
Compatibility: | Healthcare NLP 4.0.0+ |
License: | Licensed |
Edition: | Official |
Input Labels: | [document, token] |
Output Labels: | [class] |
Language: | es |
Size: | 412.4 MB |
Case sensitive: | true |
Max sentence length: | 128 |
Benchmarking
label precision recall f1-score support
Lit-News_mentions 0.93 0.95 0.94 309
Self_reports 0.65 0.74 0.69 72
non-personal_reports 0.79 0.67 0.73 122
accuracy - - 0.85 503
macro-avg 0.79 0.79 0.79 503
weighted-avg 0.85 0.85 0.85 503