Update modules/ui/ui.py
Browse files- modules/ui/ui.py +28 -16
modules/ui/ui.py
CHANGED
@@ -991,6 +991,12 @@ def display_discourse_results(result, lang_code, t):
|
|
991 |
|
992 |
col1, col2 = st.columns(2)
|
993 |
|
|
|
|
|
|
|
|
|
|
|
|
|
994 |
with col1:
|
995 |
with st.expander(t.get('file_uploader1', "Documento 1"), expanded=True):
|
996 |
if 'graph1' in result:
|
@@ -999,8 +1005,7 @@ def display_discourse_results(result, lang_code, t):
|
|
999 |
st.warning(t.get('graph_not_available', "El gráfico no está disponible."))
|
1000 |
st.subheader(t.get('key_concepts', "Conceptos Clave"))
|
1001 |
if 'key_concepts1' in result:
|
1002 |
-
df1 =
|
1003 |
-
df1['Frecuencia'] = pd.to_numeric(df1['Frecuencia'], errors='coerce').fillna(0).round(2)
|
1004 |
st.table(df1)
|
1005 |
else:
|
1006 |
st.warning(t.get('concepts_not_available', "Los conceptos clave no están disponibles."))
|
@@ -1013,32 +1018,39 @@ def display_discourse_results(result, lang_code, t):
|
|
1013 |
st.warning(t.get('graph_not_available', "El gráfico no está disponible."))
|
1014 |
st.subheader(t.get('key_concepts', "Conceptos Clave"))
|
1015 |
if 'key_concepts2' in result:
|
1016 |
-
df2 =
|
1017 |
-
df2['Frecuencia'] = pd.to_numeric(df2['Frecuencia'], errors='coerce').fillna(0).round(2)
|
1018 |
st.table(df2)
|
1019 |
else:
|
1020 |
st.warning(t.get('concepts_not_available', "Los conceptos clave no están disponibles."))
|
1021 |
|
1022 |
-
# Comparación de conceptos clave
|
1023 |
st.subheader(t.get('comparison', "Relación de conceptos entre ambos documentos"))
|
1024 |
if 'key_concepts1' in result and 'key_concepts2' in result:
|
1025 |
-
df1 =
|
1026 |
-
df2 =
|
1027 |
-
|
1028 |
-
# Asegurarse de que las frecuencias sean numéricas
|
1029 |
-
df1['Frecuencia'] = pd.to_numeric(df1['Frecuencia'], errors='coerce').fillna(0)
|
1030 |
-
df2['Frecuencia'] = pd.to_numeric(df2['Frecuencia'], errors='coerce').fillna(0)
|
1031 |
|
1032 |
-
df1 = df1.set_index('Concepto')
|
1033 |
-
df2 = df2.set_index('Concepto')
|
1034 |
df_comparison = pd.concat([df1, df2], axis=1, keys=[t.get('file_uploader1', "Documento 1"), t.get('file_uploader2', "Documento 2")])
|
1035 |
df_comparison = df_comparison.fillna(0)
|
1036 |
|
1037 |
-
#
|
1038 |
for col in df_comparison.columns:
|
1039 |
-
df_comparison[col] = df_comparison[col].astype(float)
|
|
|
|
|
|
|
|
|
1040 |
|
1041 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1042 |
else:
|
1043 |
st.warning(t.get('comparison_not_available', "La comparación no está disponible."))
|
1044 |
|
|
|
991 |
|
992 |
col1, col2 = st.columns(2)
|
993 |
|
994 |
+
def process_key_concepts(key_concepts):
|
995 |
+
df = pd.DataFrame(key_concepts, columns=['Concepto', 'Frecuencia'])
|
996 |
+
df['Frecuencia'] = pd.to_numeric(df['Frecuencia'], errors='coerce')
|
997 |
+
df['Frecuencia'] = df['Frecuencia'].fillna(0).astype(float)
|
998 |
+
return df
|
999 |
+
|
1000 |
with col1:
|
1001 |
with st.expander(t.get('file_uploader1', "Documento 1"), expanded=True):
|
1002 |
if 'graph1' in result:
|
|
|
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."))
|
|
|
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 |
+
# Verificar y convertir todas las columnas a float
|
1036 |
for col in df_comparison.columns:
|
1037 |
+
df_comparison[col] = pd.to_numeric(df_comparison[col], errors='coerce').fillna(0).astype(float)
|
1038 |
+
|
1039 |
+
# Mostrar los tipos de datos de las columnas para depuración
|
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 |
+
# Intentar mostrar el DataFrame formateado
|
1048 |
+
try:
|
1049 |
+
st.dataframe(df_comparison.style.format("{:.2f}"), width=1000)
|
1050 |
+
except Exception as e:
|
1051 |
+
st.error(f"Error al mostrar el DataFrame: {str(e)}")
|
1052 |
+
st.write("DataFrame sin formato:")
|
1053 |
+
st.write(df_comparison)
|
1054 |
else:
|
1055 |
st.warning(t.get('comparison_not_available', "La comparación no está disponible."))
|
1056 |
|