12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- """
- @author: luojunhui
- """
- from concurrent.futures.thread import ThreadPoolExecutor
- from tqdm import tqdm
- from applications import AIDTApi, DeNetMysql, PQMySQL, Functions
- from config import poolLevelConfig
- class ColdStartTask(object):
- """
- 冷启分配任务
- """
- AidApi = AIDTApi()
- DeMysql = DeNetMysql()
- PqMysql = PQMySQL()
- Fun = Functions()
- pool4 = poolLevelConfig['4']
- @classmethod
- def getTopArticles(cls, category, limit_count):
- """
- 获取高分享的文章list
- :return:
- """
- sql = f"""
- select content_id, content_link, title
- from cold_start_article_pool
- where category = '{category}'
- order by view_count DESC, publish_time_stamp DESC
- limit {limit_count};
- """
- result = cls.PqMysql.select(sql)
- return result
- @classmethod
- def computeScore(cls):
- """
- 和每个账号计算相关性分数
- :return:
- """
- # category_list = ["军事政法", "健康养生", "搞笑幽默"]
- category_list = ["军事政法", "健康养生"]
- L = []
- for category in category_list:
- article_tuple = cls.getTopArticles(category)
- title_list = [article[2] for article in article_tuple]
- score_list = cls.Fun.getTitleScore(title_list, "指尖奇文")['指尖奇文']['score_list']
- for index, score in enumerate(score_list):
- obj = {
- "id": article_tuple[index][0],
- "url": article_tuple[index][1],
- "title": article_tuple[index][2],
- "cate": category,
- "score": score
- }
- L.append(obj)
- result = [i for i in L if i['score'] >= 0.4]
- return result
- @classmethod
- def sendToColdPool(cls):
- """
- 把文章send至第四层
- :return:
- """
- result = cls.computeScore()
- army = [i for i in result if i['cate'] == '军事政法']
- healthy = [i for i in result if i['cate'] == '健康养生']
- print(len(army))
- print(len(healthy))
- cst = ColdStartTask()
- res = cst.getTopArticles(category="军事政法", limit_count=20)
- print(res)
|