小编nwi*_*ter的帖子

'numpy.float64'对象不可迭代-基于内容的过滤模型

我尝试建立基于内容的过滤模型,但出现TypeError“'numpy.float64'对象不可迭代”。我是Python的新手,如果您给我一些建议,我应该编辑些什么,将不胜感激。

对于其他数据集,此代码运行良好,但与此相同,这可能是一个问题吗?

def get_item_profile(item_id):
    idx = item_ids.index(item_id)
    item_profile = tfidf_matrix[idx:idx+1]
    return item_profile

def get_item_profiles(ids):
    item_profiles_list = [get_item_profile(x) for x in ids]
    item_profiles = scipy.sparse.vstack(item_profiles_list)
    return item_profiles

def build_users_profile(person_id, interactions_indexed_df):
    interactions_person_df = interactions_indexed_df.loc[person_id]
    user_item_profiles = get_item_profiles(interactions_person_df['contentId'])

    user_item_strengths = np.array(interactions_person_df['eventStrength']).reshape(-1,1)
    #Weighted average of item profiles by the interactions strength
    user_item_strengths_weighted_avg = np.sum(user_item_profiles.multiply(user_item_strengths), axis=0) / np.sum(user_item_strengths)
    user_profile_norm = sklearn.preprocessing.normalize(user_item_strengths_weighted_avg)
    return user_profile_norm

def build_users_profiles(): 
    interactions_indexed_df = interactions_full_df[interactions_full_df['contentId'] \
                                                   .isin(articles_df['contentId'])].set_index('personId')
    user_profiles = {}
    for person_id in interactions_indexed_df.index.unique():
        user_profiles[person_id] = build_users_profile(person_id, interactions_indexed_df)
    return user_profiles
Run Code Online (Sandbox Code Playgroud)

错误信息:

--------------------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x

5
推荐指数
1
解决办法
73
查看次数

标签 统计

numpy ×1

python ×1

python-3.x ×1