Esempio n. 1
0
        /// <summary>
        /// Creates a new instance of the <see cref="ModelRecommenderData"/> class.
        /// </summary>
        /// <param name="recommender">the underlying SAR recommender</param>
        internal ModelRecommenderData(IUserHistoryToItemsRecommender recommender)
        {
            if (recommender == null)
            {
                throw new ArgumentNullException(nameof(recommender));
            }

            Recommender = recommender;
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a new instance of <see cref="SarScorer"/> class.
        /// </summary>
        /// <param name="recommender">A trained SAR recommender</param>
        /// <param name="tracer">A message tracer to use for logging</param>
        public SarScorer(IUserHistoryToItemsRecommender recommender, ITracer tracer = null)
        {
            if (recommender == null)
            {
                throw new ArgumentNullException(nameof(recommender));
            }

            _recommender = recommender;
            _tracer      = tracer ?? new DefaultTracer();

            // create the input schema
            _usageDataSchema = SchemaDefinition.Create(typeof(SarUsageEvent));
            _usageDataSchema["user"].ColumnType = _recommender.UserIdType;
            _usageDataSchema["Item"].ColumnType = _recommender.ItemIdType;

            // create an environment and register a message listener
            _environment = new TlcEnvironment(verbose: true);
            _environment.AddListener <ChannelMessage>(_tracer.TraceChannelMessage);
        }