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 |
|