wangyunpeng 10 månader sedan
förälder
incheckning
6f6030d7c9

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/FilterResult.java

@@ -13,5 +13,5 @@ import java.util.List;
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
 public class FilterResult {
 public class FilterResult {
-    private List<Long> contentIds;
+    private List<String> contentIds;
 }
 }

+ 9 - 10
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/FilterService.java

@@ -1,6 +1,5 @@
 package com.tzld.longarticle.recommend.server.service.filter;
 package com.tzld.longarticle.recommend.server.service.filter;
 
 
-import com.google.common.collect.Lists;
 import com.tzld.longarticle.recommend.server.common.ThreadPoolFactory;
 import com.tzld.longarticle.recommend.server.common.ThreadPoolFactory;
 import com.tzld.longarticle.recommend.server.service.ServiceBeanFactory;
 import com.tzld.longarticle.recommend.server.service.ServiceBeanFactory;
 import com.tzld.longarticle.recommend.server.service.filter.strategy.CategoryStrategy;
 import com.tzld.longarticle.recommend.server.service.filter.strategy.CategoryStrategy;
@@ -24,19 +23,19 @@ public class FilterService {
     private final ExecutorService pool = ThreadPoolFactory.filterPool();
     private final ExecutorService pool = ThreadPoolFactory.filterPool();
 
 
     public FilterResult filter(FilterParam param) {
     public FilterResult filter(FilterParam param) {
-        List<Long> videoIds = contentFilter(param);
+        List<String> contentIds = contentFilter(param);
 
 
-        return new FilterResult(videoIds);
+        return new FilterResult(contentIds);
     }
     }
 
 
-    private List<Long> contentFilter(FilterParam param) {
+    private List<String> contentFilter(FilterParam param) {
 
 
         List<FilterStrategy> strategies = getStrategies(param);
         List<FilterStrategy> strategies = getStrategies(param);
         CountDownLatch cdl = new CountDownLatch(strategies.size());
         CountDownLatch cdl = new CountDownLatch(strategies.size());
-        List<Future<List<Long>>> futures = new ArrayList<>();
+        List<Future<List<String>>> futures = new ArrayList<>();
         for (final FilterStrategy strategy : strategies) {
         for (final FilterStrategy strategy : strategies) {
-            Future<List<Long>> future = pool.submit(() -> {
-                List<Long> result = strategy.filter(param);
+            Future<List<String>> future = pool.submit(() -> {
+                List<String> result = strategy.filter(param);
                 cdl.countDown();
                 cdl.countDown();
                 return result;
                 return result;
             });
             });
@@ -49,8 +48,8 @@ public class FilterService {
             return null;
             return null;
         }
         }
 
 
-        List<List<Long>> contentIds = new ArrayList<>();
-        for (Future<List<Long>> f : futures) {
+        List<List<String>> contentIds = new ArrayList<>();
+        for (Future<List<String>> f : futures) {
             try {
             try {
                 contentIds.add(f.get());
                 contentIds.add(f.get());
             } catch (Exception e) {
             } catch (Exception e) {
@@ -60,7 +59,7 @@ public class FilterService {
         if (CollectionUtils.isEmpty(contentIds)) {
         if (CollectionUtils.isEmpty(contentIds)) {
             return Collections.emptyList();
             return Collections.emptyList();
         }
         }
-//        List<Long> result = Lists.newArrayList(param.getContents());
+//        List<String> result = Lists.newArrayList(param.getContents());
 //        for (int i = 0; i < contentIds.size(); ++i) {
 //        for (int i = 0; i < contentIds.size(); ++i) {
 //            result.retainAll(contentIds.get(i));
 //            result.retainAll(contentIds.get(i));
 //        }
 //        }

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/FilterStrategy.java

@@ -4,5 +4,5 @@ package com.tzld.longarticle.recommend.server.service.filter;
 import java.util.List;
 import java.util.List;
 
 
 public interface FilterStrategy {
 public interface FilterStrategy {
-    List<Long> filter(FilterParam param);
+    List<String> filter(FilterParam param);
 }
 }

+ 62 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/strategy/BadStrategy.java

@@ -0,0 +1,62 @@
+package com.tzld.longarticle.recommend.server.service.filter.strategy;
+
+import com.tzld.longarticle.recommend.server.model.Content;
+import com.tzld.longarticle.recommend.server.remote.AIGCRemoteService;
+import com.tzld.longarticle.recommend.server.service.filter.FilterParam;
+import com.tzld.longarticle.recommend.server.service.filter.FilterStrategy;
+import com.tzld.longarticle.recommend.server.util.TitleSimilarCheckUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Component
+@Slf4j
+public class BadStrategy  implements FilterStrategy {
+
+    @Autowired
+    private AIGCRemoteService aigcRemoteService;
+
+    private static List<String> badTitles;
+
+    static {
+        badTitles = Arrays.asList("男人跟婚外女人很难断,不是因为爱,而是这三个原因,别傻傻不知",
+                "瑞士和平会,乌有2个好消息,有得就有失,捧场的基本是西方国家",
+                "华春莹代表中国,用《琉球地位未定论》,好好给日本上了一课",
+                "再下一城,27年的等待一朝绽放,中国开始放大招",
+                "一把大火,文明倒退1000年",
+                "善恶终有报?晚年有了儿子的王刚本以为可以安度晚年,但如今的情况却让人感叹",
+                "赵丽蓉:中国第一位小品女皇,因一句台词识破潜伏间谍,72岁自备寿衣,临终前为巩汉林留一句忠告",
+                "致命一击!美国的惊天谎言被拆穿,暴露其真实嘴脸!",
+                "男生遭醉汉掐脖反击后被刑拘,警方最新回应",
+                "“夫妻不送葬,送葬必遭殃”,为什么老伴不能去送呢?亲人去世后,最忌讳的八件事,别不当回事!",
+                "102岁杨振宁豪宅内,宴请小他27岁的岳母听沪剧,翁帆一个举动真情流露",
+                "中国垫资38亿美元帮修铁路,6年过去没还,还想期限延长至50年!",
+                "结婚前新娘突然要增加50万彩礼,否则不嫁,新郎无奈放弃,新娘收50万彩礼另嫁他人,1年后,报应来了!",
+                "张学良到死都不知道,当年救他一命的不是宋美龄,而是一个痴心女",
+                "美大选反转再反转!笑到最后的竟是她?拜登、特朗普都始料未及",
+                "大妈揣80万去儿子家住一周,7天吃咸菜,孙子:等你走了吃煎牛排",
+                "山西农民房檐上石狮子7万没有卖,3天后发生的事情让他始料未及",
+                "当不成总统了?美大选有变,中方需早做准备",
+                "女人最佳“绝经期”已公布,不是45岁,而是这个数,越接近越健康",
+                "村头光棍在下雪天捡一女婴,终身未娶拉扯张长大28年,女孩回报方式看哭众人",
+                "杜聿明的女儿,嫁给自己的老师杨振宁,生三个孩子事业有成",
+                "他享有国葬殊荣,临终捐光2000亿,大儿子开出租谋生");
+    }
+
+    @Override
+    public List<String> filter(FilterParam param) {
+        List<String> result = new ArrayList<>();
+        List<Content> contents  = param.getContents();
+        for (Content content : contents) {
+            if (!TitleSimilarCheckUtil.isDuplicateContent(content.getTitle(), badTitles)) {
+                result.add(content.getId());
+            }
+        }
+        return result;
+    }
+
+}

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/strategy/CategoryStrategy.java

@@ -18,7 +18,7 @@ public class CategoryStrategy implements FilterStrategy {
     private String aaa;
     private String aaa;
 
 
     @Override
     @Override
-    public List<Long> filter(FilterParam param) {
+    public List<String> filter(FilterParam param) {
         return null;
         return null;
     }
     }
 
 

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/strategy/DuplicateStrategy.java

@@ -15,7 +15,7 @@ import java.util.List;
 public class DuplicateStrategy implements FilterStrategy {
 public class DuplicateStrategy implements FilterStrategy {
 
 
     @Override
     @Override
-    public List<Long> filter(FilterParam param) {
+    public List<String> filter(FilterParam param) {
         return null;
         return null;
     }
     }
 
 

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/strategy/HistoryTitleStrategy.java

@@ -21,7 +21,7 @@ public class HistoryTitleStrategy implements FilterStrategy {
     private AIGCRemoteService aigcRemoteService;
     private AIGCRemoteService aigcRemoteService;
 
 
     @Override
     @Override
-    public List<Long> filter(FilterParam param) {
+    public List<String> filter(FilterParam param) {
         Set<String> historyTitles = aigcRemoteService.historyTitle();
         Set<String> historyTitles = aigcRemoteService.historyTitle();
 
 
         return null;
         return null;

+ 4 - 3
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/util/TitleSimilarCheckUtil.java

@@ -2,13 +2,14 @@ package com.tzld.longarticle.recommend.server.util;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.Set;
 
 
 public class TitleSimilarCheckUtil {
 public class TitleSimilarCheckUtil {
 
 
     private static final double SIMILARITY_THRESHOLD = 0.8; // 相似度阈值
     private static final double SIMILARITY_THRESHOLD = 0.8; // 相似度阈值
 
 
-    public static boolean isDuplicateContent(String title, Set<String> existsContentTitle) {
+    public static boolean isDuplicateContent(String title, List<String> existsContentTitle) {
         boolean result = false;
         boolean result = false;
         for (String existsTitle : existsContentTitle) {
         for (String existsTitle : existsContentTitle) {
             if (isSimilar(title, existsTitle, SIMILARITY_THRESHOLD)) {
             if (isSimilar(title, existsTitle, SIMILARITY_THRESHOLD)) {
@@ -39,10 +40,10 @@ public class TitleSimilarCheckUtil {
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
         String title = "多子女家庭,老人大概率过得比独子家庭的要幸福";
         String title = "多子女家庭,老人大概率过得比独子家庭的要幸福";
-        Set<String> existsContentTitle = new HashSet<>(Arrays.asList("以后买房,请记住7字真言:“买旧、买大、不买三!”",
+        List<String> existsContentTitle = Arrays.asList("以后买房,请记住7字真言:“买旧、买大、不买三!”",
                 "人到晚年才明白:多子女家庭,老人大概率过得比独子家庭的要幸福",
                 "人到晚年才明白:多子女家庭,老人大概率过得比独子家庭的要幸福",
                 "可供中国使用3800年?山东意外发现巨大宝藏,西方当场酸了!",
                 "可供中国使用3800年?山东意外发现巨大宝藏,西方当场酸了!",
-                "陕西女孩去医院体检后,发现左肾不见了,意外牵出8年前手术疑云"));
+                "陕西女孩去医院体检后,发现左肾不见了,意外牵出8年前手术疑云");
         boolean result = isDuplicateContent(title, existsContentTitle);
         boolean result = isDuplicateContent(title, existsContentTitle);
         System.out.println(result);
         System.out.println(result);
     }
     }