在python中使用相似性传播(sklearn)对word2vec向量进行聚类

2024-09-28 01:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用相似性传播对我的word2vec集群进行集群,并得到集群中心的单词。在

我目前的代码如下。在

model = word2vec.Word2Vec.load("word2vec")
word_vectors = model.wv.syn0
affprop = AffinityPropagation(affinity="precomputed", damping=0.5)
af= affprop.fit(word_vectors)

但是,这会引发以下错误: ValueError: S must be a square array (shape=(77, 300))

据我所知,300表示word2vec隐藏层维度,77表示我的词汇量大小。在

我只是想知道如何对不是方形数组的word2vec向量使用关联传播。在

请帮帮我!在


Tags: 代码modelload集群word2vec中心相似性单词
0条回答
网友
1楼 · 发布于 2024-09-28 01:27:01

这是因为您声明样本之间的亲和力已经计算出来了,它总是一个方阵。因此,您可以使用已实现的欧几里得距离,或者如果要使用其他度量,则必须预先计算它,请参见下面的示例代码:

# some dummy data
word_vectors = np.random.random((77, 300))

# using eucliden distance
affprop = AffinityPropagation(affinity='euclidean', damping=0.5)
af = affprop.fit(word_vectors)

# using cosine
from sklearn.metrics.pairwise import cosine_distances
word_cosine = cosine_distances(word_vectors)
affprop = AffinityPropagation(affinity='precomputed', damping=0.5)
af = affprop.fit(word_cosine)

相关问题 更多 >

    热门问题