|
|
|
import glob, os, sys; |
|
sys.path.append('../utils') |
|
|
|
|
|
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: |
|
|
|
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'}) |
|
placeholder= [] |
|
for col in sector_cols: |
|
placeholder.append({'Sector':col,'Count':sum(hits[col])}) |
|
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") |
|
|