예제 #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))
예제 #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))
예제 #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))
예제 #4
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.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()

    # Carrusel de resultados de busqueda
    productos_busqueda = []
    reco_listas = []

    if "recomendaciones_sesion" not in request.session.keys():
        reco_listas = recomendaciones_xti(usuario)
        request.session["recomendaciones_sesion"] = reco_listas
    else:
        reco_listas = request.session.get("recomendaciones_sesion", None)

    if request.GET.get("busqueda_main") is not None:
        texto_busqueda = request.GET.get("busqueda_main").encode("utf-8")
        productos_busqueda = busqueda.coincidencia(texto_busqueda)

    if len(productos_busqueda) > 0:
        reco_listas.insert(
            0, {"titulo": "Resultados de búsqueda para: " + str(texto_busqueda), "productos": productos_busqueda}
        )
    else:
        print "No hay productos en Resultados de búsqueda"

    template = loader.get_template("products/index.html")

    context = {
        "nombre_usuario": nombre_usuario,
        "ciudad_usuario": ciudad_usuario,
        "contacto_usuario": contacto_usuario,
        "recomendaciones": reco_listas,
    }

    return HttpResponse(template.render(context, request))
예제 #5
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.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()

    # Carrusel de resultados de busqueda
    productos_busqueda = []
    reco_listas = []

    if 'recomendaciones_sesion' not in request.session.keys():
        reco_listas = recomendaciones_xti(usuario)
        request.session['recomendaciones_sesion'] = reco_listas
    else:
        reco_listas = request.session.get('recomendaciones_sesion', None)

    if request.GET.get('busqueda_main') is not None:
        texto_busqueda = request.GET.get('busqueda_main')
        productos_busqueda = busqueda.coincidencia(texto_busqueda)

    if len(productos_busqueda) > 0:
        reco_listas.insert(
            0, {
                'titulo':
                'Resultados de búsqueda para: ' + str(texto_busqueda),
                'productos': productos_busqueda
            })
    else:
        print "No hay productos en Resultados de búsqueda"

    template = loader.get_template('products/index.html')

    context = {
        'nombre_usuario': nombre_usuario,
        'ciudad_usuario': ciudad_usuario,
        'contacto_usuario': contacto_usuario,
        'recomendaciones': reco_listas
    }

    return HttpResponse(template.render(context, request))
예제 #6
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 = str(usuario.Nombre).lower().capitalize() +  " " + str(usuario.Apellido_p).lower().capitalize()
    print "----->", usuario.Ciudad.encode("utf-8")
    ciudad_usuario = str(usuario.Ciudad).lower().capitalize()
    contacto_usuario = str(usuario.Contacto).lower()

    

    
    # Carrusel de resultados de busqueda
    productos_busqueda = []
    reco_listas =[]
    

    if 'recomendaciones_sesion' not in request.session.keys():
        reco_listas = recomendaciones_xti(usuario)
        request.session['recomendaciones_sesion'] = reco_listas
    else:
        reco_listas = request.session.get('recomendaciones_sesion', None)

    if request.GET.get('busqueda_main') is not None: 
        texto_busqueda = request.GET.get('busqueda_main')
        productos_busqueda = busqueda.coincidencia(texto_busqueda)

    if len(productos_busqueda) > 0:
        reco_listas.insert(0,{'titulo': 'Resultados de búsqueda para: ' + str(texto_busqueda), 'productos': productos_busqueda})
    else:
        print "No hay productos en Resultados de búsqueda"

    template = loader.get_template('products/index.html')
    
    context = {
        'nombre_usuario': nombre_usuario,
        'ciudad_usuario': ciudad_usuario,
        'contacto_usuario': contacto_usuario,
        'recomendaciones': reco_listas
    }
    

    return HttpResponse(template.render(context, request))
예제 #7
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))