查找与随机初始化数组最相似的单词

问题描述

使用Gensim软件包,我在要使用的语料库上训练了word2vec模型,如下所示:

$match

使用Numpy,我初始化了一个具有相同尺寸的随机数组:

word2vec = Word2Vec(all_words,min_count = 3,size = 512,sg = 1)

现在,我想从word2vec中找到与我初始化的随机向量最相似的词。

对于word2vec中的单词,您可以运行:

vector = (rand(512)-0.5) *20

输出是包含最相似单词及其对应距离的列表。

我想为我的初始化数组获得类似的输出。

但是,当我跑步时:

word2vec.most_similar('word')

我收到以下错误:

word2vec.most_similar(vector)

我该怎么做才能克服此错误并找到与数组最相似的词?

我已经检查了thisthis页面。但是,我不清楚如何用这些建议解决问题。

解决方法

您正在尝试查看浮点数是否类似于字符串,并且不起作用(cannot unpack non-iterable numpy.float64 object)。

您需要做的是正确生成随机字符串,而不是随机浮点数。完成此操作后,您的代码即可使用。另请参阅说明list of strhttps://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.WordEmbeddingsKeyedVectors.most_similar

的文档。 ,

Gensim的KeyedVectors接口.most_similar()方法可以以原始向量为目标,但是为了使其当前(至少通过gensim-3.8.3)自变量类型-detection,以确保不会将单个向量误认为一个键列表,您需要将其明确提供为名为positive参数的项列表的一个成员。

具体地说,这应该可以工作:

similars = word2vec.wv.most_similar(positive=[vector,])

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...