Python — алгоритм рекомендацийPython

Программы на Python
Anonymous
Python — алгоритм рекомендаций

Сообщение Anonymous »

Я разрабатываю алгоритм рекомендаций для платформы электронной коммерции, используя подход фильтрации на основе контента. После некоторых исследований я придумал алгоритм, использующий библиотеку scikit-learn с TfidfVectorizer. Однако, поскольку я не очень хорошо знаком с частью ML и всем остальным, я был бы признателен за помощь в рассмотрении алгоритма и предоставление некоторых советов по его улучшению или рекомендаций по его оптимизации.
Ниже приведен код:
def calcular_similaridade(produtos):
textos = [" ".join([produto.descricao, produto.tipo.nome]) for produto in produtos]

tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(textos)
similarity_matrix = cosine_similarity(tfidf_matrix)

return similarity_matrix

def recomendacoes(db, products_viewed, produtos, user):
produtos_visualizados = db.session.query(products_viewed)\
.join(produtos)\
.filter(
produtos.active, products_viewed.usuario_id == user.id,
products_viewed.tempo_visualizacao > 3000, products_viewed.active,
produtos.id == products_viewed.produto_id
).all()
if not produtos_visualizados:
return "Nenhum produto visualizado pelo usuário."

todos_produtos = db.session.query(produtos).filter_by(active=True).all()
id_para_indice = {produto.id: id_produto for id_produto, produto in enumerate(todos_produtos)}
similarity_matrix = calcular_similaridade(todos_produtos)
produtos_recomendados = set()

for produto_visualizado in produtos_visualizados:
index_produto_visualizado = id_para_indice.get(produto_visualizado.produto_id)
if index_produto_visualizado is not None:
similaridades = similarity_matrix[index_produto_visualizado]
indices_produtos_similares = similaridades.argsort()[-5:][::-1]

for idx in indices_produtos_similares:
produtos_recomendados.add(todos_produtos[idx])

return [{'nome': produto.nome} for produto in produtos_recomendados]


Подробнее здесь: https://stackoverflow.com/questions/783 ... -algorithm

Вернуться в «Python»