我刚刚开始使用 Word2vec,我想知道如何找到最接近向量的单词。
我有这个向量,它是一组向量的平均向量:
array([-0.00449447, -0.00310097, 0.02421786, ...], dtype=float32)
有没有一种直接的方法可以在我的训练数据中找到与该向量最相似的单词?
或者唯一的解决方案是计算这个向量与我的训练数据中每个单词的向量之间的余弦相似度,然后选择最接近的一个?
Thanks.
For gensim https://radimrehurek.com/gensim/models/word2vec.htmlword2vec的实现有most_similar()
函数可让您查找语义上与给定单词接近的单词:
>>> model.most_similar(positive=['woman', 'king'], negative=['man'])
[('queen', 0.50882536), ...]
或者它的向量表示:
>>> your_word_vector = array([-0.00449447, -0.00310097, 0.02421786, ...], dtype=float32)
>>> model.most_similar(positive=[your_word_vector], topn=1))
where topn
定义所需的返回结果数。
然而,我的直觉是该函数的作用与您提出的完全相同,即计算给定向量和字典中每个其他向量的余弦相似度(这是相当低效的......)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)