尝试在jupyter中使用tfidvectorizer将数值转换为字符串时无法获得正确的输出

时间:2019-05-16 13:50:28

标签: python jupyter-notebook tfidfvectorizer

即使使用了tfidvectorizer函数,我也无法使用str将数字转换为字符串。我要求任何人为此提供解决方案。

dum['course_id']=str(dum['course_id'])
tf = TfidfVectorizer(analyzer='word',ngram_range=(1, 2),min_df=0, stop_words='english')
tfidf_matrix = tf.fit_transform(dum['course_id'])

我没有得到想要的正确输出,我将其用于推荐系统,因此使用课程ID(1,2,3,4 ....),我必须推荐类似的用户...但是输出给所有用户而不是显示相似的用户。
这是一些代码行,其中dum是数据集名称                                                                    dum ['course_id'] = str(dum ['course_id'])     tf = TfidfVectorizer(analyzer ='char',ngram_range = {1,2),min_df = 0,stop_words ='english') tfidf_matrix = tf.fit_transform(dum ['course_id'])

tfidf_matrix.shape cosine_sim = linear_kernel(tfidf_matrix,tfidf_matrix)

userid = dum ['user_id'] index = pd.Series(dum.index,index = dum ['user_id'])

def get_recommendations_userid(userid):     idx =索引[用户ID]

sim_scores = list(enumerate(cosine_sim[idx]))

sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
user_indices = [i[0] for i in sim_scores]

return user_indices[0:11]

get_recommendations_userid(2) [0,1,2,3,4,5,6,7,8,9,10]

输出为:[0、1、2、3、4、5、6、7、8、9、10],这在我检查用户的相似性时不正确

0 个答案:

没有答案