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'])
|