Example #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))
Example #2
0
def index_busqueda(request):

    texto_busqueda = ""

    if request.GET.get('busqueda_main') is not None:
        texto_busqueda = request.GET.get('busqueda_main')
        print texto_busqueda

    if request.user.is_authenticated():
        usuario = Users.objects.get(pk=request.user.id)
        nombre_usuario = usuario.Nombre + " " + usuario.Apellido_p
    else:
        usuario = Users.objects.all()[3]
        nombre_usuario = "Usuario anĂ³nimo"

    # Carrusel de resultados de busqueda
    productos_busqueda = busqueda.coincidencia(texto_busqueda)

    # Carrusel de productos que te han gustado
    calificaciones = Calificaciones.objects.filter(
        users=usuario.id).values_list('product_id', flat=True)
    print "lista:: ", calificaciones
    productos_calificados = Product.objects.filter(pk__in=list(calificaciones))

    # Carrusel de productos similares
    productos_similares = clasificador_k_vecinos.k_vecinos_lista_productos(
        productos_calificados, 15)

    # Recomendaciones por perfil
    productos_perfil, metadatos_recomendacion4 = recomendaciones_conocimiento.recomendacion_por_reglas(
        usuario)

    # Recomendaciones de usuarios similares
    recomendaciones_usuarios_similares = clasificador_k_vecinos.recomendaciones_usuarios_similares(
        usuario)

    # Recomendaciones productos_fc
    productos_fc = clasificador_k_vecinos.recomendaciones_fc(usuario)

    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[:50],
        'productos_calificados': productos_calificados,
        'productos_similares': productos_similares[:50],
        'productos_perfil': productos_perfil[:50],
        'productos_contenido': recomendaciones_usuarios_similares[:50],
        'productos_fc': productos_fc[:50]
    }
    return HttpResponse(template.render(context, request))
Example #3
0
def index_busqueda(request):

    texto_busqueda = ""

    if request.GET.get('busqueda_main') is not None: 
        texto_busqueda = request.GET.get('busqueda_main')
        print texto_busqueda

    if request.user.is_authenticated():
        usuario = Users.objects.get(pk=request.user.id)
        nombre_usuario = usuario.Nombre +  " " + usuario.Apellido_p
    else:
        usuario = Users.objects.all()[3]
        nombre_usuario = "Usuario anĂ³nimo"

    # Carrusel de resultados de busqueda
    productos_busqueda = busqueda.coincidencia(texto_busqueda)
    
    # Carrusel de productos que te han gustado
    calificaciones = Calificaciones.objects.filter(users=usuario.id).values_list('product_id', flat=True)
    print "lista:: ", calificaciones
    productos_calificados = Product.objects.filter(pk__in=list(calificaciones))

    # Carrusel de productos similares
    productos_similares = clasificador_k_vecinos.k_vecinos_lista_productos(productos_calificados, 15)

    # Recomendaciones por perfil
    productos_perfil, metadatos_recomendacion4 = recomendaciones_conocimiento.recomendacion_por_reglas(usuario)

    # Recomendaciones de usuarios similares
    recomendaciones_usuarios_similares = clasificador_k_vecinos.recomendaciones_usuarios_similares(usuario)
        
    # Recomendaciones productos_fc
    productos_fc = clasificador_k_vecinos.recomendaciones_fc(usuario)

    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[:50],
        'productos_calificados': productos_calificados,
        'productos_similares': productos_similares[:50],
        'productos_perfil': productos_perfil[:50],
        'productos_contenido': recomendaciones_usuarios_similares[:50],
        'productos_fc': productos_fc[:50]
    }
    return HttpResponse(template.render(context, request))
Example #4
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))