我编写了一个函数,用于基于TFIDF(术语频率-逆文档频率)矢量化器从文本系列中为每个用户获取最相关的标签。
def get_tfidf_token(user_id) :
v = sorted(zip(tfidf_feature_names, U2tfifd[user_id].flatten().tolist()), key=lambda x: -x[1])[:15]
tags = [words for words, values in v]
return tags
当我测试我的功能时,它似乎运行良好且快速,如:
%%time
get_tfifd_token(8)
返回60毫秒
我尝试为每个用户计算该功能
interactions_full_df["tags"] = interactions_full_df["user_id"].apply(lambda x : get_tfidf_token(x))
根据当时的情况,我有1k用户,所以60ms * 1000 = 1min,但是代码花费了30分钟以上。
有人可以向我解释为什么吗?