Diego-0121 commited on
Commit
3629f8b
1 Parent(s): 90e45a2

Update Recomendation.py

Browse files
Files changed (1) hide show
  1. Recomendation.py +19 -28
Recomendation.py CHANGED
@@ -64,8 +64,6 @@ def recommend_song(song_name, artist_name, spotify_data_processed, top_n=4):
64
 
65
 
66
 
67
-
68
-
69
  def recommend_song_interface(song_name, artist_name):
70
  recommendations_df = recommend_song(song_name, artist_name, spotify_data_processed)
71
 
@@ -78,29 +76,22 @@ def recommend_song_interface(song_name, artist_name):
78
  formatted_recommendations.append("")
79
  return formatted_recommendations[:4]
80
  else:
81
- # Devolver mensajes de error o cadenas vac铆as si no se cumplen las condiciones anteriores
82
- return ["Error: No se pudo procesar las recomendaciones."] + [""] * 3
83
-
84
-
85
- # Crear la interfaz con Gradio
86
- iface = gr.Interface(
87
- fn=recommend_song_interface,
88
- inputs=[
89
- gr.Textbox(placeholder="Ingrese el t铆tulo de la canci贸n", label="T铆tulo de la Canci贸n"),
90
- gr.Textbox(placeholder="Ingrese el nombre del artista", label="Nombre del Artista")
91
- ],
92
- outputs=[gr.Text(label="Recomendaci贸n 1"),
93
- gr.Text(label="Recomendaci贸n 2"),
94
- gr.Text(label="Recomendaci贸n 3"),
95
- gr.Text(label="Recomendaci贸n 4")],
96
- title="Recomendador de Canciones",
97
- description="Ingrese el t铆tulo de una canci贸n y el nombre del artista para obtener recomendaciones.",
98
- theme="dark", # Comenta o elimina si el tema oscuro no est谩 disponible
99
- css="""
100
- body {font-family: Arial, sans-serif;}
101
- .input_text {background-color: #f0f0f0; border-radius: 5px;}
102
- .output_text {border: 2px solid #f0f0f0; border-radius: 5px; padding: 10px;}
103
- """
104
- )
105
-
106
- iface.launch()
 
64
 
65
 
66
 
 
 
67
  def recommend_song_interface(song_name, artist_name):
68
  recommendations_df = recommend_song(song_name, artist_name, spotify_data_processed)
69
 
 
76
  formatted_recommendations.append("")
77
  return formatted_recommendations[:4]
78
  else:
79
+ random_song = spotify_data_processed.sample() # Escoge una linea la azar de todo el conjunto de datos .sample()
80
+ random_song_name = random_song['song'].iloc[0] # Extrae el valor de la columna song de la fila sample (Nombre)
81
+ random_artist_name = random_song['artist'].iloc[0] # Extrae el valor de la columna artist de la fila sample (Nombre)
82
+
83
+ # Obtener recomendaciones para la canci贸n aleatoria
84
+ random_recommendations_df = recommend_song(random_song_name, random_artist_name, spotify_data_processed)
85
+ random_recommendations_list = random_recommendations_df[['song', 'artist']].values.tolist()
86
+ formatted_random_recommendations = ["{} by {}".format(song, artist) for song, artist in random_recommendations_list]
87
+
88
+ # Rellenar con cadenas vac铆as si hay menos de 4 recomendaciones
89
+ while len(formatted_random_recommendations) < 4:
90
+ formatted_random_recommendations.append("")
91
+ return formatted_random_recommendations[:4]
92
+
93
+ # Ejemplo de uso
94
+ # Aseg煤rate de que spotify_data_processed es un DataFrame de Pandas v谩lido con las columnas 'song' y 'artist'
95
+ recommendations = recommend_song_interface("song_name", "artist_name")
96
+
97
+