|
@@ -16,69 +16,41 @@ public class VovH24WeightV2Scorer extends AbstractScorer {
|
|
private static final int LOCAL_TIME_OUT = 150;
|
|
private static final int LOCAL_TIME_OUT = 150;
|
|
private final static Logger LOGGER = LoggerFactory.getLogger(VlogRovFMScorer.class);
|
|
private final static Logger LOGGER = LoggerFactory.getLogger(VlogRovFMScorer.class);
|
|
private static final ExecutorService executorService = Executors.newFixedThreadPool(128);
|
|
private static final ExecutorService executorService = Executors.newFixedThreadPool(128);
|
|
- private static final Set<String> rateFeatureSet = new HashSet<String>() {{
|
|
|
|
- add("1_vovh0");
|
|
|
|
- add("2_vovh0");
|
|
|
|
- add("2_vovh1");
|
|
|
|
- add("3_vovh0");
|
|
|
|
- add("3_vovh1");
|
|
|
|
- add("3_vovh2");
|
|
|
|
- add("4_vovh0");
|
|
|
|
- add("4_vovh1");
|
|
|
|
- add("4_vovh3");
|
|
|
|
- add("7_vovh0");
|
|
|
|
- add("7_vovh1");
|
|
|
|
- add("7_vovh6");
|
|
|
|
- add("13_vovh0");
|
|
|
|
- add("13_vovh1");
|
|
|
|
- add("13_vovh12");
|
|
|
|
- add("25_vovh0");
|
|
|
|
- add("25_vovh1");
|
|
|
|
- add("25_vovh24");
|
|
|
|
- add("1_vovd0");
|
|
|
|
- add("2_vovd0");
|
|
|
|
- add("2_vovd1");
|
|
|
|
- add("3_vovd0");
|
|
|
|
- add("3_vovd1");
|
|
|
|
- add("3_vovd2");
|
|
|
|
- }};
|
|
|
|
-
|
|
|
|
- private static final Set<String> integerFeatureSet = new HashSet<String>() {{
|
|
|
|
- add("1_vovh0分子");
|
|
|
|
- add("1_vovh分母");
|
|
|
|
- add("2_vovh0分子");
|
|
|
|
- add("2_vovh1分子");
|
|
|
|
- add("2_vovh分母");
|
|
|
|
- add("3_vovh0分子");
|
|
|
|
- add("3_vovh1分子");
|
|
|
|
- add("3_vovh2分子");
|
|
|
|
- add("3_vovh分母");
|
|
|
|
- add("4_vovh0分子");
|
|
|
|
- add("4_vovh1分子");
|
|
|
|
- add("4_vovh3分子");
|
|
|
|
- add("4_vovh分母");
|
|
|
|
- add("7_vovh0分子");
|
|
|
|
- add("7_vovh1分子");
|
|
|
|
- add("7_vovh6分子");
|
|
|
|
- add("7_vovh分母");
|
|
|
|
- add("13_vovh0分子");
|
|
|
|
- add("13_vovh1分子");
|
|
|
|
- add("13_vovh12分子");
|
|
|
|
- add("13_vovh分母");
|
|
|
|
- add("25_vovh0分子");
|
|
|
|
- add("25_vovh1分子");
|
|
|
|
- add("25_vovh24分子");
|
|
|
|
- add("25_vovh分母");
|
|
|
|
- add("1_vovd0分子");
|
|
|
|
- add("1_vovd分母");
|
|
|
|
- add("2_vovd0分子");
|
|
|
|
- add("2_vovd1分子");
|
|
|
|
- add("2_vovd分母");
|
|
|
|
- add("3_vovd0分子");
|
|
|
|
- add("3_vovd1分子");
|
|
|
|
- add("3_vovd2分子");
|
|
|
|
- add("3_vovd分母");
|
|
|
|
- }};
|
|
|
|
|
|
+ private static final Set<String> rateFeatureSet = new HashSet<>(Arrays.asList(
|
|
|
|
+ "1_vovh0",
|
|
|
|
+ "2_vovh0", "2_vovh1",
|
|
|
|
+ "3_vovh0", "3_vovh1", "3_vovh2",
|
|
|
|
+ "4_vovh0", "4_vovh1", "4_vovh3",
|
|
|
|
+ "7_vovh0", "7_vovh1", "7_vovh6",
|
|
|
|
+ "13_vovh0", "13_vovh1", "13_vovh12",
|
|
|
|
+ "25_vovh0", "25_vovh1", "25_vovh24",
|
|
|
|
+ "1_vovd0",
|
|
|
|
+ "2_vovd0", "2_vovd1",
|
|
|
|
+ "3_vovd0", "3_vovd1", "3_vovd2"
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ private static final Set<String> integerFeatureSet = new HashSet<>(Arrays.asList(
|
|
|
|
+ "1_vovh0分子", "1_vovh分母",
|
|
|
|
+ "2_vovh0分子", "2_vovh1分子", "2_vovh分母",
|
|
|
|
+ "3_vovh0分子", "3_vovh1分子", "3_vovh2分子", "3_vovh分母",
|
|
|
|
+ "4_vovh0分子", "4_vovh1分子", "4_vovh3分子", "4_vovh分母",
|
|
|
|
+ "7_vovh0分子", "7_vovh1分子", "7_vovh6分子", "7_vovh分母",
|
|
|
|
+ "13_vovh0分子", "13_vovh1分子", "13_vovh12分子", "13_vovh分母",
|
|
|
|
+ "25_vovh0分子", "25_vovh1分子", "25_vovh24分子", "25_vovh分母",
|
|
|
|
+ "1_vovd0分子", "1_vovd分母",
|
|
|
|
+ "2_vovd0分子", "2_vovd1分子", "2_vovd分母",
|
|
|
|
+ "3_vovd0分子", "3_vovd1分子", "3_vovd2分子", "3_vovd分母"
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ private static final Set<String> numerator567Set = new HashSet<>(Arrays.asList(
|
|
|
|
+ "1_vovh0分子", "2_vovh1分子", "3_vovh2分子", "4_vovh3分子",
|
|
|
|
+ "7_vovh6分子", "13_vovh12分子", "25_vovh24分子", "2_vovd1分子"
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ private static final Set<String> denominator567Set = new HashSet<>(Arrays.asList(
|
|
|
|
+ "1_vovh分母", "2_vovh分母", "3_vovh分母", "4_vovh分母",
|
|
|
|
+ "7_vovh分母", "13_vovh分母", "25_vovh分母", "2_vovd分母"
|
|
|
|
+ ));
|
|
|
|
|
|
|
|
|
|
public VovH24WeightV2Scorer(ScorerConfigInfo scorerConfigInfo) {
|
|
public VovH24WeightV2Scorer(ScorerConfigInfo scorerConfigInfo) {
|
|
@@ -191,6 +163,9 @@ public class VovH24WeightV2Scorer extends AbstractScorer {
|
|
final Map<String, String> sceneFeatureMap) {
|
|
final Map<String, String> sceneFeatureMap) {
|
|
|
|
|
|
double vovScore = 0.0;
|
|
double vovScore = 0.0;
|
|
|
|
+ double vovScore567 = 0.0;
|
|
|
|
+ double numerator567 = 0D;
|
|
|
|
+ double denominator567 = 0D;
|
|
Map<String, String> featureMap = item.getFeatureMap();
|
|
Map<String, String> featureMap = item.getFeatureMap();
|
|
String weightKey = sceneFeatureMap.getOrDefault("weightKey", "");
|
|
String weightKey = sceneFeatureMap.getOrDefault("weightKey", "");
|
|
Map<String, Double> weightMap = model.getWeight(weightKey);
|
|
Map<String, Double> weightMap = model.getWeight(weightKey);
|
|
@@ -206,13 +181,22 @@ public class VovH24WeightV2Scorer extends AbstractScorer {
|
|
double val = Double.parseDouble(featureMap.getOrDefault(key, "0d"));
|
|
double val = Double.parseDouble(featureMap.getOrDefault(key, "0d"));
|
|
double weight = weightMap.getOrDefault(key, 0d);
|
|
double weight = weightMap.getOrDefault(key, 0d);
|
|
vovScore += Math.log(val + 1) * weight;
|
|
vovScore += Math.log(val + 1) * weight;
|
|
|
|
+
|
|
|
|
+ // 567
|
|
|
|
+ if (numerator567Set.contains(key)) {
|
|
|
|
+ numerator567 += val;
|
|
|
|
+ } else if (denominator567Set.contains(key)) {
|
|
|
|
+ denominator567 += val;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
vovScore = Math.max(0, vovScore);
|
|
vovScore = Math.max(0, vovScore);
|
|
|
|
+ vovScore567 = denominator567 != 0.0 ? numerator567 / denominator567 : 0.0;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
LOGGER.error("vovh24 scorer error for doc={} exception={}", item.getVideoId(), ExceptionUtils.getFullStackTrace(e));
|
|
LOGGER.error("vovh24 scorer error for doc={} exception={}", item.getVideoId(), ExceptionUtils.getFullStackTrace(e));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
item.getScoresMap().put("vovScore", vovScore);
|
|
item.getScoresMap().put("vovScore", vovScore);
|
|
|
|
+ item.getScoresMap().put("vovScore567", vovScore567);
|
|
item.setVovScore(vovScore);
|
|
item.setVovScore(vovScore);
|
|
return vovScore;
|
|
return vovScore;
|
|
}
|
|
}
|