| import streamlit as st | |
| import numpy as np | |
| import pandas as pd | |
| # import plotly.express as px | |
| # from plotly.subplots import make_subplots | |
| import json | |
| # Reference: https://huggingface.co/spaces/team-zero-shot-nli/zero-shot-nli/blob/main/utils.py | |
| # def plot_result(top_topics, scores): | |
| # top_topics = np.array(top_topics) | |
| # scores = np.array(scores) | |
| # scores *= 100 | |
| # fig = px.bar(x=np.around(scores,2), y=top_topics, orientation='h', | |
| # labels={'x': 'Confidence Score', 'y': 'Label'}, | |
| # text=scores, | |
| # range_x=(0,115), | |
| # title='Predictions', | |
| # color=np.linspace(0,1,len(scores)), | |
| # color_continuous_scale='GnBu') | |
| # fig.update(layout_coloraxis_showscale=False) | |
| # fig.update_traces(texttemplate='%{text:0.1f}%', textposition='outside') | |
| # st.plotly_chart(fig) | |
| # def plot_dual_bar_chart(topics_summary, scores_summary, topics_text, scores_text): | |
| # data1 = pd.DataFrame({'label': topics_summary, 'scores on summary': scores_summary}) | |
| # data2 = pd.DataFrame({'label': topics_text, 'scores on full text': scores_text}) | |
| # data = pd.merge(data1, data2, on = ['label']) | |
| # data.sort_values('scores on summary', ascending = True, inplace = True) | |
| # fig = make_subplots(rows=1, cols=2, | |
| # subplot_titles=("Predictions on Summary", "Predictions on Full Text"), | |
| # ) | |
| # fig1 = px.bar(x=round(data['scores on summary']*100, 2), y=data['label'], orientation='h', | |
| # text=round(data['scores on summary']*100, 2), | |
| # ) | |
| # fig2 = px.bar(x=round(data['scores on full text']*100,2), y=data['label'], orientation='h', | |
| # text=round(data['scores on full text']*100,2), | |
| # ) | |
| # fig.add_trace(fig1['data'][0], row=1, col=1) | |
| # fig.add_trace(fig2['data'][0], row=1, col=2) | |
| # fig.update_traces(texttemplate='%{text:0.1f}%', textposition='outside') | |
| # fig.update_layout(height=600, width=700) #, title_text="Predictions for") | |
| # fig.update_xaxes(range=[0,115]) | |
| # fig.update_xaxes(matches='x') | |
| # fig.update_yaxes(showticklabels=False) # hide all the xticks | |
| # fig.update_yaxes(showticklabels=True, row=1, col=1) | |
| # st.plotly_chart(fig) | |
| # def plot_dual_bar_chart(topics_summary, scores_summary, topics_text, scores_text): | |
| # data1 = pd.DataFrame({'label': topics_summary, 'scores': scores_summary}) | |
| # data1['classification_on'] = 'summary' | |
| # data2 = pd.DataFrame({'label': topics_text, 'scores': scores_text}) | |
| # data2['classification_on'] = 'full text' | |
| # data = pd.concat([data1, data2]) | |
| # data['scores'] = round(data['scores']*100,2) | |
| # fig = px.bar( | |
| # data, x="scores", y="label", #orientation = 'h', | |
| # labels={'x': 'Confidence Score', 'y': 'Label'}, | |
| # text=data['scores'], | |
| # range_x=(0,115), | |
| # color="label", barmode="group", | |
| # facet_col="classification_on", | |
| # category_orders={"classification_on": ["summary", "full text"]} | |
| # ) | |
| # fig.update_traces(texttemplate='%{text:0.1f}%', textposition='outside') | |
| # st.plotly_chart(fig) | |
| def examples_load(): | |
| with open("examples.json") as f: | |
| data=json.load(f) | |
| return data['text'], data['long_text_license'], data['labels'], data['ground_labels'] | |
| def example_long_text_load(): | |
| with open("example_long_text.txt", "r") as f: | |
| text_data = f.read() | |
| return text_data | |