HebEMO_demo / app.py
avichr's picture
Update app.py
b0caf30
raw
history blame
1.52 kB
from HebEMO import HebEMO
from transformers import pipeline
import streamlit as st
import matplotlib.pyplot as plt
import pandas as pd
from spider_plot import spider_plot
# @st.cache
HebEMO_model = HebEMO()
st.title("Find sentiment")
st.write("HebEMO is a tool to detect polarity and extract emotions from 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). More information can be found in our git: https://github.com/avichaychriqui/HeBERT")
sent = st.text_area("Text", "ื”ื—ื™ื™ื ื™ืคื™ื ื•ืžืื•ืฉืจื™ื", height = 20)
# interact(HebEMO_model.hebemo, text='ื”ื—ื™ื™ื ื™ืคื™ื ื•ืžืื•ืฉืจื™', plot=fixed(True), input_path=fixed(False), save_results=fixed(False),)
hebEMO_df = HebEMO_model.hebemo(sent, read_lines=True, plot=False)
hebEMO = pd.DataFrame()
for emo in hebEMO_df.columns[1::2]:
hebEMO[emo] = abs(hebEMO_df[emo]-(1-hebEMO_df['confidence_'+emo]))
st.write (hebEMO)
# plot= st.checkbox('Plot?')
# if plot:
# ax = spider_plot(hebEMO)
# st.pyplot(ax)
# fig = px.bar_polar(hebEMO.melt(), r="value", theta="variable",
# color="variable",
# template="ggplot2",
# )
# st.plotly_chart(fig, use_container_width=True)