我有这个数据框:
order_id product_id user_id
2 33120 u202279
2 28985 u202279
2 9327 u202279
4 39758 u178520
4 21351 u178520
5 6348 u156122
5 40878 u156122
类型 user_id :字符串
类型 product_id :整数
我想使用这个数据框来创建一个 Doc2vec 语料库。所以,我需要使用 LabeledSentence 函数来创建一个 dict :
{tags : user_id, words: all product idsorder by each user_id}
但是数据框的形状是 (32434489, 3),所以我应该避免使用循环来创建我的标记句子。
我尝试使用多处理运行此功能(如下),但太长了。
您是否知道将我的数据框转换为 Doc2vec 语料库的良好格式,其中标签是 user_id,单词是 user_id 的产品列表?
def append_to_sequences(i):
user_id = liste_user_id.pop(0)
liste_produit_userID = data.ix[data["user_id"]==user_id, "product_id"].astype(str).tolist()
return doc2vec.LabeledSentence(words=prd_user_list, tags=user_id )
pool = multiprocessing.Pool(processes=3)
result = pool.map_async(append_to_sequences, np.arange(len_liste_unique_user))
pool.close()
pool.join()
sentences = result.get()