Browse Source

第一条排序得分+1000
第二条排序得分+100
第3-8条排序得分不加分

罗俊辉 1 year ago
parent
commit
f9341682f9
2 changed files with 36 additions and 30 deletions
  1. 34 26
      routes/AccountArticleRank.py
  2. 2 4
      routes/__init__.py

+ 34 - 26
routes/AccountArticleRank.py

@@ -1,6 +1,7 @@
 """
 @author: luojunhui
 """
+
 from applications.functions import ArticleRank
 from applications.functions import title_sim_v2_by_list
 from applications.functions import get_article_title_url_list
@@ -22,6 +23,7 @@ def has_same(title, account_nickname):
         return True
     return False
 
+
 class AccountArticleRank(object):
     """
     文章排序
@@ -47,20 +49,20 @@ class AccountArticleRank(object):
         :return:
         """
         try:
-            self.accountId = self.params['accountId']
-            self.accountName = self.params['accountName']
-            self.ghId = self.params['ghId']
-            self.strategy = self.params['strategy']
-            self.publishNum = self.params['publishNum']
-            self.publishArticleList = self.params['publishArticleList']
-            self.title_list = [i['title'] for i in self.publishArticleList]
-            self.content_list = [i['content'] for i in self.publishArticleList]
+            self.accountId = self.params["accountId"]
+            self.accountName = self.params["accountName"]
+            self.ghId = self.params["ghId"]
+            self.strategy = self.params["strategy"]
+            self.publishNum = self.params["publishNum"]
+            self.publishArticleList = self.params["publishArticleList"]
+            self.title_list = [i["title"] for i in self.publishArticleList]
+            self.content_list = [i["content"] for i in self.publishArticleList]
             return None
         except Exception as e:
             response = {
                 "msg": "params error",
                 "info": "params check failed, params : {} is not correct".format(e),
-                "code": 0
+                "code": 0,
             }
             return response
 
@@ -70,24 +72,35 @@ class AccountArticleRank(object):
         :return:
         """
         try:
-            rank_info = ArticleRank().rank(account_list=[self.accountName], text_list=self.title_list)
-            score_list = rank_info[self.accountName]['score_list']
+            rank_info = ArticleRank().rank(
+                account_list=[self.accountName], text_list=self.title_list
+            )
+            score_list = rank_info[self.accountName]["score_list"]
             title_score_dict = {}
+
             for index, item in enumerate(self.title_list):
                 title_score_dict[item] = score_list[index]
+
             result_list = []
             for obj in self.publishArticleList:
-                if title_score_dict.get(obj['title']):
-                    obj['score'] = title_score_dict[obj['title']]
+                if title_score_dict.get(obj["title"]):
+                    produce_plan_name = obj["producePlanName"]
+                    if "【1】" in produce_plan_name:
+                        obj["score"] = title_score_dict[obj["title"]] + 1000
+                    elif "【2】" in produce_plan_name:
+                        obj["score"] = title_score_dict[obj["title"]] + 100
+                    else:
+                        obj["score"] = title_score_dict[obj["title"]]
                     result_list.append(obj)
-            sorted_list = sorted(result_list, key=lambda x: x['score'], reverse=True)
+
+            sorted_list = sorted(result_list, key=lambda x: x["score"], reverse=True)
             result = {
                 "accountId": self.accountId,
                 "accountName": self.accountName,
                 "ghId": self.ghId,
                 "strategy": self.strategy,
                 "publishNum": self.publishNum,
-                "rank_list": sorted_list[:self.publishNum]
+                "rank_list": sorted_list[: self.publishNum],
             }
         except Exception as e:
             result = {
@@ -96,13 +109,9 @@ class AccountArticleRank(object):
                 "ghId": self.ghId,
                 "strategy": self.strategy,
                 "publishNum": self.publishNum,
-                "rank_list": self.publishArticleList[:self.publishNum]
+                "rank_list": self.publishArticleList[: self.publishNum],
             }
-        response = {
-            "status": "Rank Success",
-            "data": result,
-            "code": 1
-        }
+        response = {"status": "Rank Success", "data": result, "code": 1}
         return response
 
     async def rank_v2(self):
@@ -160,11 +169,10 @@ class AccountArticleRank(object):
             return error_params
         else:
             try:
-                self.title_list = [i for i in self.title_list if not has_same(i, self.accountName)]
+                self.title_list = [
+                    i for i in self.title_list if not has_same(i, self.accountName)
+                ]
                 return await self.choose_strategy()
             except Exception as e:
-                result = {
-                    "code": 2,
-                    "info": "account is not exist"
-                }
+                result = {"code": 2, "info": "account is not exist"}
                 return result

+ 2 - 4
routes/__init__.py

@@ -6,7 +6,7 @@ from quart import Blueprint, jsonify, request
 
 from .AccountArticleRank import AccountArticleRank
 
-blueprint = Blueprint('LongArticlesAlgServer', __name__)
+blueprint = Blueprint("LongArticlesAlgServer", __name__)
 
 
 def AlgRoutes(mysql_client):
@@ -21,9 +21,7 @@ def AlgRoutes(mysql_client):
         测试服务连通性
         :return:
         """
-        response = {
-            "msg": "Hello, World! Hello, Future"
-        }
+        response = {"msg": "Hello, World! Hello, Future"}
         return jsonify(response)
 
     @blueprint.route("/articleRank", methods=["POST"])