Team Ai
Modelpublic

avichr/hebEMO_anger

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes51downloads
Model Card

HebEMO - Emotion Recognition Model for Modern Hebrew

<img align="right" src="https://github.com/avichaychriqui/HeBERT/blob/main/data/heBERT_logo.png?raw=true" width="250">

HebEMO is a tool that detects polarity and extracts emotions from modern Hebrew User-Generated Content (UGC), which was trained on a unique Covid-19 related dataset that we collected and annotated.

HebEMO yielded a high performance of weighted average F1-score = 0.96 for polarity classification. Emotion detection reached an F1-score of 0.78-0.97, with the exception of surprise, which the model failed to capture (F1 = 0.41). These results are better than the best-reported performance, even when compared to the English language.

Emotion UGC Data Description

Our UGC data includes comments posted on news articles collected from 3 major Israeli news sites, between January 2020 to August 2020. The total size of the data is ~150 MB, including over 7 million words and 350K sentences. ~2000 sentences were annotated by crowd members (3-10 annotators per sentence) for overall sentiment (polarity) and eight emotions: anger, disgust, anticipation , fear, joy, sadness, surprise and trust. The percentage of sentences in which each emotion appeared is found in the table below.

angerdisgustexpectationfearhappysadnesssurprisetrustsentiment
ratio0.780.830.580.450.120.590.170.110.25

Performance

Emotion Recognition

emotionf1-scoreprecisionrecall
anger0.960.990.93
disgust0.970.980.96
anticipation0.820.800.87
fear0.790.880.72
joy0.900.970.84
sadness0.900.860.94
surprise0.400.440.37
trust0.830.860.80

The above metrics is for positive class (meaning, the emotion is reflected in the text).

Sentiment (Polarity) Analysis

precisionrecallf1-score
neutral0.830.560.67
positive0.960.920.94
negative0.970.990.98
accuracy0.97
macro avg0.920.820.86
weighted avg0.960.970.96

Sentiment (polarity) analysis model is also available on AWS! for more information visit [AWS' git](https://github.com/aws-samples/aws-lambda-docker-serverless-inference/tree/main/hebert-sentiment-analysis-inference-docker-lambda)

How to use

Emotion Recognition Model

An online model can be found at huggingface spaces or as colab notebook

# !pip install pyplutchik==0.0.7
# !pip install transformers==4.14.1

!git clone https://github.com/avichaychriqui/HeBERT.git
from HeBERT.src.HebEMO import *
HebEMO_model = HebEMO()

HebEMO_model.hebemo(input_path = 'data/text_example.txt')
# return analyzed pandas.DataFrame  

hebEMO_df = HebEMO_model.hebemo(text='החיים יפים ומאושרים', plot=True)

<img src="https://github.com/avichaychriqui/HeBERT/blob/main/data/hebEMO1.png?raw=true" width="300" height="300" />

For sentiment classification model (polarity ONLY):

from transformers import AutoTokenizer, AutoModel, pipeline

tokenizer = AutoTokenizer.frompretrained("avichr/heBERTsentimentanalysis") #same as 'avichr/heBERT' tokenizer model = AutoModel.frompretrained("avichr/heBERTsentimentanalysis")

# how to use? sentimentanalysis = pipeline( "sentiment-analysis", model="avichr/heBERTsentimentanalysis", tokenizer="avichr/heBERTsentimentanalysis", returnall_scores = True )

sentiment_analysis('אני מתלבט מה לאכול לארוחת צהריים')

>> [[{'label': 'neutral', 'score': 0.9978172183036804}, >> {'label': 'positive', 'score': 0.0014792329166084528}, >> {'label': 'negative', 'score': 0.0007035882445052266}]]

sentiment_analysis('קפה זה טעים')

>> [[{'label': 'neutral', 'score': 0.00047328314394690096}, >> {'label': 'possitive', 'score': 0.9994067549705505}, >> {'label': 'negetive', 'score': 0.00011996887042187154}]]

sentiment_analysis('אני לא אוהב את העולם')

>> [[{'label': 'neutral', 'score': 9.214012970915064e-05}, >> {'label': 'possitive', 'score': 8.876807987689972e-05}, >> {'label': 'negetive', 'score': 0.9998190999031067}]]

Contact us

Avichay Chriqui <br> Inbal yahav <br> The Coller Semitic Languages AI Lab <br> Thank you, תודה, شكرا <br>

If you used this model please cite us as :

Chriqui, A., & Yahav, I. (2022). HeBERT & HebEMO: a Hebrew BERT Model and a Tool for Polarity Analysis and Emotion Recognition. INFORMS Journal on Data Science, forthcoming.

@article{chriqui2021hebert,
  title={HeBERT \& HebEMO: a Hebrew BERT Model and a Tool for Polarity Analysis and Emotion Recognition},
  author={Chriqui, Avihay and Yahav, Inbal},
  journal={INFORMS Journal on Data Science},
  year={2022}
}