/// <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; }
/// <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); }