Получение матрицы расстояний и матрицы характеристик из модели word2vec

Я сгенерировал модель word2vec, используя gensim для огромного корпуса, и мне нужно сгруппировать словари, используя k означает кластеризацию для того, что мне нужно:

  1. матрица косинусного расстояния (слово в слово, поэтому размер матрицы число_фо_слов х число_фо_слов)
  2. матрица функций (от слова к объектам, поэтому размер матрицы равен number_of_words x number_of_features(200))

для матрицы функций я попытался использовать x=model.wv, и я получил тип объекта как gensim.models.keyedvectors.KeyedVectors, и он намного меньше, чем я ожидал, что матрица объектов будет

Есть ли способ использовать этот объект непосредственно для создания кластеризации k-средних?

1 ответ

В модели Word2Vec от gensim number_of-words x number_of_features Массив векторов слов находится в model.wv.syn0, (Вы можете использовать model.wv.vocab диктовать, чтобы узнать назначение строки-токена-массива-слота, или model.wv.index2word список, чтобы узнать назначение слотов массива к слову.)

Парные расстояния предварительно не рассчитаны, поэтому вам придется создать их самостоятельно. И с типичными размерами словаря, это может быть непрактично большим. (Например, при использовании словаря из 100000 слов сохранение всех парных расстояний наиболее эффективным способом потребует примерно 100,000^2 * 4 bytes/float / 2 = 20GB адресного пространства.

Другие вопросы по тегам