Update modules/ui/ui.py
Browse files- modules/ui/ui.py +21 -38
modules/ui/ui.py
CHANGED
|
@@ -989,62 +989,43 @@ def display_discourse_results(result, lang_code, t):
|
|
| 989 |
st.warning(t.get('no_results', "No hay resultados disponibles."))
|
| 990 |
return
|
| 991 |
|
| 992 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 993 |
|
| 994 |
def process_key_concepts(key_concepts):
|
| 995 |
df = pd.DataFrame(key_concepts, columns=['Concepto', 'Frecuencia'])
|
| 996 |
-
df['Frecuencia'] =
|
| 997 |
-
df['Frecuencia'] = df['Frecuencia'].fillna(0).astype(float)
|
| 998 |
return df
|
| 999 |
|
| 1000 |
-
|
| 1001 |
-
with st.expander(t.get('file_uploader1', "Documento 1"), expanded=True):
|
| 1002 |
-
if 'graph1' in result:
|
| 1003 |
-
st.pyplot(result['graph1'])
|
| 1004 |
-
else:
|
| 1005 |
-
st.warning(t.get('graph_not_available', "El gr谩fico no est谩 disponible."))
|
| 1006 |
-
st.subheader(t.get('key_concepts', "Conceptos Clave"))
|
| 1007 |
-
if 'key_concepts1' in result:
|
| 1008 |
-
df1 = process_key_concepts(result['key_concepts1'])
|
| 1009 |
-
st.table(df1)
|
| 1010 |
-
else:
|
| 1011 |
-
st.warning(t.get('concepts_not_available', "Los conceptos clave no est谩n disponibles."))
|
| 1012 |
-
|
| 1013 |
-
with col2:
|
| 1014 |
-
with st.expander(t.get('file_uploader2', "Documento 2"), expanded=True):
|
| 1015 |
-
if 'graph2' in result:
|
| 1016 |
-
st.pyplot(result['graph2'])
|
| 1017 |
-
else:
|
| 1018 |
-
st.warning(t.get('graph_not_available', "El gr谩fico no est谩 disponible."))
|
| 1019 |
-
st.subheader(t.get('key_concepts', "Conceptos Clave"))
|
| 1020 |
-
if 'key_concepts2' in result:
|
| 1021 |
-
df2 = process_key_concepts(result['key_concepts2'])
|
| 1022 |
-
st.table(df2)
|
| 1023 |
-
else:
|
| 1024 |
-
st.warning(t.get('concepts_not_available', "Los conceptos clave no est谩n disponibles."))
|
| 1025 |
-
|
| 1026 |
-
# Comparaci贸n de conceptos clave
|
| 1027 |
-
st.subheader(t.get('comparison', "Relaci贸n de conceptos entre ambos documentos"))
|
| 1028 |
if 'key_concepts1' in result and 'key_concepts2' in result:
|
| 1029 |
df1 = process_key_concepts(result['key_concepts1']).set_index('Concepto')
|
| 1030 |
df2 = process_key_concepts(result['key_concepts2']).set_index('Concepto')
|
| 1031 |
|
|
|
|
| 1032 |
df_comparison = pd.concat([df1, df2], axis=1, keys=[t.get('file_uploader1', "Documento 1"), t.get('file_uploader2', "Documento 2")])
|
| 1033 |
-
df_comparison = df_comparison.fillna(0)
|
| 1034 |
|
| 1035 |
-
#
|
| 1036 |
for col in df_comparison.columns:
|
| 1037 |
-
df_comparison[col] =
|
| 1038 |
-
|
| 1039 |
-
# Mostrar
|
| 1040 |
st.write("Tipos de datos de las columnas:")
|
| 1041 |
st.write(df_comparison.dtypes)
|
| 1042 |
|
| 1043 |
-
# Mostrar los primeros registros para depuraci贸n
|
| 1044 |
st.write("Primeros registros del DataFrame:")
|
| 1045 |
st.write(df_comparison.head())
|
| 1046 |
|
| 1047 |
-
#
|
|
|
|
| 1048 |
try:
|
| 1049 |
st.dataframe(df_comparison.style.format("{:.2f}"), width=1000)
|
| 1050 |
except Exception as e:
|
|
@@ -1054,6 +1035,8 @@ def display_discourse_results(result, lang_code, t):
|
|
| 1054 |
else:
|
| 1055 |
st.warning(t.get('comparison_not_available', "La comparaci贸n no est谩 disponible."))
|
| 1056 |
|
|
|
|
|
|
|
| 1057 |
##################################################################################################
|
| 1058 |
#def display_saved_discourse_analysis(analysis_data):
|
| 1059 |
# img_bytes = base64.b64decode(analysis_data['combined_graph'])
|
|
|
|
| 989 |
st.warning(t.get('no_results', "No hay resultados disponibles."))
|
| 990 |
return
|
| 991 |
|
| 992 |
+
def clean_and_convert(value):
|
| 993 |
+
if isinstance(value, (int, float)):
|
| 994 |
+
return float(value)
|
| 995 |
+
elif isinstance(value, str):
|
| 996 |
+
try:
|
| 997 |
+
return float(value.replace(',', '.'))
|
| 998 |
+
except ValueError:
|
| 999 |
+
return 0.0
|
| 1000 |
+
return 0.0
|
| 1001 |
|
| 1002 |
def process_key_concepts(key_concepts):
|
| 1003 |
df = pd.DataFrame(key_concepts, columns=['Concepto', 'Frecuencia'])
|
| 1004 |
+
df['Frecuencia'] = df['Frecuencia'].apply(clean_and_convert)
|
|
|
|
| 1005 |
return df
|
| 1006 |
|
| 1007 |
+
# Procesar conceptos clave para ambos documentos
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1008 |
if 'key_concepts1' in result and 'key_concepts2' in result:
|
| 1009 |
df1 = process_key_concepts(result['key_concepts1']).set_index('Concepto')
|
| 1010 |
df2 = process_key_concepts(result['key_concepts2']).set_index('Concepto')
|
| 1011 |
|
| 1012 |
+
# Crear DataFrame de comparaci贸n
|
| 1013 |
df_comparison = pd.concat([df1, df2], axis=1, keys=[t.get('file_uploader1', "Documento 1"), t.get('file_uploader2', "Documento 2")])
|
| 1014 |
+
df_comparison = df_comparison.fillna(0.0)
|
| 1015 |
|
| 1016 |
+
# Asegurarse de que todas las columnas sean float
|
| 1017 |
for col in df_comparison.columns:
|
| 1018 |
+
df_comparison[col] = df_comparison[col].astype(float)
|
| 1019 |
+
|
| 1020 |
+
# Mostrar informaci贸n de depuraci贸n
|
| 1021 |
st.write("Tipos de datos de las columnas:")
|
| 1022 |
st.write(df_comparison.dtypes)
|
| 1023 |
|
|
|
|
| 1024 |
st.write("Primeros registros del DataFrame:")
|
| 1025 |
st.write(df_comparison.head())
|
| 1026 |
|
| 1027 |
+
# Mostrar la tabla de comparaci贸n
|
| 1028 |
+
st.subheader(t.get('comparison', "Comparaci贸n de conceptos entre ambos documentos"))
|
| 1029 |
try:
|
| 1030 |
st.dataframe(df_comparison.style.format("{:.2f}"), width=1000)
|
| 1031 |
except Exception as e:
|
|
|
|
| 1035 |
else:
|
| 1036 |
st.warning(t.get('comparison_not_available', "La comparaci贸n no est谩 disponible."))
|
| 1037 |
|
| 1038 |
+
# Aqu铆 puedes agregar el c贸digo para mostrar los gr谩ficos si es necesario
|
| 1039 |
+
|
| 1040 |
##################################################################################################
|
| 1041 |
#def display_saved_discourse_analysis(analysis_data):
|
| 1042 |
# img_bytes = base64.b64decode(analysis_data['combined_graph'])
|