|  | 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'] | 
					
						
						|  |  | 
					
						
						|  | def example_long_text_load(): | 
					
						
						|  | with open("example_long_text.txt", "r") as f: | 
					
						
						|  | text_data = f.read() | 
					
						
						|  | return text_data | 
					
						
						|  |  |