词向量上 numpy 数组的分组和聚合问题

Group by and aggregate problems for numpy arrays over word vectors

我的 pandas 数据框看起来像这样:

Movieid review  movieRating     wordEmbeddingVector
 1       "text"    4          [100 dimensional vector]

我正在尝试 运行 一个 doc2vec 实现,我希望能够按电影 ID 进行分组,然后对 wordEmbeddingVector 中的向量求和,并计算求和向量与输入向量之间的余弦相似度向量 我试过

movie_groupby = movie_data.groupby('movie_id').agg(lambda v : cosineSimilarity(np.sum(movie_data['textvec'])), inputvector)

但它似乎 运行 好久了,我想我可能做错了什么。所以我试图删除相似性函数,只是分组和求和。但这似乎也没有完成(现在 1 小时及以上)我是做错了什么还是真的那么慢?我的数据框中有 135392 行,所以它不是很大。

movie_groupby = movie_data.groupby('movie_id').agg(lambda v : np.sum(movie_data['textvec']))

非常感谢!

您的代码中存在错误。在您的 lambda 函数中,您对整个数据框求和,而不仅仅是组。这应该可以解决问题:

movie_groupby = movie_data.groupby('movie_id').agg(lambda v: np.sum(v['textvec']))

注意:我用 movie_data 替换了 hotel_data,但这一定是一个错字。