Spaces:
Build error
Build error
| import streamlit as st | |
| from utils import QNLP | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import pandas as pd | |
| st.write("### QNLP demo") | |
| lang = st.selectbox("Select Language", ("EN", "ZH")) | |
| input = st.text_input("Text Input") | |
| def plot_data(array:np.ndarray): | |
| fig, ax = plt.subplots() | |
| ax.set_xlabel("Value") | |
| ax.set_ylabel("% Total") | |
| value, count = np.unique(array,return_counts=True) | |
| count = count * 100 / len(array) | |
| ax.set_xlim([-5,260]) | |
| ax.bar(value, count, edgecolor="blue", align="edge") | |
| return fig | |
| if input.strip(): | |
| results = QNLP(lang.lower()).process_sentence(input) | |
| subtabs = [] | |
| if len(results) > 1: | |
| subtabs = [f"Sentence {n+1}" for n in range(len(results))] | |
| tabs = st.tabs(["Overall"] + subtabs) | |
| overall_tab = tabs[0] | |
| detail_tabs = tabs[1:] | |
| with overall_tab: | |
| st.header("Overall") | |
| whole_array = [np.sum(res.array, axis=-1) for res in results if res.job.done()] | |
| if len(whole_array): | |
| whole_array = np.concatenate(whole_array) | |
| total = len(whole_array) | |
| value, count = np.unique(whole_array,return_counts=True) | |
| count = count/total*100 | |
| df = pd.DataFrame({ | |
| "Bit Value" : value, | |
| "Percentage" : count, | |
| }) | |
| col1, col2 = st.columns([1,2]) | |
| with col1: | |
| st.dataframe(df, hide_index=True) | |
| with col2: | |
| st.pyplot(plot_data(whole_array)) | |
| else: | |
| st.write("Input sentences are too big to be processed, try breaking them into smaller sentences") | |
| for idx, (tab, result) in enumerate(zip(detail_tabs, results)): | |
| with tab: | |
| st.header(f"Sentence {idx}") | |
| st.write(' '.join(result.tokens)) | |
| if result.valid: | |
| value, count = np.unique(result.array,return_counts=True) | |
| count = count/total*100 | |
| df = pd.DataFrame({ | |
| "Bit Value" : value, | |
| "Percentage" : count, | |
| }) | |
| col1, col2 = st.columns([1,2]) | |
| with col1: | |
| st.dataframe(df, hide_index=True) | |
| with col2: | |
| st.pyplot(plot_data(result.array)) | |
| else: | |
| st.write(f"Sentence Discarded due to lack of qubits to process") | |
| else: | |
| st.write("Choose a langauge and input some sentences to start !") |