Аналитика данных
October 9, 2023
Как сделать рекомендательную систему для персонализации контента?
Рекомендательные системы помогают нам находить интересный нам контент среди огромного потока информации.
Давай создадим простую рекомендательную систему на Python, чтобы лучше понять, как это работает:
import numpy as np # Пример данных: пользователи, контент и оценки users = ['Alice', 'Alex', 'Dimitri', 'Mihail'] content = ['Article1', 'Article2', 'Article3', 'Article4'] ratings = np.array([[5, 4, 0, 0], [0, 0, 3, 4], [2, 0, 0, 5], [0, 3, 4, 0]]) # Рекомендация наиболее подходящего контента для пользователя def recommend(user_id): user_ratings = ratings[user_id] recommended_content = [] for i, rating in enumerate(user_ratings): if rating == 0: recommended_content.append(content[i]) return recommended_content # Пробуем рекомендовать контент для пользователя 'Alice' (пользователь с индексом 0) recommended_content_for_alice = recommend(0) print("Рекомендованный контент для Alice:", recommended_content_for_alice)
Рекомендованный контент для Alice: ['Article3', 'Article4']
import numpy as np
: Это строка импортирует библиотеку numpy и дает ей псевдоним "np".- Определение данных:
users
: Список пользователей - 'Alice', 'Alex', 'Dimitri' и 'Mihail'.content
: Список контента - 'Article1', 'Article2', 'Article3' и 'Article4'.ratings
: Это двумерный массив (матрица) с оценками пользователей для каждого контента. Каждая строка представляет пользователя, а каждая колонка представляет контент. Оценки идут от 0 до 5.def recommend(user_id):
: Это объявление функции "recommend" с одним параметром "user_id", который представляет индекс пользователя в списке "users".- Функция
recommend(user_id)
: user_ratings = ratings[user_id]
: Эта строка извлекает оценки для конкретного пользователя, исходя из его индекса в "ratings".recommended_content = []
: Создается пустой список, куда будут добавляться рекомендованные элементы контента.for i, rating in enumerate(user_ratings):
: Этот цикл перебирает оценки пользователя и их индексы.if rating == 0:
: Проверяется, если оценка пользователя равна 0 (то есть пользователь не оценил контент).recommended_content.append(content[i])
: Если оценка равна 0, соответствующий контент добавляется в список рекомендаций.return recommended_content
: Функция возвращает список рекомендованного контента для данного пользователя.recommended_content_for_alice = recommend(0)
: Вызывается функция "recommend" для пользователя 'Alice' (пользователь с индексом 0), и рекомендованный контент сохраняется в переменной "recommended_content_for_alice".print("Рекомендованный контент для Alice:", recommended_content_for_alice)
: Выводится рекомендованный контент для 'Alice'.
Этот код представляет собой пример простой рекомендательной системы.