Description
This model identifies the sentiments (neutral, positive or negative) in Spanish texts.
Predicted Entities
NEUTRAL
, POSITIVE
, NEGATIVE
How to use
document = DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")
embeddings = BertSentenceEmbeddings\
.pretrained('labse', 'xx') \
.setInputCols(["document"])\
.setOutputCol("sentence_embeddings")
sentimentClassifier = ClassifierDLModel.pretrained("classifierdl_bert_sentiment", "es") \
.setInputCols(["document", "sentence_embeddings"]) \
.setOutputCol("class")
fr_sentiment_pipeline = Pipeline(stages=[document, embeddings, sentimentClassifier])
light_pipeline = LightPipeline(fr_sentiment_pipeline.fit(spark.createDataFrame([['']]).toDF("text")))
result1 = light_pipeline.annotate("Estoy seguro de que esta vez pasará la entrevista.")
result2 = light_pipeline.annotate("Soy una persona que intenta desayunar todas las mañanas sin falta.")
result3 = light_pipeline.annotate("No estoy seguro de si mi salario mensual es suficiente para vivir.")
print(result1["class"], result2["class"], sep = "\n")
val document = DocumentAssembler()
.setInputCol("text")
.setOutputCol("document")
val embeddings = BertSentenceEmbeddings
.pretrained("labse", "xx")
.setInputCols(Array("document"))
.setOutputCol("sentence_embeddings")
val sentimentClassifier = ClassifierDLModel.pretrained("classifierdl_bert_sentiment", "es")
.setInputCols(Array("document", "sentence_embeddings"))
.setOutputCol("class")
val fr_sentiment_pipeline = new Pipeline().setStages(Array(document, embeddings, sentimentClassifier))
val light_pipeline = LightPipeline(fr_sentiment_pipeline.fit(spark.createDataFrame([['']]).toDF("text")))
val result1 = light_pipeline.annotate("Estoy seguro de que esta vez pasará la entrevista.")
val result2 = light_pipeline.annotate("Soy una persona que intenta desayunar todas las mañanas sin falta.")
val result3 = light_pipeline.annotate("No estoy seguro de si mi salario mensual es suficiente para vivir.")
import nlu
nlu.load("es.classify.sentiment.").predict("""No estoy seguro de si mi salario mensual es suficiente para vivir.""")
Results
['POSITIVE']
['NEUTRAL']
['NEGATIVE']
Model Information
Model Name: | classifierdl_bert_sentiment |
Compatibility: | Spark NLP 3.3.0+ |
License: | Open Source |
Edition: | Official |
Input Labels: | [sentence_embeddings] |
Output Labels: | [class] |
Language: | es |
Data Source
https://github.com/charlesmalafosse/open-dataset-for-sentiment-analysis
Benchmarking
precision recall f1-score support
NEGATIVE 0.73 0.81 0.77 1837
NEUTRAL 0.80 0.71 0.75 2222
POSITIVE 0.80 0.81 0.80 2187
accuracy 0.78 6246
macro avg 0.77 0.78 0.77 6246
weighted avg 0.78 0.78 0.77 6246