酒店的属性为员工素质设施服务清洁程度舒适度性价比位置。之后求解以上6个属性与文本中的25个关键词之间的相似度。相似度高则划分为属性的二级影响因素。采用Word2Vec里面的gensimmodel 进行相似度计算。问题是这6个属性在分词后的文本中可能没有也就没有这个属性的词向量需要通过找到与属性相近的词语然后求平均词向量并且添加到模型里面attribute_vectors =for attr in
在这行代码中: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 著作权归作者所有。请勿转载和采集!