Source code for elliot.dataset.samplers.pairwise_sampler

"""
Module description:

"""

__version__ = '0.3.1'
__author__ = 'Vito Walter Anelli, Claudio Pomo'
__email__ = 'vitowalter.anelli@poliba.it, claudio.pomo@poliba.it'

import numpy as np


[docs]class Sampler: def __init__(self, ratings, users, items ): np.random.seed(42) self._ratings = ratings self._users = users self._items = items
[docs] def step(self, events: int): r_int = np.random.randint n_users = len(self._users) n_items = len(self._items) users = self._users items = self._items ratings = self._ratings for _ in range(events): u = users[r_int(n_users)] ui = set(ratings[u].keys()) lui = len(ui) if lui == n_items: continue i = list(ui)[r_int(lui)] v = items[r_int(n_items)] while v in ui: v = items[r_int(n_items)] yield u, i, v