Name

sn_nb_action.NextBestActionRankingImpl

Description

No description available

Script

var NextBestActionRankingImpl = Class.create();
NextBestActionRankingImpl.prototype = {
  initialize: function() {},
  getActionScore: function(actionOrders, ruleOrderObj) {
      var intraRuleStep = parseFloat(gs.getProperty(sn_nb_action.Constants.RECOMMENDATION_ORDER_WEIGHT));
      var interRuleStep = parseFloat(gs.getProperty(sn_nb_action.Constants.RULE_ORDER_WEIGHT));
      var frequencyWeight = parseFloat(gs.getProperty(sn_nb_action.Constants.FREQUENCY_WEIGHT));
      var frequency = actionOrders.length,
          max = 0,
          finalScore;
      for (var i = 0; i < frequency; i++) {
          var intraOrder = actionOrders[i].getIntraOrder();
          var interOrder = ruleOrderObj[actionOrders[i].getRule()];
          var currentScore = Math.pow(intraRuleStep, intraOrder - 1) * Math.pow(interRuleStep, interOrder - 1);
          if (currentScore > max)
              max = currentScore;
      }
      finalScore = max + frequency * frequencyWeight;
      return finalScore;
  },

  type: 'NextBestActionRankingImpl'
};

Sys ID

2a0220720f22201076bd445485767e7c

Offical Documentation

Official Docs: