Update modules/ui/ui.py
Browse files- 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 = [
|
1031 |
-
target =
|
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 =
|
1041 |
),
|
1042 |
link = dict(
|
1043 |
-
source =
|
1044 |
-
target =
|
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)
|