Jelajahi Sumber

feat:修改b1的处理

zhaohaipeng 2 bulan lalu
induk
melakukan
7a4bc153ab

+ 19 - 2
src/main/java/examples/extractor/v20250218/ExtractFeature20250218.java

@@ -20,7 +20,24 @@ public class ExtractFeature20250218 {
     private ExtractFeature20250218() {
     }
 
-    public static void handleB1ToB11AndB13(Map<String, Map<String, Object>> videoFeature, Map<String, Object> featureMap) {
+    public static void handleB1(Map<String, Object> b1Feature, Map<String, Object> featureMap) {
+        List<String> times = Arrays.asList("1h", "3h", "6h", "12h", "24h", "72h", "168h");
+        List<String> indexList = Arrays.asList("is_share", "share_cnt", "is_return_1", "return_1_uv", "str_one", "ros_one", "str", "ros", "str_plus", "ros_minus", "rovn");
+        for (String time : times) {
+            for (String index : indexList) {
+                double value = Double.parseDouble(b1Feature.getOrDefault(index + "_" + time, "0").toString());
+                featureMap.put("b1_" + index + "_" + time, value);
+            }
+
+            double rovn = Double.parseDouble(b1Feature.getOrDefault("rovn_" + time, "0").toString());
+            double returnNUv = Double.parseDouble(b1Feature.getOrDefault("return_n_uv", "0").toString());
+
+            featureMap.put("b1_rovn*log(r)_" + time, rovn * RankExtractorFeature_20240530.calLog(returnNUv));
+        }
+
+    }
+
+    public static void handleB2ToB11AndB13(Map<String, Map<String, Object>> videoFeature, Map<String, Object> featureMap) {
         List<String> times = Arrays.asList("1h", "3h", "6h", "12h", "24h", "72h", "168h");
         List<String> indexList = Arrays.asList("is_share", "share_cnt", "is_return_1", "return_n_uv", "str_one", "ros_one", "str", "ros", "str_plus", "ros_minus", "rovn");
         for (Map.Entry<String, Map<String, Object>> entry : videoFeature.entrySet()) {
@@ -101,7 +118,7 @@ public class ExtractFeature20250218 {
 
     public static void handleC1(Map<String, Object> c1Feature, Map<String, Object> featureMap) {
         List<String> times = Arrays.asList("12h", "24h", "72h", "168h");
-        List<String> indexList = Arrays.asList("is_share", "share_cnt", "is_return_1", "return_n_uv", "click", "str_one", "ros_one", "str", "ros", "str_plus", "ros_minus", "rovn");
+        List<String> indexList = Arrays.asList("is_share", "share_cnt", "is_return_1", "return_1_uv", "click", "str_one", "ros_one", "str", "ros", "str_plus", "ros_minus", "rovn");
         for (String time : times) {
             for (String index : indexList) {
                 double value = Double.parseDouble(featureMap.getOrDefault(index + "_" + time, "0").toString());

+ 2 - 2
src/main/scala/com/aliyun/odps/spark/examples/makedata_recsys/makedata_recsys_41_originData_20250218.scala

@@ -97,7 +97,6 @@ object makedata_recsys_41_originData_20250218 {
             val d3: JSONObject = if (record.isNull("d3_feature")) new JSONObject() else JSON.parseObject(record.getString("d3_feature"))
 
             val bFeatureMap = new util.HashMap[String, util.Map[String, Object]]();
-            bFeatureMap.put("b1", b1);
             bFeatureMap.put("b2", b2);
             bFeatureMap.put("b3", b3);
             bFeatureMap.put("b4", b4);
@@ -110,7 +109,8 @@ object makedata_recsys_41_originData_20250218 {
             bFeatureMap.put("b11", b11);
             bFeatureMap.put("b13", b13);
 
-            ExtractFeature20250218.handleB1ToB11AndB13(bFeatureMap, featureMap);
+            ExtractFeature20250218.handleB1(b1, featureMap)
+            ExtractFeature20250218.handleB2ToB11AndB13(bFeatureMap, featureMap);
             ExtractFeature20250218.handleB12(b12, featureMap)
             ExtractFeature20250218.handleC1(c1, featureMap)
             ExtractFeature20250218.handleC2ToC3(c2, c3, featureMap)