# set path import glob, os, sys; sys.path.append('../utils') #import needed libraries import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pd import streamlit as st from st_aggrid import AgGrid import logging logger = logging.getLogger(__name__) from io import BytesIO import xlsxwriter import plotly.express as px from pandas.api.types import ( is_categorical_dtype, is_datetime64_any_dtype, is_numeric_dtype, is_object_dtype, is_list_like) def targets(): if 'key1' in st.session_state: df = st.session_state['key1'].copy() idx = df['NetzeroLabel_Score'].idxmax() netzero_placeholder = df.loc[idx, 'text'] df = df.drop(df.filter(regex='Score').columns, axis=1) df = df[df.TargetLabel==True].reset_index(drop=True) df['keep'] = True df.drop(columns = ['ActionLabel','PolicyLabel','PlansLabel'], inplace=True) st.session_state['target_hits'] = df st.session_state['netzero'] = netzero_placeholder def target_display(): if 'key1' in st.session_state: st.caption(""" **{}** is splitted into **{}** paragraphs/text chunks."""\ .format(os.path.basename(st.session_state['filename']), len(st.session_state['key0']))) hits = st.session_state['target_hits'] if len(hits) !=0: # collecting some statistics count_target = sum(hits['TargetLabel'] == True) count_ghg = sum(hits['GHGLabel'] == True) count_netzero = sum(hits['NetzeroLabel'] == True) count_nonghg = sum(hits['NonGHGLabel'] == True) count_Mitigation = sum(hits['MitigationLabel'] == True) count_Adaptation = sum(hits['AdaptationLabel'] == True) c1, c2 = st.columns([1,1]) with c1: st.write('**Target Related Paragraphs**: `{}`'.format(count_target)) st.write('**Netzero Related Paragraphs**: `{}`'.format(count_netzero)) with c2: st.write('**GHG Target Related Paragraphs**: `{}`'.format(count_ghg)) st.write('**NonGHG Target Related Paragraphs**: `{}`'.format(count_nonghg)) st.write('----------------') cols = list(hits.columns) sector_cols = list(set(cols) - {'TargetLabel','MitigationLabel','AdaptationLabel','GHGLabel','NetzeroLabel','NonGHGLabel','text','keep','page'}) placeholder= [] for col in sector_cols: st.write(col) placeholder.append({'Sector':col,'Count':sum(hits[col] == True)}) sector_df = pd.DataFrame.from_dict(placeholder) fig = px.bar(sector_df, x='Sector', y='Count') st.plotly_chart(fig,use_container_width= True) st.dataframe(hits) else: st.info("🤔 No Targets Found")