Косинусное сходство с word2vec - PullRequest
0 голосов
/ 17 мая 2018

Я загружаю файл в формате word2vec и хочу вычислить сходства между векторами, но я не знаю, что означает эта проблема.

from gensim.models import Word2Vec
from sklearn.metrics.pairwise import cosine_similarity
from gensim.models import KeyedVectors
import numpy as np

model = KeyedVectors.load_word2vec_format('it-vectors.100.5.50.w2v')

similarities = cosine_similarity(model.vectors)


---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-54-1d4e62f55ebf> in <module>()
----> 1 similarities = cosine_similarity(model.vectors)

/usr/local/lib/python3.5/dist-packages/sklearn/metrics/pairwise.py in cosine_similarity(X, Y, dense_output)
    923         Y_normalized = normalize(Y, copy=True)
    924 
--> 925     K = safe_sparse_dot(X_normalized, Y_normalized.T, dense_output=dense_output)
    926 
    927     return K

/usr/local/lib/python3.5/dist-packages/sklearn/utils/extmath.py in safe_sparse_dot(a, b, dense_output)
    138         return ret
    139     else:
--> 140         return np.dot(a, b)
    141 
    142 

MemoryError: 

Что это значит?Спасибо!

1 Ответ

0 голосов
/ 17 мая 2018

MemoryError означает, что недостаточно памяти для завершения операции.

Сколько векторов в вашем наборе 'it-vectors.100.5.50.w2v'?

Обратите внимание, что cosine_similarity() создает (nxn) матрицу результатов.Поэтому, если в вашем наборе 100 000 векторов, вам понадобится массив результатов размером:

100,000^2 * 4 bytes/float = 40GB

У вас так много адресуемой памяти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...