如何解释gensim word2vec输出?

问题描述

我运行以下代码,只是想知道为什么与“曝光”最相似的前 3 个词不包括“收费”和“借出”?

from gensim.models import Word2Vec
corpus = [['total','exposure','charge','lend'],['customer','paydown','rate','months','month']]
gens_mod = Word2Vec(corpus,min_count=1,vector_size=300,window=2,sg=1,workers=1,seed=1)
keyword="exposure"
gens_mod.wv.most_similar(keyword)

Output:
[('customer',0.12233059108257294),('month',0.008674687705934048),('total',-0.011738087050616741),('rate',-0.03600010275840759),('months',-0.04291829466819763),('paydown',-0.044823747128248215),('lend',-0.05356598272919655),('charge',-0.07367636263370514)]

解决方法

word2vec 算法仅对大量训练数据有用且有价值,其中每个感兴趣的词都有各种逼真的、对比鲜明的用法示例。

玩具大小的数据集不会显示其价值。设置 min_count=1 总是一个坏主意。而且,试图从只有 9 个词、9 个唯一词和大多数具有完全相同邻居的词的语料库中训练 300 维词向量是毫无意义的。

在更真实的数据集上进行尝试 - 数万个独特的词,所有单词都有多个用法示例 - 你会看到更直观、更正确的相似性结果。