在这行代码中:attr_vec = np.sum(attr_vecs) / len(attr_vecs),attr_vecs是一个向量集合,而不是一个独立的向量。所以不能直接对它们进行求和。需要使用np.vstack将它们堆叠起来形成一个矩阵,然后对矩阵进行平均。修改后的代码如下:

if attr_vecs: #非空 attr_vecs = np.vstack(attr_vecs) #将向量集合堆叠成矩阵 attr_vec = np.mean(attr_vecs, axis=0) #对矩阵进行平均得到平均词向量 model.wv.add_vector(attr, attr_vec) attribute_vectors.append(attr_vec) else: attribute_vectors.append(None)


原文地址: https://www.cveoy.top/t/topic/fH40 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录