Bladeren bron

视频相似并行计算

jch 4 maanden geleden
bovenliggende
commit
8228266142

+ 15 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV564.java

@@ -471,14 +471,27 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
 
     private void addVideoSimFeature(Map<String, String> headInfo, Map<String, String> rankInfo, Map<String, Double> featureMap) {
         if (!headInfo.isEmpty() && !rankInfo.isEmpty()) {
+            List<Future<Pair<String, Double>>> futures = new ArrayList<>();
             for (String attr : videoSimAttrs) {
                 String headAttr = headInfo.getOrDefault(attr, "");
                 String rankAttr = rankInfo.getOrDefault(attr, "");
                 if (!"".equals(headAttr) && !"".equals(rankAttr)) {
-                    double simScore = SimilarityUtils.word2VecSimilarity(headAttr, rankAttr);
-                    featureMap.put("video_sim_" + attr, simScore);
+                    String key = "video_sim_" + attr;
+                    Future<Pair<String, Double>> future = ThreadPoolFactory.defaultPool().submit(() -> {
+                        double simScore = SimilarityUtils.word2VecSimilarity(headAttr, rankAttr);
+                        return Pair.create(key, simScore);
+                    });
+                    futures.add(future);
                 }
             }
+            try {
+                for (Future<Pair<String, Double>> future : futures) {
+                    Pair<String, Double> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                    featureMap.put(pair.getFirst(), pair.getSecond());
+                }
+            } catch (Exception e) {
+                log.error("video attr similarity error", e);
+            }
         }
     }
 }