def index_busqueda(request): #Se generan las lista que se van a generar en el index usuario_activo = request.user usuario = Users.objects.get(pk=usuario_activo.id) nombre_usuario = usuario.Nombre + " " + usuario.Apellido_p # Carrusel de resultados de busqueda texto_busqueda = "" if request.GET.get('busqueda_main') is not None: texto_busqueda = request.GET.get('busqueda_main') productos_busqueda = busqueda.coincidencia(texto_busqueda) productoExtra = Product_extras() for cada_producto in productos_busqueda: productoExtra = productoExtra.calculaPromedio(cada_producto) # Carrusel de productos que te han gustado productos_calificados = recomendaciones_contenido.productos_calificados(usuario) for productoEvaluado in productos_calificados: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Carrusel de productos similares productos_similares = recomendaciones_contenido.recomendacion_similares(usuario) for productoEvaluado in productos_similares: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Recomendaciones por perfil productos_perfil, metadatos_recomendacion4 = recomendaciones_conocimiento.recomendacion_por_reglas(usuario) for productoEvaluado in productos_perfil: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Recomendaciones productos_fc productos_fc = recomendaciones_filtrado_colaborativo.recomendaciones_fc(usuario) for productoEvaluado in productos_fc: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Recomendaciones hibridas recomendaciones_predictivas = recomendaciones_filtrado_colaborativo.recomendaciones_hibridas(productos_fc) for productoEvaluado in recomendaciones_predictivas: productoExtra = productoExtra.calculaPromedio(productoEvaluado) template = loader.get_template('products/index.html') perfil_usuario = recomendaciones_conocimiento.perfil_usuario(usuario) context = { 'nombre_usuario_saludo': nombre_usuario, 'perfil': perfil_usuario, 'productos_busqueda': productos_busqueda, 'productos_calificados': productos_calificados, 'productos_similares': productos_similares, 'productos_perfil': productos_perfil, 'productos_predictivos': recomendaciones_predictivas, 'productos_fc': productos_fc } return HttpResponse(template.render(context, request))
def recomendaciones_xti(usuario): # Se generan las lista que se van a presentar en el index nombre_usuario = ( usuario.Nombre.encode("utf-8").lower().capitalize() + " " + usuario.Apellido_p.encode("utf-8").lower().capitalize() ) ciudad_usuario = usuario.Ciudad.encode("utf-8").lower().capitalize() contacto_usuario = usuario.Contacto.encode("utf-8").lower() listas_productos = [] configuracion_layout = Listas_recomendadores_config.objects.all().order_by("secuencia") for cada_c in configuracion_layout: titulo = cada_c.titulo_interfaz algoritmo = cada_c.algoritmo_recomendador longitud = cada_c.longitud_max parametro = cada_c.param if algoritmo == "calificados": # Carrusel de productos que te han gustado productos_calificados = recomendaciones_contenido.productos_calificados_rec(usuario, longitud) if len(productos_calificados) > 0: listas_productos.append({"titulo": titulo, "productos": productos_calificados}) else: print "No hay productos en Productos que has calificado" elif algoritmo == "comentados_ciudad": # Recomendaciones lo mas comentado en tu ciudad productos_comentados_ciudad = busqueda.productos_comentados_ciudad(longitud, ciudad_usuario) if len(productos_comentados_ciudad) > 0: listas_productos.append({"titulo": titulo, "productos": productos_comentados_ciudad}) else: print "No hay productos en Lo más comentado en tu ciudad" elif algoritmo == "reglas_perfil": # Recomendaciones por perfil productos_perfil = recomendaciones_conocimiento.recomendacion_por_reglas(usuario) if len(productos_perfil) > 0: listas_productos.append({"titulo": titulo, "productos": productos_perfil}) else: print "No hay productos en Recomendaciones a tu pefil" elif algoritmo == "nuevos": # Alianzas nuevas en tu ciudad productos_nuevos = busqueda.productos_nuevos(longitud, parametro) if len(productos_nuevos) > 0: listas_productos.append({"titulo": titulo, "productos": productos_nuevos}) else: print "No hay productos en Nuevas alianzas X-ti" elif algoritmo == "usuario_similar_demografico": # Recomendaciones usuarios socialmente similares productos_usuarios_similares = recomendaciones_contenido.recomendaciones_usuarios_similares( usuario, longitud ) if len(productos_usuarios_similares) > 0: listas_productos.append({"titulo": titulo, "productos": productos_usuarios_similares}) else: print "No hay productos en Usuarios como tú recomiendan" elif algoritmo == "productos_similares_gustado": # Carrusel de productos similares productos_similares = recomendaciones_contenido.recomendacion_similares(usuario, longitud) if len(productos_similares) > 0: listas_productos.append({"titulo": titulo, "productos": productos_similares}) else: print "No hay productos en Productos similares a los que te han gustado" elif algoritmo == "filtrado_colaborativo": # Recomendaciones productos_fc productos_fc = recomendaciones_filtrado_colaborativo.recomendaciones_fc(usuario, longitud) if len(productos_fc) > 0: listas_productos.append({"titulo": titulo, "productos": productos_fc}) else: print "No hay productos en Usuarios con gustos similares les han gustado" elif algoritmo == "hibrido": # Recomendaciones hibridas recomendaciones_predictivas = recomendaciones_filtrado_colaborativo.recomendaciones_hibridas( productos_fc, longitud ) if len(recomendaciones_predictivas) > 0: listas_productos.append({"titulo": titulo, "productos": recomendaciones_predictivas}) else: print "No hay productos en Productos interesantes para tí" return listas_productos
def recomendaciones_xti(usuario): #Se generan las lista que se van a presentar en el index nombre_usuario = usuario.Nombre.encode("utf-8").lower().capitalize( ) + " " + usuario.Apellido_p.encode("utf-8").lower().capitalize() ciudad_usuario = usuario.Ciudad.encode("utf-8").lower().capitalize() contacto_usuario = usuario.Contacto.encode("utf-8").lower() listas_productos = [] # Carrusel de productos que te han gustado productos_calificados = recomendaciones_contenido.productos_calificados( usuario) if len(productos_calificados) > 0: listas_productos.append({ 'titulo': 'Productos que has calificado', 'productos': productos_calificados }) else: print "No hay productos en Productos que has calificado" # Recomendaciones lo mas comentado en tu ciudad productos_comentados_ciudad = busqueda.productos_comentados_ciudad( 15, ciudad_usuario) if len(productos_comentados_ciudad) > 0: listas_productos.append({ 'titulo': 'Lo más comentado en tu ciudad', 'productos': productos_comentados_ciudad }) else: print "No hay productos en Lo más comentado en tu ciudad" # Recomendaciones por perfil productos_perfil = recomendaciones_conocimiento.recomendacion_por_reglas( usuario) if len(productos_perfil) > 0: listas_productos.append({ 'titulo': 'Recomendaciones a tu pefil', 'productos': productos_perfil }) else: print "No hay productos en Recomendaciones a tu pefil" # Alianzas nuevas en tu ciudad productos_nuevos = busqueda.productos_nuevos(15, 90) if len(productos_nuevos) > 0: listas_productos.append({ 'titulo': 'Nuevas alianzas X-ti', 'productos': productos_nuevos }) else: print "No hay productos en Nuevas alianzas X-ti" # Recomendaciones usuarios socialmente similares productos_usuarios_similares = recomendaciones_contenido.recomendaciones_usuarios_similares( usuario, 15) if len(productos_usuarios_similares) > 0: listas_productos.append({ 'titulo': 'Usuarios como tú recomiendan', 'productos': productos_usuarios_similares }) else: print "No hay productos en Usuarios como tú recomiendan" # Carrusel de productos similares productos_similares = recomendaciones_contenido.recomendacion_similares( usuario) if len(productos_similares) > 0: listas_productos.append({ 'titulo': 'Productos similares a los que te han gustado', 'productos': productos_similares }) else: print "No hay productos en Productos similares a los que te han gustado" # Recomendaciones productos_fc productos_fc = recomendaciones_filtrado_colaborativo.recomendaciones_fc( usuario) if len(productos_fc) > 0: listas_productos.append({ 'titulo': 'Usuarios con gustos similares les han gustado', 'productos': productos_fc }) else: print "No hay productos en Usuarios con gustos similares les han gustado" # Recomendaciones hibridas recomendaciones_predictivas = recomendaciones_filtrado_colaborativo.recomendaciones_hibridas( productos_fc) if len(recomendaciones_predictivas) > 0: listas_productos.append({ 'titulo': 'Productos interesantes para tí', 'productos': recomendaciones_predictivas }) else: print "No hay productos en Productos interesantes para tí" return listas_productos
def recomendaciones_xti(usuario): #Se generan las lista que se van a presentar en el index nombre_usuario = usuario.Nombre.encode("utf-8").lower().capitalize() + " " + usuario.Apellido_p.encode("utf-8").lower().capitalize() ciudad_usuario = usuario.Ciudad.encode("utf-8").lower().capitalize() contacto_usuario = usuario.Contacto.encode("utf-8").lower() listas_productos = [] # Carrusel de productos que te han gustado productos_calificados = recomendaciones_contenido.productos_calificados(usuario) if len(productos_calificados) > 0: listas_productos.append({'titulo': 'Productos que has calificado', 'productos': productos_calificados}) else: print "No hay productos en Productos que has calificado" # Recomendaciones lo mas comentado en tu ciudad productos_comentados_ciudad = busqueda.productos_comentados_ciudad(15, ciudad_usuario) if len(productos_comentados_ciudad) > 0: listas_productos.append({'titulo': 'Lo más comentado en tu ciudad', 'productos': productos_comentados_ciudad}) else: print "No hay productos en Lo más comentado en tu ciudad" # Recomendaciones por perfil productos_perfil = recomendaciones_conocimiento.recomendacion_por_reglas(usuario) if len(productos_perfil) > 0: listas_productos.append({'titulo': 'Recomendaciones a tu pefil', 'productos': productos_perfil}) else: print "No hay productos en Recomendaciones a tu pefil" # Alianzas nuevas en tu ciudad productos_nuevos = busqueda.productos_nuevos(15, 90) if len(productos_nuevos) > 0: listas_productos.append({'titulo': 'Nuevas alianzas X-ti', 'productos': productos_nuevos}) else: print "No hay productos en Nuevas alianzas X-ti" # Recomendaciones usuarios socialmente similares productos_usuarios_similares = recomendaciones_contenido.recomendaciones_usuarios_similares(usuario, 15) if len(productos_usuarios_similares) > 0: listas_productos.append({'titulo': 'Usuarios como tú recomiendan', 'productos': productos_usuarios_similares}) else: print "No hay productos en Usuarios como tú recomiendan" # Carrusel de productos similares productos_similares = recomendaciones_contenido.recomendacion_similares(usuario) if len(productos_similares) > 0: listas_productos.append({'titulo': 'Productos similares a los que te han gustado', 'productos': productos_similares}) else: print "No hay productos en Productos similares a los que te han gustado" # Recomendaciones productos_fc productos_fc = recomendaciones_filtrado_colaborativo.recomendaciones_fc(usuario) if len(productos_fc) > 0: listas_productos.append({'titulo': 'Usuarios con gustos similares les han gustado', 'productos': productos_fc}) else: print "No hay productos en Usuarios con gustos similares les han gustado" # Recomendaciones hibridas recomendaciones_predictivas = recomendaciones_filtrado_colaborativo.recomendaciones_hibridas(productos_fc) if len(recomendaciones_predictivas) > 0: listas_productos.append({'titulo': 'Productos interesantes para tí', 'productos': recomendaciones_predictivas}) else: print "No hay productos en Productos interesantes para tí" return listas_productos
def index(request): #Se generan las lista que se van a generar en el index usuario_activo = request.user usuario = Users.objects.get(pk=usuario_activo.id) nombre_usuario = usuario.Nombre + " " + usuario.Apellido_p ## populate comments # se insertan 10,000 comentarios de 1000 usuarios sobre 1000 productos, 10 por usuario # se colectan 1000 usuarios al azar #todos_usuarios = Users.objects.order_by('?')[:1000] #todos_productos = Product.objects.order_by('?')[:1000] #calificaciones_por_usuario = 10 #for cada_usuario in todos_usuarios: # print "HEY: Ho ", cada_usuario.Nombre # for i in range(0, calificaciones_por_usuario): # valorCalificacion = random.randint(1, 5) # producto_calificar = todos_productos[random.randint(0, len(todos_productos)-1)] # comentario = comentarios_predefinidos[valorCalificacion] # calificacionExistente = Calificaciones(product=producto_calificar, users=cada_usuario, calificacion_producto=valorCalificacion, comentario=comentario) # print "cali: ", calificacionExistente # calificacionExistente.save() #valorCalificacion = request.POST.get('calificacion') #calificacionExistente.calificacion_producto=valorCalificacion #calificacionExistente.comentario=comentario #calificacionExistente.save() # Carrusel de resultados de busqueda texto_busqueda = "" if request.GET.get('busqueda_main') is not None: texto_busqueda = request.GET.get('busqueda_main') productos_busqueda = busqueda.coincidencia(texto_busqueda) productoExtra = Product_extras() for cada_producto in productos_busqueda: productoExtra = productoExtra.calculaPromedio(cada_producto) # Carrusel de productos que te han gustado productos_calificados = recomendaciones_contenido.productos_calificados(usuario) for productoEvaluado in productos_calificados: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Carrusel de productos similares productos_similares = recomendaciones_contenido.recomendacion_similares(usuario) for productoEvaluado in productos_similares: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Recomendaciones por perfil productos_perfil, metadatos_recomendacion4 = recomendaciones_conocimiento.recomendacion_por_reglas(usuario) for productoEvaluado in productos_perfil: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Recomendaciones productos_fc productos_fc = recomendaciones_filtrado_colaborativo.recomendaciones_fc(usuario) for productoEvaluado in productos_fc: productoExtra = productoExtra.calculaPromedio(productoEvaluado) # Recomendaciones hibridas recomendaciones_predictivas = recomendaciones_filtrado_colaborativo.recomendaciones_hibridas(productos_fc) for productoEvaluado in recomendaciones_predictivas: productoExtra = productoExtra.calculaPromedio(productoEvaluado) template = loader.get_template('products/index.html') perfil_usuario = recomendaciones_conocimiento.perfil_usuario(usuario) context = { 'nombre_usuario_saludo': nombre_usuario, 'perfil': perfil_usuario, 'productos_busqueda': productos_busqueda, 'productos_calificados': productos_calificados, 'productos_similares': productos_similares, 'productos_perfil': productos_perfil, 'productos_predictivos': recomendaciones_predictivas, 'productos_fc': productos_fc } return HttpResponse(template.render(context, request))
def recomendaciones_xti(usuario): #Se generan las lista que se van a presentar en el index nombre_usuario = usuario.Nombre.encode("utf-8").lower().capitalize( ) + " " + usuario.Apellido_p.encode("utf-8").lower().capitalize() ciudad_usuario = usuario.Ciudad.encode("utf-8").lower().capitalize() contacto_usuario = usuario.Contacto.encode("utf-8").lower() listas_productos = [] configuracion_layout = Listas_recomendadores_config.objects.all().order_by( 'secuencia') for cada_c in configuracion_layout: titulo = cada_c.titulo_interfaz algoritmo = cada_c.algoritmo_recomendador longitud = cada_c.longitud_max parametro = cada_c.param if algoritmo == "calificados": # Carrusel de productos que te han gustado productos_calificados = recomendaciones_contenido.productos_calificados_rec( usuario, longitud) if len(productos_calificados) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_calificados }) else: print "No hay productos en Productos que has calificado" elif algoritmo == "comentados_ciudad": # Recomendaciones lo mas comentado en tu ciudad productos_comentados_ciudad = busqueda.productos_comentados_ciudad( longitud, ciudad_usuario) if len(productos_comentados_ciudad) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_comentados_ciudad }) else: print "No hay productos en Lo más comentado en tu ciudad" elif algoritmo == "reglas_perfil": # Recomendaciones por perfil productos_perfil = recomendaciones_conocimiento.recomendacion_por_reglas( usuario) if len(productos_perfil) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_perfil }) else: print "No hay productos en Recomendaciones a tu pefil" elif algoritmo == "nuevos": # Alianzas nuevas en tu ciudad productos_nuevos = busqueda.productos_nuevos(longitud, parametro) if len(productos_nuevos) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_nuevos }) else: print "No hay productos en Nuevas alianzas X-ti" elif algoritmo == "usuario_similar_demografico": # Recomendaciones usuarios socialmente similares productos_usuarios_similares = recomendaciones_contenido.recomendaciones_usuarios_similares( usuario, longitud) if len(productos_usuarios_similares) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_usuarios_similares }) else: print "No hay productos en Usuarios como tú recomiendan" elif algoritmo == "productos_similares_gustado": # Carrusel de productos similares productos_similares = recomendaciones_contenido.recomendacion_similares( usuario, longitud) if len(productos_similares) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_similares }) else: print "No hay productos en Productos similares a los que te han gustado" elif algoritmo == "filtrado_colaborativo": # Recomendaciones productos_fc productos_fc = recomendaciones_filtrado_colaborativo.recomendaciones_fc( usuario, longitud) if len(productos_fc) > 0: listas_productos.append({ 'titulo': titulo, 'productos': productos_fc }) else: print "No hay productos en Usuarios con gustos similares les han gustado" elif algoritmo == "hibrido": # Recomendaciones hibridas recomendaciones_predictivas = recomendaciones_filtrado_colaborativo.recomendaciones_hibridas( productos_fc, longitud) if len(recomendaciones_predictivas) > 0: listas_productos.append({ 'titulo': titulo, 'productos': recomendaciones_predictivas }) else: print "No hay productos en Productos interesantes para tí" return listas_productos