尝试使用 gensim word2vec 时使用 a.all() 或 a.any() 错误
use a.all() or a.any() error while trying to use gensim word2vec
我一直在尝试 运行 如何使用 python 的 gensim 库中的 word2vec 的示例,但我一直收到此错误
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
这是我的代码,只是一个简单的例子:
from gensim.models import Word2Vec
sentences = [['first', 'sentence'], ['second', 'sentence']]
# train word2vec on the two sentences
model = Word2Vec(sentences, min_count=1)
注意:我已确保安装了 gensim 及其所有依赖项。
我也遇到了同样的问题,我所做的是安装 python-dev 包然后重新安装 gensim,不知何故有效,我在 ubuntu 所以这就是我做过:
sudo apt-get install python-dev
sudo pip uninstall gensim
sudo pip install gensim
当我 运行 这个 :
model = gensim.models.Word2Vec(sentences=listSentence,min_count=2,window=3,size=20,workers=1)
print model['Brasil']
成功了,我得到了结果向量:
[-0.01635483 0.02224622 -0.01865266 0.02168317 -0.01231722 -0.0207897
-0.0014509 0.00264822 -0.01889374 -0.02109174 -0.00244757 0.00024959
-0.00898884 -0.01826199 -0.01361686 -0.01770178 -0.02431025 -0.01903439
-0.00775641 0.02353667]
我运行也遇到过这个问题。对我来说,这个错误显然有另一个背景:
通常,我将text-data收集到dtype=np.str
的numpy-arrays中。
当我将 numpy-text-array 加载到 gensim-model 时,我收到了您描述的错误。实际上,将数组存储在正常的 python-list
中反而起到了作用..
也许这可以帮助其他人 运行 解决这个问题。
如果以上所有答案都不起作用,您可以尝试从您的 numpy 列表中保存 txt,然后像这样。
np.savetxt('train_data.txt', np_api, delimiter=" ", fmt="%s")
sentences = word2vec.LineSentence('train_data.txt')
txt 的 fmt 必须这样
this is the sentence a
this is the sentence b
如果 txt 中有其他词,如“["or "]”或“'”,你可能会得到这个答案,你不会喜欢的
"'FindWindowA'": <gensim.models.keyedvectors.Vocab at 0x7f1f74251e80>,
"'FindWindowA']": <gensim.models.keyedvectors.Vocab at 0x7f1f74232978>,
"'FindWindowExA'": <gensim.models.keyedvectors.Vocab at 0x7f1f741e83c8>,
我一直在尝试 运行 如何使用 python 的 gensim 库中的 word2vec 的示例,但我一直收到此错误
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
这是我的代码,只是一个简单的例子:
from gensim.models import Word2Vec
sentences = [['first', 'sentence'], ['second', 'sentence']]
# train word2vec on the two sentences
model = Word2Vec(sentences, min_count=1)
注意:我已确保安装了 gensim 及其所有依赖项。
我也遇到了同样的问题,我所做的是安装 python-dev 包然后重新安装 gensim,不知何故有效,我在 ubuntu 所以这就是我做过:
sudo apt-get install python-dev
sudo pip uninstall gensim
sudo pip install gensim
当我 运行 这个 :
model = gensim.models.Word2Vec(sentences=listSentence,min_count=2,window=3,size=20,workers=1)
print model['Brasil']
成功了,我得到了结果向量:
[-0.01635483 0.02224622 -0.01865266 0.02168317 -0.01231722 -0.0207897
-0.0014509 0.00264822 -0.01889374 -0.02109174 -0.00244757 0.00024959
-0.00898884 -0.01826199 -0.01361686 -0.01770178 -0.02431025 -0.01903439
-0.00775641 0.02353667]
我运行也遇到过这个问题。对我来说,这个错误显然有另一个背景:
通常,我将text-data收集到dtype=np.str
的numpy-arrays中。
当我将 numpy-text-array 加载到 gensim-model 时,我收到了您描述的错误。实际上,将数组存储在正常的 python-list
中反而起到了作用..
也许这可以帮助其他人 运行 解决这个问题。
如果以上所有答案都不起作用,您可以尝试从您的 numpy 列表中保存 txt,然后像这样。
np.savetxt('train_data.txt', np_api, delimiter=" ", fmt="%s")
sentences = word2vec.LineSentence('train_data.txt')
txt 的 fmt 必须这样
this is the sentence a
this is the sentence b
如果 txt 中有其他词,如“["or "]”或“'”,你可能会得到这个答案,你不会喜欢的
"'FindWindowA'": <gensim.models.keyedvectors.Vocab at 0x7f1f74251e80>,
"'FindWindowA']": <gensim.models.keyedvectors.Vocab at 0x7f1f74232978>,
"'FindWindowExA'": <gensim.models.keyedvectors.Vocab at 0x7f1f741e83c8>,