【发布时间】:2019-10-07 06:13:12
【问题描述】:
我正在尝试使用this 1000 维维基百科 word2vec 模型来分析一些文档。
使用自省我发现一个单词的向量表示是一个 1000 维的 numpy.ndarray,但是每当我尝试创建一个 ndarray 来查找最近的单词时,我都会得到一个值错误:
ValueError: maximum supported dimension for an ndarray is 32, found 1000
从我通过在线查看可以看出 32 确实是 ndarray 支持的最大维数 - 那么给出了什么? gensim是如何输出1000维的ndarray的?
下面是一些示例代码:
doc = [model[word] for word in text if word in model.vocab]
out = []
n = len(doc[0])
print(n)
print(len(model["hello"]))
print(type(doc[0]))
for i in range(n):
sum = 0
for d in doc:
sum += d[i]
out.append(sum/n)
out = np.ndarray(out)
哪个输出:
1000
1000
<class 'numpy.ndarray'>
ValueError: maximum supported dimension for an ndarray is 32, found 1000
这里的目标是计算语料库中所有单词的平均向量,其格式可用于在模型中查找附近的单词,因此欢迎提出任何替代建议。
【问题讨论】: