|
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 |
|
|
|
|
|
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) |
|
fig.update_xaxes(range=[0,115]) |
|
fig.update_xaxes(matches='x') |
|
fig.update_yaxes(showticklabels=False) |
|
fig.update_yaxes(showticklabels=True, row=1, col=1) |
|
|
|
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 |
|
|