Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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))
Ejemplo n.º 6
0
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