|
@@ -225,16 +225,7 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
}
|
|
|
|
|
|
double originScoreRos = item.getScoreRos();
|
|
|
- double scoreRos = ExtractorUtils.inverseLog(originScoreRos);
|
|
|
- if (calcRosMode == 1d) {
|
|
|
- double rosPower = mergeWeight.getOrDefault("ros_power", 5d);
|
|
|
- item.getScoresMap().put("rosPower", rosPower);
|
|
|
- scoreRos = Math.pow(scoreRos, rosPower);
|
|
|
- } else if (calcRosMode == 2d) {
|
|
|
- double modelRosCoefficient = mergeWeight.getOrDefault("model_ros_coefficient", 8d);
|
|
|
- item.getScoresMap().put("modelRosCoefficient", modelRosCoefficient);
|
|
|
- scoreRos = ExtractorUtils.inverseLog(originScoreRos * modelRosCoefficient);
|
|
|
- }
|
|
|
+ double scoreRos = this.handleRos(originScoreRos, calcRosMode, item);
|
|
|
|
|
|
|
|
|
item.getScoresMap().put("hasReturnRovScore", scoreRos);
|
|
@@ -279,7 +270,31 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private double handleRos(double originScoreRos, double calcRosMode, RankItem item) {
|
|
|
+ if (originScoreRos == 0) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ double scoreRos = ExtractorUtils.inverseLog(originScoreRos);
|
|
|
+ if (calcRosMode == 1d) {
|
|
|
+ double rosPower = mergeWeight.getOrDefault("le_ros_power", 5d);
|
|
|
+ if (scoreRos > 1){
|
|
|
+ rosPower = mergeWeight.getOrDefault("gt_1_ros_poewr", 1.5d);
|
|
|
+ }
|
|
|
+ item.getScoresMap().put("rosPower", rosPower);
|
|
|
+ scoreRos = Math.pow(scoreRos, rosPower);
|
|
|
+ } else if (calcRosMode == 2d) {
|
|
|
+ double modelRosCoefficient = mergeWeight.getOrDefault("model_ros_coefficient", 8d);
|
|
|
+ item.getScoresMap().put("modelRosCoefficient", modelRosCoefficient);
|
|
|
+ scoreRos = ExtractorUtils.inverseLog(originScoreRos * modelRosCoefficient);
|
|
|
+ } else if (calcRosMode == 3d) {
|
|
|
+ double rosPower = mergeWeight.getOrDefault("ros_power", 5d);
|
|
|
+ item.getScoresMap().put("rosPower", rosPower);
|
|
|
+ scoreRos = Math.pow(scoreRos, rosPower);
|
|
|
+ }
|
|
|
|
|
|
+ return scoreRos;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
* ros模型打分
|