sal*_*vaz 1 nlp cosine-similarity gensim scikit-learn word2vec
我加载了一个 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:
Run Code Online (Sandbox Code Playgroud)
这是什么意思?谢谢你!
MemoryError意味着没有足够的内存来完成操作。
您的“it-vectors.100.5.50.w2v”集中有多少个向量?
请注意,cosine_similarity()创建一个 (nxn) 结果矩阵。因此,如果集合中有 100,000 个向量,则需要一个大小为的结果数组:
100,000^2 * 4 bytes/float = 40GB
Run Code Online (Sandbox Code Playgroud)
你有那么多可寻址内存吗?
| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |