|
@@ -3,14 +3,12 @@ package com.tzld.piaoquan.recommend.server.service.score4recall.strategy;
|
|
|
import com.tzld.piaoquan.recommend.server.service.score.ScorerConfigInfo;
|
|
|
import com.tzld.piaoquan.recommend.server.service.score4recall.AbstractScorer4Recall;
|
|
|
import com.tzld.piaoquan.recommend.server.service.score4recall.model4recall.VideoTagModel4RecallMap;
|
|
|
+import com.tzld.piaoquan.recommend.server.util.ListMerger;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.commons.lang3.tuple.Pair;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -28,24 +26,25 @@ public class ContentBaseRecallScore extends AbstractScorer4Recall {
|
|
|
@Override
|
|
|
public List<Pair<Long, Double>> recall(Map<String, String> params) {
|
|
|
VideoTagModel4RecallMap model = (VideoTagModel4RecallMap) this.getModel();
|
|
|
- List<Pair<Long, Double>> result = new ArrayList<>();
|
|
|
if (model == null || model.map == null) {
|
|
|
- return result;
|
|
|
+ return Collections.emptyList();
|
|
|
}
|
|
|
String tags = params.get("tags");
|
|
|
if (StringUtils.isBlank(tags)) {
|
|
|
- return result;
|
|
|
+ return Collections.emptyList();
|
|
|
}
|
|
|
List<String> tagList = Arrays.stream(tags.split(",")).collect(Collectors.toList());
|
|
|
Map<String, List<Long>> tagVideoIdMap = model.map;
|
|
|
+ List<List<Pair<Long, Double>>> multiTagVideos = new ArrayList<>();
|
|
|
for (String tag : tagList) {
|
|
|
List<Long> videoIds = tagVideoIdMap.get(tag);
|
|
|
if (CollectionUtils.isNotEmpty(videoIds)) {
|
|
|
- result.addAll(videoIds.stream().map(videoId -> Pair.of(videoId, 1.0))
|
|
|
+ multiTagVideos.add(videoIds.stream().map(videoId -> Pair.of(videoId, 1.0))
|
|
|
.collect(Collectors.toList()));
|
|
|
}
|
|
|
}
|
|
|
- return result;
|
|
|
+
|
|
|
+ return ListMerger.mergeLists(multiTagVideos);
|
|
|
}
|
|
|
|
|
|
|