AIdeaText commited on
Commit
f3bca54
verified
1 Parent(s): 4ba62c6

Update modules/ui/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui/ui.py +20 -8
modules/ui/ui.py CHANGED
@@ -13,6 +13,7 @@ from datetime import datetime
13
  from streamlit_player import st_player # Necesitar谩s instalar esta librer铆a: pip install streamlit-player
14
  from spacy import displacy
15
  import logging
 
16
 
17
  ######################################################
18
  # Configuraci贸n del logger
@@ -1019,17 +1020,27 @@ def display_discourse_results(result, lang_code, t):
1019
  st.table(df2)
1020
  else:
1021
  st.warning(t.get('concepts_not_available', "Los conceptos clave no est谩n disponibles."))
1022
-
1023
  # Relaci贸n de conceptos entre ambos documentos (Diagrama de Sankey)
1024
  st.subheader(t.get('comparison', "Relaci贸n de conceptos entre ambos documentos"))
1025
  if 'key_concepts1' in result and 'key_concepts2' in result:
1026
  df1 = pd.DataFrame(result['key_concepts1'], columns=['Concepto', 'Frecuencia'])
1027
  df2 = pd.DataFrame(result['key_concepts2'], columns=['Concepto', 'Frecuencia'])
1028
-
 
 
 
 
 
 
 
1029
  # Crear el diagrama de Sankey
1030
- source = [t.get('file_uploader1', "Documento 1")] * len(df1) + [concept for concept in df1['Concepto']]
1031
- target = [concept for concept in df1['Concepto']] + [t.get('file_uploader2', "Documento 2")] * len(df2)
1032
  value = list(df1['Frecuencia']) + list(df2['Frecuencia'])
 
 
 
1033
 
1034
  fig = go.Figure(data=[go.Sankey(
1035
  node = dict(
@@ -1037,12 +1048,13 @@ def display_discourse_results(result, lang_code, t):
1037
  thickness = 20,
1038
  line = dict(color = "black", width = 0.5),
1039
  label = [t.get('file_uploader1', "Documento 1"), t.get('file_uploader2', "Documento 2")] + list(df1['Concepto']) + list(df2['Concepto']),
1040
- color = "blue"
1041
  ),
1042
  link = dict(
1043
- source = [0] * len(df1) + list(range(2, 2 + len(df1))),
1044
- target = list(range(2, 2 + len(df1))) + [1] * len(df2),
1045
- value = value
 
1046
  ))])
1047
 
1048
  fig.update_layout(title_text="Relaci贸n de conceptos entre documentos", font_size=10)
 
13
  from streamlit_player import st_player # Necesitar谩s instalar esta librer铆a: pip install streamlit-player
14
  from spacy import displacy
15
  import logging
16
+ import random
17
 
18
  ######################################################
19
  # Configuraci贸n del logger
 
1020
  st.table(df2)
1021
  else:
1022
  st.warning(t.get('concepts_not_available', "Los conceptos clave no est谩n disponibles."))
1023
+
1024
  # Relaci贸n de conceptos entre ambos documentos (Diagrama de Sankey)
1025
  st.subheader(t.get('comparison', "Relaci贸n de conceptos entre ambos documentos"))
1026
  if 'key_concepts1' in result and 'key_concepts2' in result:
1027
  df1 = pd.DataFrame(result['key_concepts1'], columns=['Concepto', 'Frecuencia'])
1028
  df2 = pd.DataFrame(result['key_concepts2'], columns=['Concepto', 'Frecuencia'])
1029
+
1030
+ # Crear una lista de todos los conceptos 煤nicos
1031
+ all_concepts = list(set(df1['Concepto'].tolist() + df2['Concepto'].tolist()))
1032
+
1033
+ # Crear un diccionario de colores para cada concepto
1034
+ color_scale = [f'rgb({random.randint(50,255)},{random.randint(50,255)},{random.randint(50,255)})' for _ in range(len(all_concepts))]
1035
+ color_map = dict(zip(all_concepts, color_scale))
1036
+
1037
  # Crear el diagrama de Sankey
1038
+ source = [0] * len(df1) + list(range(2, 2 + len(df1)))
1039
+ target = list(range(2, 2 + len(df1))) + [1] * len(df2)
1040
  value = list(df1['Frecuencia']) + list(df2['Frecuencia'])
1041
+
1042
+ node_colors = ['blue', 'red'] + [color_map[concept] for concept in df1['Concepto']] + [color_map[concept] for concept in df2['Concepto']]
1043
+ link_colors = [color_map[concept] for concept in df1['Concepto']] + [color_map[concept] for concept in df2['Concepto']]
1044
 
1045
  fig = go.Figure(data=[go.Sankey(
1046
  node = dict(
 
1048
  thickness = 20,
1049
  line = dict(color = "black", width = 0.5),
1050
  label = [t.get('file_uploader1', "Documento 1"), t.get('file_uploader2', "Documento 2")] + list(df1['Concepto']) + list(df2['Concepto']),
1051
+ color = node_colors
1052
  ),
1053
  link = dict(
1054
+ source = source,
1055
+ target = target,
1056
+ value = value,
1057
+ color = link_colors
1058
  ))])
1059
 
1060
  fig.update_layout(title_text="Relaci贸n de conceptos entre documentos", font_size=10)