4.推荐系统 之 内容召回1——基于内容的
推荐系统之内容召回1——基于内容的
- 基于内容的召回
- 基于行为的召回
- 多路召回
- 热点召回
一、基于内容的召回
文章召回文章
基于文章相同关键词得分做排序推荐
1 import json 2 3 4 with open("article_keywords") as f: 5 lines=f.readlines() 6 keyword_title_scores={} 7 for line in lines: 8 data=json.loads(line) 9 title=data['title'] 10 keywords=data['keywords'] 11 for [keyword,score] in keywords: 12 if keyword not in keyword_title_scores: 13 keyword_title_scores[keyword]=[] 14 keyword_title_scores[keyword].append([title,score]) 15 title_similar={} 16 for title_scores in keyword_title_scores.values(): 17 for t1,score1 in title_scores: 18 if t1 not in title_similar: 19 title_similar[t1]={} 20 for t2,score2 in title_scores: 21 if t1==t2: 22 continue 23 title_similar[t1][t2]=title_similar[t1].get(t2,0.0)+score1*score2 24 results=[] 25 for t1,t2_similar in title_similar.items(): 26 t2_similar=sorted(t2_similar.items(),key=lambda s:s[1],reverse=True)[0:5] 27 results.append(json.dumps({"title":t1,"similar":t2_similar},ensure_ascii=False)) 28 with open("title_recall","w") as f: 29 f.writelines("\n".join(results))
关键词召回文章
用户日志:用户看了哪些文章代表用户对这些文章的关键词感兴趣。生成用户画像 : 用户 | 关键词,根据用户画像推荐
user1 | 1 | 3 | 5 |
user2 | 4 | 7 | 9 |
user3 | 8 | 10 | 11 |
用户画像分短时和长时两种,像在电商邻域,预测用户实时购买可能,用短时是画像。双十一则用长时用户画像。
关键词召回文章
View Code
1 import json 2 3 4 with open("article_keywords") as f: 5 lines=f.readlines() 6 keyword_title_scores={} 7 for line in lines: 8 data=json.loads(line) 9 title=data['title'] 10 keywords=data['keywords'] 11 for [keyword,score] in keywords: 12 if keyword not in keyword_title_scores: 13 keyword_title_scores[keyword]=[] 14 keyword_title_scores[keyword].append([title,score]) 15 results=[] 16 for keyword,recall in keyword_title_scores.items(): 17 recall=sorted(recall,key=lambda s:s[1],reverse=True) 18 results.append(json.dumps({"keyword":keyword,"similar":recall},ensure_ascii=False)) 19 with open("word_recall","w") as f: 20 f.writelines("\n".join(results))
posted on 2021-05-14 10:06 life‘s_a_struggle 阅读(98) 评论(0) 编辑 收藏 举报