基于标签TF-IDF值的节目推荐

基于标签内容的推荐,首先计算项目对于标签的tf-idf值,然后基于tf-idf值采用余弦相似度公式计算项目之间的相似度,从而实现根据相似度的大小来进行推荐具有类似标签的项目。


import pandas as pd
from numpy import *
import os
os.chdir('E:\广电大数据营销推荐项目案例\数据清洗\电视节目信息数据预处理\wordsbag\dataprocess')
#prams_title = ['MovieID', 'Title', 'Genres']
prams = pd.read_table('./third_programs.csv', sep=',',encoding='gbk',header='infer',error_bad_lines=False)
prams.head()


from sklearn.feature_extraction.text import TfidfVectorizer
tfidf=TfidfVectorizer(stop_words='english')
#prams['Genres']=prams['Genres'].fillna('')
prams['genres_good']=prams['genres_good'].fillna('')

tfidf_matrix=tfidf.fit_transform(prams['genres_good'])
print(tfidf_matrix)
tfidf_matrix.shape

from sklearn.metrics.pairwise import linear_kernel
cosine_sim=linear_kernel(tfidf_matrix,tfidf_matrix)


indices=pd.Series(prams.index,index=prams['program_title']).drop_duplicates()


def get_recommendation(title,consine_sim=cosine_sim):
    idx=indices[title]
    sim_scores=list(enumerate(cosine_sim[idx]))
    sim_scores=sorted(sim_scores,key=lambda x:x[1],reverse=True)
    sim_scores=sim_scores[1:30]
    movie_indices=[i[0]for i in sim_scores]
    return prams[['program_title','genres_good']].iloc[movie_indices]

get_recommendation('黑客帝国')



“黑客帝国”的标签为“动作、科幻”,输出跟它相似的top20个节目的结果为:

Out[146]: 
     program_title   genres_good
1315      功夫机器侠之北腿       动作 / 科幻
1731        机器人的崛起       动作 / 科幻
1267      金刚狼3殊死一战  剧情 / 动作 / 科幻
2303           闪电侠  剧情 / 动作 / 科幻
2327         神盾局特工  剧情 / 动作 / 科幻
2960     猩球崛起3终极之战  剧情 / 动作 / 科幻
3055          机器之血  剧情 / 动作 / 科幻
3548         绿巨人浩克  剧情 / 动作 / 科幻
3588     猩球崛起2黎明之战  剧情 / 动作 / 科幻
254           像素大战  喜剧 / 动作 / 科幻
541           黑衣人3  喜剧 / 动作 / 科幻
1811        最后一个男人  喜剧 / 动作 / 科幻
417     迪迦奥特曼光的孩子们            科幻
814         平行世界之门            科幻
874           登月先锋            科幻
1225             9            科幻
2082          最终变异            科幻
2372         我机器人2            科幻
2874          流星风暴            科幻
3033          未来警察            科幻
911     魔法阵都市剧场版上篇  动作 / 科幻 / 动画
1883     超蛙战士之威武教官  动作 / 科幻 / 动画
3278        机甲界卡利安  动作 / 科幻 / 动画
790       蚁人2黄蜂女现身  动作 / 科幻 / 冒险
991       环太平洋雷霆再起  动作 / 科幻 / 冒险
1036         冲出宁静号  动作 / 科幻 / 冒险
1104          头号玩家  动作 / 科幻 / 冒险
1752        X战警黑凤凰  动作 / 科幻 / 冒险
1824        终结者创世纪  动作 / 科幻 / 冒险

 本文主要参考https://blog.csdn.net/Joenyye/article/details/80912909

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值