123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- """
- @author: luojunhui
- """
- def get_account_interest_by_top(account_nickname, min_time, max_time, rate):
- return 1, 2
- def get_account_interest_by_avg(account_nickname, min_time, max_time, rate):
- return 1, 2
- def get_sim_score_cross_mean(a, b, c):
- return {"1": "2"}
- def get_sim_score_cross_avg(a, b, c):
- return {"1": "2"}
- class AccountServer(object):
- """
- 获取标题和公众号文章的相关性
- """
- def __init__(self, params):
- self.account_name_list = None
- self.sim_type = None
- self.interest_type = None
- self.min_time = None
- self.max_time = None
- self.rate = None
- self.title_list = None
- self.params = params
- def checkParams(self):
- """
- 校验传参
- :return:
- """
- try:
- self.title_list = self.params['text_list']
- self.account_name_list = self.params.get("account_nickname_list", [])
- self.rate = self.params.get("rate", 0.1)
- self.max_time = self.params.get("max_time", 0.1)
- self.min_time = self.params.get("min_time", 0.1)
- self.interest_type = self.params.get("interest_type", "by_top")
- self.sim_type = self.params.get("sim_type", "mean")
- return None
- except Exception as e:
- response = {
- "error": "Params error",
- "detail": str(e)
- }
- return response
- def getEachAccountScoreList(self, account_name):
- """
- 获取和单个账号的相关性分数
- :return:
- """
- try:
- account_interest, account_weight = (
- get_account_interest_by_top(
- account_nickname=account_name,
- min_time=self.min_time,
- max_time=self.max_time,
- rate=self.rate,
- )
- if self.interest_type == "by_top"
- else get_account_interest_by_avg(
- account_nickname=account_name,
- min_time=self.min_time,
- max_time=self.max_time,
- rate=self.rate,
- )
- )
- res = (
- get_sim_score_cross_mean(self.title_list, account_interest, account_weight)
- if self.sim_type == "mean"
- else get_sim_score_cross_avg(self.title_list, account_interest, account_weight)
- )
- sim_key = "score_list_mean" if self.sim_type == "mean" else "score_list_avg"
- return {
- "score_list": res[sim_key],
- "text_list_max": res["text_list_max"],
- }
- except Exception as e:
- print(e)
- return {
- "score_list": [0] * len(self.title_list),
- "text_list_max": self.title_list
- }
- def getAccountListScoreList(self):
- """
- 获取AccountList中每一个账号的相关性分数
- :return:
- """
- response = {}
- for accountName in self.account_name_list:
- if response.get(accountName):
- continue
- else:
- response[accountName] = self.getEachAccountScoreList(account_name=accountName)
- return response
- def deal(self):
- """
- Deal Function
- :return:
- """
- return self.checkParams() if self.checkParams() else self.getAccountListScoreList()
|