Browse Source

ad action feature 改成静态方法初始化

sunmingze 1 year ago
parent
commit
803d785b25

+ 1 - 1
recommend-feature-client/pom.xml

@@ -10,7 +10,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>recommend-feature-client</artifactId>
-    <version>1.0.9</version>
+    <version>1.1.15</version>
 
     <dependencies>
         <dependency>

+ 0 - 59
recommend-feature-client/src/main/java/com/tzld/piaoquan/recommend/feature/domain/ad/base/AdActionFeature.java

@@ -12,17 +12,6 @@ public class AdActionFeature {
     private double ctr=0d;
     private double cvr=0d;
 
-    private double ceilLog(Double key) {
-        return Math.ceil(Math.log(key + 1));
-    }
-
-    private double bucketRatioFeature(Double key) {
-        long bucket = Math.round(Math.log((key + 1) * 50));
-        if (bucket > 50)
-            bucket = 50;
-        return (double) bucket;
-    }
-
 
     public void setAdView(Object key) {
         if (key == null) {
@@ -72,57 +61,9 @@ public class AdActionFeature {
 
 
 
-
-    public void setOriginAdView(Object key) {
-        if (key == null) {
-            this.adView = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "0");
-            this.adView = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setOriginAdClick(Object key) {
-        if (key == null) {
-            this.adClick = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "0");
-            this.adClick = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setOriginAdConversion(Object key) {
-        if (key == null) {
-            this.adConversion = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "0");
-            this.adConversion = ceilLog(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setOriginCtr(Object key) {
-        if (key == null) {
-            this.ctr = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "0");
-            this.ctr = bucketRatioFeature(Double.valueOf(formateKey));
-        }
-    }
-
-    public void setOriginCvr(Object key) {
-        if (key == null) {
-            this.cvr = 0.0;
-        } else {
-            String formateKey = key.toString().replace("\\N", "0");
-            this.cvr = bucketRatioFeature(Double.valueOf(formateKey));
-        }
-    }
-
-
     public static void main(String args[]){
 
         AdActionFeature adActionFeature  = new AdActionFeature();
-        adActionFeature.setOriginAdView("563266.0");
         System.out.println(String.valueOf(adActionFeature.getAdView()));
     }
 

+ 33 - 76
recommend-feature-client/src/main/java/com/tzld/piaoquan/recommend/feature/domain/ad/base/AdItemBytesFeature.java

@@ -10,20 +10,12 @@ public class AdItemBytesFeature {
 
     private final byte[] adId;
 
-    //private final byte[] adCode;
-
     private final byte[] advertiserId;
 
-    //private final byte[] advertiserCode;
-
     private final byte[] campaignId;
 
-    //private final byte[] campaignCode;
-
     private final byte[] creative;
 
-    //private final byte[] creativeCode;
-
     // adid 维度,也就是planid
     private Map<String, byte[]> day1_cnt_features;
     // 3天内统计量
@@ -54,127 +46,92 @@ public class AdItemBytesFeature {
     private Map<String, byte[]> advertiser_month3_cnt_features;
 
 
+    private static void addAdActionFeature(Map<String, byte[]>  dayCntMap, AdActionFeature adActionFeature ){
+
+        dayCntMap.put("view", String.valueOf(ceilLog(adActionFeature.getAdView())).getBytes());
+        dayCntMap.put("click", String.valueOf(ceilLog(adActionFeature.getAdClick())).getBytes());
+        dayCntMap.put("conversion", String.valueOf(ceilLog(adActionFeature.getAdConversion())).getBytes());
+        dayCntMap.put("ctr", String.valueOf(bucketRatioFeature(adActionFeature.getCtr())).getBytes());
+        dayCntMap.put("cvr", String.valueOf(bucketRatioFeature(adActionFeature.getCvr())).getBytes());
+    }
+
+    private static double ceilLog(Double key) {
+        return Math.ceil(Math.log(key + 1));
+    }
+
+    private static double bucketRatioFeature(Double key) {
+        long bucket = Math.round(Math.log((key + 1) * 50));
+        if (bucket > 50)
+            bucket = 50;
+        return (double) bucket;
+    }
+
 
 
     public AdItemBytesFeature(AdItemFeature feature) {
 
         adId = feature.getAdId().getBytes();
-        // adCode = feature.getAdCode().getBytes();
         advertiserId = feature.getAdvertiserId().getBytes();
-        //advertiserCode = feature.getAdvertiserCode().getBytes();
         campaignId = feature.getCampaignId().getBytes();
-        //campaignCode = feature.getCampaignCode().getBytes();
         creative = feature.getCreativeId().getBytes();
-        // creativeCode = feature.getCreativeCode().getBytes();
 
 
         // adid 维度  planid
         // 1 day statistic
         day1_cnt_features = new HashMap<String, byte[]>();
-        day1_cnt_features.put("view", String.valueOf(feature.getDay1_cnt_features().getAdView()).getBytes());
-        day1_cnt_features.put("click", String.valueOf(feature.getDay1_cnt_features().getAdClick()).getBytes());
-        day1_cnt_features.put("conversion", String.valueOf(feature.getDay1_cnt_features().getAdConversion()).getBytes());
-        day1_cnt_features.put("ctr", String.valueOf(feature.getDay1_cnt_features().getCtr()).getBytes());
-        day1_cnt_features.put("cvr", String.valueOf(feature.getDay1_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(day1_cnt_features, feature.getDay1_cnt_features());
 
         // 3 day statistic
         day3_cnt_features = new HashMap<String, byte[]>();
-        day3_cnt_features.put("view", String.valueOf(feature.getDay3_cnt_features().getAdView()).getBytes());
-        day3_cnt_features.put("click", String.valueOf(feature.getDay3_cnt_features().getAdClick()).getBytes());
-        day3_cnt_features.put("conversion", String.valueOf(feature.getDay3_cnt_features().getAdConversion()).getBytes());
-        day3_cnt_features.put("ctr", String.valueOf(feature.getDay3_cnt_features().getCtr()).getBytes());
-        day3_cnt_features.put("cvr", String.valueOf(feature.getDay3_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(day3_cnt_features, feature.getDay3_cnt_features());
 
         // 7 day statistic
         day7_cnt_features = new HashMap<String, byte[]>();
-        day7_cnt_features.put("view", String.valueOf(feature.getDay7_cnt_features().getAdView()).getBytes());
-        day7_cnt_features.put("click", String.valueOf(feature.getDay7_cnt_features().getAdClick()).getBytes());
-        day7_cnt_features.put("conversion", String.valueOf(feature.getDay7_cnt_features().getAdConversion()).getBytes());
-        day7_cnt_features.put("ctr", String.valueOf(feature.getDay7_cnt_features().getCtr()).getBytes());
-        day7_cnt_features.put("cvr", String.valueOf(feature.getDay7_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(day7_cnt_features, feature.getDay7_cnt_features());
 
         // 3 month statisic
         month3_cnt_features = new HashMap<String, byte[]>();
-        month3_cnt_features.put("view", String.valueOf(feature.getMonth3_cnt_features().getAdView()).getBytes());
-        month3_cnt_features.put("click", String.valueOf(feature.getMonth3_cnt_features().getAdClick()).getBytes());
-        month3_cnt_features.put("conversion", String.valueOf(feature.getMonth3_cnt_features().getAdConversion()).getBytes());
-        month3_cnt_features.put("ctr", String.valueOf(feature.getMonth3_cnt_features().getCtr()).getBytes());
-        month3_cnt_features.put("cvr", String.valueOf(feature.getMonth3_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(month3_cnt_features, feature.getMonth3_cnt_features());
 
 
         // creative 维度  creativeid
         // 1 day statistic
         creative_day1_cnt_features = new HashMap<String, byte[]>();
-        creative_day1_cnt_features.put("view", String.valueOf(feature.getCreative_1day_cnt_features().getAdView()).getBytes());
-        creative_day1_cnt_features.put("click", String.valueOf(feature.getCreative_1day_cnt_features().getAdClick()).getBytes());
-        creative_day1_cnt_features.put("conversion", String.valueOf(feature.getCreative_1day_cnt_features().getAdConversion()).getBytes());
-        creative_day1_cnt_features.put("ctr", String.valueOf(feature.getCreative_1day_cnt_features().getCtr()).getBytes());
-        creative_day1_cnt_features.put("cvr", String.valueOf(feature.getCreative_1day_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(creative_day1_cnt_features, feature.getCreative_1day_cnt_features());
 
         // 3 day statistic
         creative_day3_cnt_features = new HashMap<String, byte[]>();
-        creative_day3_cnt_features.put("view", String.valueOf(feature.getCreative_3day_cnt_features().getAdView()).getBytes());
-        creative_day3_cnt_features.put("click", String.valueOf(feature.getCreative_3day_cnt_features().getAdClick()).getBytes());
-        creative_day3_cnt_features.put("conversion", String.valueOf(feature.getCreative_3day_cnt_features().getAdConversion()).getBytes());
-        creative_day3_cnt_features.put("ctr", String.valueOf(feature.getCreative_3day_cnt_features().getCtr()).getBytes());
-        creative_day3_cnt_features.put("cvr", String.valueOf(feature.getCreative_3day_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(creative_day3_cnt_features, feature.getCreative_3day_cnt_features());
+
 
         // 7 day statistic
         creative_day7_cnt_features = new HashMap<String, byte[]>();
-        creative_day7_cnt_features.put("view", String.valueOf(feature.getCreative_7day_cnt_features().getAdView()).getBytes());
-        creative_day7_cnt_features.put("click", String.valueOf(feature.getCreative_7day_cnt_features().getAdClick()).getBytes());
-        creative_day7_cnt_features.put("conversion", String.valueOf(feature.getCreative_7day_cnt_features().getAdConversion()).getBytes());
-        creative_day7_cnt_features.put("ctr", String.valueOf(feature.getCreative_7day_cnt_features().getCtr()).getBytes());
-        creative_day7_cnt_features.put("cvr", String.valueOf(feature.getCreative_7day_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(creative_day7_cnt_features, feature.getCreative_7day_cnt_features());
 
 
         // 3 month statisic
         creative_month3_cnt_features = new HashMap<String, byte[]>();
-        creative_month3_cnt_features.put("view", String.valueOf(feature.getCreative_3month_cnt_features().getAdView()).getBytes());
-        creative_month3_cnt_features.put("click", String.valueOf(feature.getCreative_3month_cnt_features().getAdClick()).getBytes());
-        creative_month3_cnt_features.put("conversion", String.valueOf(feature.getCreative_3month_cnt_features().getAdConversion()).getBytes());
-        creative_month3_cnt_features.put("ctr", String.valueOf(feature.getCreative_3month_cnt_features().getCtr()).getBytes());
-        creative_month3_cnt_features.put("cvr", String.valueOf(feature.getCreative_3month_cnt_features().getCvr()).getBytes());
-
+        addAdActionFeature(creative_month3_cnt_features, feature.getCreative_3month_cnt_features());
 
 
         // advertiser 维度  planid
         // 1 day statistic
         advertiser_day1_cnt_features = new HashMap<String, byte[]>();
-        advertiser_day1_cnt_features.put("view", String.valueOf(feature.getAdvertiser_1day_cnt_features().getAdView()).getBytes());
-        advertiser_day1_cnt_features.put("click", String.valueOf(feature.getAdvertiser_1day_cnt_features().getAdClick()).getBytes());
-        advertiser_day1_cnt_features.put("conversion", String.valueOf(feature.getAdvertiser_1day_cnt_features().getAdConversion()).getBytes());
-        advertiser_day1_cnt_features.put("ctr", String.valueOf(feature.getAdvertiser_1day_cnt_features().getCtr()).getBytes());
-        advertiser_day1_cnt_features.put("cvr", String.valueOf(feature.getAdvertiser_1day_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(advertiser_day1_cnt_features, feature.getAdvertiser_1day_cnt_features());
 
 
         // 3 day statistic
         advertiser_day3_cnt_features = new HashMap<String, byte[]>();
-        advertiser_day3_cnt_features.put("view", String.valueOf(feature.getAdvertiser_3day_cnt_features().getAdView()).getBytes());
-        advertiser_day3_cnt_features.put("click", String.valueOf(feature.getAdvertiser_3day_cnt_features().getAdClick()).getBytes());
-        advertiser_day3_cnt_features.put("conversion", String.valueOf(feature.getAdvertiser_3day_cnt_features().getAdConversion()).getBytes());
-        advertiser_day3_cnt_features.put("ctr", String.valueOf(feature.getAdvertiser_3day_cnt_features().getCtr()).getBytes());
-        advertiser_day3_cnt_features.put("cvr", String.valueOf(feature.getAdvertiser_3day_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(advertiser_day3_cnt_features, feature.getAdvertiser_3day_cnt_features());
 
 
         // 7 day statistic
         advertiser_day7_cnt_features = new HashMap<String, byte[]>();
-        advertiser_day7_cnt_features.put("view", String.valueOf(feature.getAdvertiser_7day_cnt_features().getAdView()).getBytes());
-        advertiser_day7_cnt_features.put("click", String.valueOf(feature.getAdvertiser_7day_cnt_features().getAdClick()).getBytes());
-        advertiser_day7_cnt_features.put("conversion", String.valueOf(feature.getAdvertiser_7day_cnt_features().getAdConversion()).getBytes());
-        advertiser_day7_cnt_features.put("ctr", String.valueOf(feature.getAdvertiser_7day_cnt_features().getCtr()).getBytes());
-        advertiser_day7_cnt_features.put("cvr", String.valueOf(feature.getAdvertiser_7day_cnt_features().getCvr()).getBytes());
-
+        addAdActionFeature(advertiser_day7_cnt_features, feature.getAdvertiser_7day_cnt_features());
 
         // 3 month statisic
         advertiser_month3_cnt_features = new HashMap<String, byte[]>();
-        advertiser_month3_cnt_features.put("view", String.valueOf(feature.getAdvertiser_3month_cnt_features().getAdView()).getBytes());
-        advertiser_month3_cnt_features.put("click", String.valueOf(feature.getAdvertiser_3month_cnt_features().getAdClick()).getBytes());
-        advertiser_month3_cnt_features.put("conversion", String.valueOf(feature.getAdvertiser_3month_cnt_features().getAdConversion()).getBytes());
-        advertiser_month3_cnt_features.put("ctr", String.valueOf(feature.getAdvertiser_3month_cnt_features().getCtr()).getBytes());
-        advertiser_month3_cnt_features.put("cvr", String.valueOf(feature.getAdvertiser_3month_cnt_features().getCvr()).getBytes());
-
-
+        addAdActionFeature(advertiser_month3_cnt_features, feature.getAdvertiser_3month_cnt_features());
 
 
 

+ 26 - 24
recommend-feature-client/src/main/java/com/tzld/piaoquan/recommend/feature/domain/ad/base/UserAdBytesFeature.java

@@ -19,46 +19,48 @@ public class UserAdBytesFeature {
     // 3个月统计量
     private Map<String, byte[]> month3_cnt_features;
 
+    private static void addAdActionFeature(Map<String, byte[]>  dayCntMap, AdActionFeature adActionFeature ){
+
+        dayCntMap.put("view", String.valueOf(ceilLog(adActionFeature.getAdView())).getBytes());
+        dayCntMap.put("click", String.valueOf(ceilLog(adActionFeature.getAdClick())).getBytes());
+        dayCntMap.put("conversion", String.valueOf(ceilLog(adActionFeature.getAdConversion())).getBytes());
+        dayCntMap.put("ctr", String.valueOf(bucketRatioFeature(adActionFeature.getCtr())).getBytes());
+        dayCntMap.put("cvr", String.valueOf(bucketRatioFeature(adActionFeature.getCvr())).getBytes());
+    }
+
+    private static double ceilLog(Double key) {
+        return Math.ceil(Math.log(key + 1));
+    }
+
+    private static double bucketRatioFeature(Double key) {
+        long bucket = Math.round(Math.log((key + 1) * 50));
+        if (bucket > 50)
+            bucket = 50;
+        return (double) bucket;
+    }
+
+
+
 
     public UserAdBytesFeature(UserAdFeature feature) {
         this.mid = feature.getMid().getBytes();
 
-
         // 1 day statistic
         day1_cnt_features = new HashMap<String, byte[]>();
-        day1_cnt_features.put("view", String.valueOf(feature.getDay1_cnt_features().getAdView()).getBytes());
-        day1_cnt_features.put("click", String.valueOf(feature.getDay1_cnt_features().getAdClick()).getBytes());
-        day1_cnt_features.put("conversion", String.valueOf(feature.getDay1_cnt_features().getAdConversion()).getBytes());
-        day1_cnt_features.put("ctr", String.valueOf(feature.getDay1_cnt_features().getCtr()).getBytes());
-        day1_cnt_features.put("cvr", String.valueOf(feature.getDay1_cnt_features().getCvr()).getBytes());
-
-
+        addAdActionFeature(day1_cnt_features, feature.getDay1_cnt_features());
 
         // 3 day statistic
         day3_cnt_features = new HashMap<String, byte[]>();
-        day3_cnt_features.put("view", String.valueOf(feature.getDay3_cnt_features().getAdView()).getBytes());
-        day3_cnt_features.put("click", String.valueOf(feature.getDay3_cnt_features().getAdClick()).getBytes());
-        day3_cnt_features.put("conversion", String.valueOf(feature.getDay3_cnt_features().getAdConversion()).getBytes());
-        day3_cnt_features.put("ctr", String.valueOf(feature.getDay3_cnt_features().getCtr()).getBytes());
-        day3_cnt_features.put("cvr", String.valueOf(feature.getDay3_cnt_features().getCvr()).getBytes());
-
+        addAdActionFeature(day3_cnt_features, feature.getDay3_cnt_features());
 
         // 7 day statistic
         day7_cnt_features = new HashMap<String, byte[]>();
-        day7_cnt_features.put("view", String.valueOf(feature.getDay7_cnt_features().getAdView()).getBytes());
-        day7_cnt_features.put("click", String.valueOf(feature.getDay7_cnt_features().getAdClick()).getBytes());
-        day7_cnt_features.put("conversion", String.valueOf(feature.getDay7_cnt_features().getAdConversion()).getBytes());
-        day7_cnt_features.put("ctr", String.valueOf(feature.getDay7_cnt_features().getCtr()).getBytes());
-        day7_cnt_features.put("cvr", String.valueOf(feature.getDay7_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(day7_cnt_features, feature.getDay7_cnt_features());
 
 
         // 3 month statisic
         month3_cnt_features = new HashMap<String, byte[]>();
-        month3_cnt_features.put("view", String.valueOf(feature.getMonth3_cnt_features().getAdView()).getBytes());
-        month3_cnt_features.put("click", String.valueOf(feature.getMonth3_cnt_features().getAdClick()).getBytes());
-        month3_cnt_features.put("conversion", String.valueOf(feature.getMonth3_cnt_features().getAdConversion()).getBytes());
-        month3_cnt_features.put("ctr", String.valueOf(feature.getMonth3_cnt_features().getCtr()).getBytes());
-        month3_cnt_features.put("cvr", String.valueOf(feature.getMonth3_cnt_features().getCvr()).getBytes());
+        addAdActionFeature(month3_cnt_features, feature.getMonth3_cnt_features());
 
     }
 }

+ 1 - 1
recommend-feature-service/pom.xml

@@ -91,7 +91,7 @@
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>
             <artifactId>recommend-feature-client</artifactId>
-            <version>1.0.9</version>
+            <version>1.1.5</version>
         </dependency>
         <dependency>
             <groupId>com.google.protobuf</groupId>