Я использую следующий код для кластеризации своих векторов слов с использованием алгоритма кластеризации k-средних.
from sklearn import cluster
model = word2vec.Word2Vec.load("word2vec_model")
X = model[model.wv.vocab]
clusterer = cluster.KMeans (n_clusters=6)
preds = clusterer.fit_predict(X)
centers = clusterer.cluster_centers_
Учитывая слово в словаре word2vec (например, word_vector = model['jeep']
), я хочу получить его кластерИдентификатор и косинус расстояние до его центра кластера.
Я попробовал следующий подход.
for i,j in enumerate(set(preds)):
positions = X[np.where(preds == i)]
print(positions)
Однако он возвращает все векторы в каждом идентификаторе кластера и не совсем то, что я ищу.
Я с радостью предоставлю более подробную информацию, если это необходимо.