Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -41,30 +41,37 @@ def calcular_porcentajes_similaridad(serp_results, min_length):
|
|
41 |
urls_serp1 = [entry["URL"] for entry in serp_results[combo[0]][:min_length]]
|
42 |
urls_serp2 = [entry["URL"] for entry in serp_results[combo[1]][:min_length]]
|
43 |
|
44 |
-
# Calculando la intersecci贸n y la uni贸n para el porcentaje base
|
45 |
set_urls_serp1 = set(urls_serp1)
|
46 |
set_urls_serp2 = set(urls_serp2)
|
47 |
intersection = len(set_urls_serp1 & set_urls_serp2)
|
48 |
union = len(set_urls_serp1 | set_urls_serp2)
|
49 |
porcentaje_base = (intersection / union) * 100 if union > 0 else 0
|
50 |
|
51 |
-
# Inicializar la bonificaci贸n
|
52 |
bonificacion = 0
|
53 |
-
|
54 |
-
# Verificar si los dos primeros resultados coinciden (20% de bonificaci贸n)
|
55 |
if urls_serp1[:2] == urls_serp2[:2]:
|
56 |
bonificacion += 20
|
57 |
-
|
58 |
-
# Verificar si alguno de los tres primeros resultados est谩 repetido (15% de bonificaci贸n)
|
59 |
if any(url in urls_serp2[:3] for url in urls_serp1[:3]):
|
60 |
bonificacion += 15
|
61 |
|
62 |
-
# Calcular el porcentaje final asegurando que no exceda el 100%
|
63 |
porcentaje_final = min(100, porcentaje_base + bonificacion)
|
|
|
|
|
64 |
|
65 |
porcentajes[combo] = porcentaje_final
|
66 |
return porcentajes
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
def generar_html_con_colores(serp_results, urls_comunes, min_length):
|
70 |
url_color_map = {url: color_palette[i % len(color_palette)] for i, url in enumerate(urls_comunes)}
|
@@ -111,6 +118,14 @@ def analyze_keywords(keywords):
|
|
111 |
|
112 |
return html_table, similaridad_html
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
iface = gr.Interface(
|
115 |
fn=analyze_keywords,
|
116 |
inputs="text",
|
|
|
41 |
urls_serp1 = [entry["URL"] for entry in serp_results[combo[0]][:min_length]]
|
42 |
urls_serp2 = [entry["URL"] for entry in serp_results[combo[1]][:min_length]]
|
43 |
|
|
|
44 |
set_urls_serp1 = set(urls_serp1)
|
45 |
set_urls_serp2 = set(urls_serp2)
|
46 |
intersection = len(set_urls_serp1 & set_urls_serp2)
|
47 |
union = len(set_urls_serp1 | set_urls_serp2)
|
48 |
porcentaje_base = (intersection / union) * 100 if union > 0 else 0
|
49 |
|
|
|
50 |
bonificacion = 0
|
|
|
|
|
51 |
if urls_serp1[:2] == urls_serp2[:2]:
|
52 |
bonificacion += 20
|
|
|
|
|
53 |
if any(url in urls_serp2[:3] for url in urls_serp1[:3]):
|
54 |
bonificacion += 15
|
55 |
|
|
|
56 |
porcentaje_final = min(100, porcentaje_base + bonificacion)
|
57 |
+
# Redondear al m煤ltiplo de 10 m谩s cercano
|
58 |
+
porcentaje_final = round(porcentaje_final / 10) * 10
|
59 |
|
60 |
porcentajes[combo] = porcentaje_final
|
61 |
return porcentajes
|
62 |
|
63 |
+
def obtener_color_porcentaje(porcentaje):
|
64 |
+
if porcentaje >= 80:
|
65 |
+
return 'red'
|
66 |
+
elif porcentaje >= 60:
|
67 |
+
return '#FFA07A' # Rojo anaranjado
|
68 |
+
elif porcentaje >= 40:
|
69 |
+
return '#F0E68C' # Amarillo anaranjado
|
70 |
+
elif porcentaje >= 20:
|
71 |
+
return '#98FB98' # Verdoso
|
72 |
+
else:
|
73 |
+
return 'green'
|
74 |
+
|
75 |
|
76 |
def generar_html_con_colores(serp_results, urls_comunes, min_length):
|
77 |
url_color_map = {url: color_palette[i % len(color_palette)] for i, url in enumerate(urls_comunes)}
|
|
|
118 |
|
119 |
return html_table, similaridad_html
|
120 |
|
121 |
+
def generar_html_similaridad(porcentajes_similaridad):
|
122 |
+
similaridad_html = "<div><strong>Porcentajes de Similaridad:</strong><br>"
|
123 |
+
for combo, porcentaje in porcentajes_similaridad.items():
|
124 |
+
color = obtener_color_porcentaje(porcentaje)
|
125 |
+
similaridad_html += f"{combo[0]} & {combo[1]}: <span style='color:{color};'>{porcentaje}%</span><br>"
|
126 |
+
similaridad_html += "</div>"
|
127 |
+
return similaridad_html
|
128 |
+
|
129 |
iface = gr.Interface(
|
130 |
fn=analyze_keywords,
|
131 |
inputs="text",
|