如何计算Word2Vec中的差异向量



我有一个binary Word2Vec文件,我正在使用 gensim加载它。

虽然在Gensim中有2个单词之间的similarity,但没有函数来计算和返回差异向量。

我如何使用两个向量并获得差异矢量?

,我也试图将这些差异向量作为文档分类中的功能。对每个单词和每个类之间的差异向量。这是正确的方法吗?

例如,如果类是sportpolitics

sport = [0.4,0.456,45,...] #wordvector of class
politics = [0.23,0.56...] #wordvector of class

我的话是 football

football = [0.2,0.6,0.45,...] #wordvector of football

我想计算diff vector

(sport - football) = [some vector] # this as a feature for classification

我如何使用两个向量并获得差异矢量?

您简单地减去两个向量的预言似乎是正确的(来源:https://blog.galvanize.com/add-and-subtract-words-like-vectors-with-with-word2vec-2/(。如果我记得Gensim使用TF,则可以使用TensorFlow减去这些单词向量。

,我也试图将这些差异向量作为文档分类中的功能。对每个单词和每个类之间的差异向量。这是正确的方法吗?

我不知道您的目标,但是我会考虑训练自己的神经网,以对单词/文档进行分类,我会研究新的软件包以帮助您。https://github.com/zalandoresearch/flair/issues/787

矢量本身通过普通Python -操作员支持减法,因此,如果您的加载单词向量位于变量wv中,它确实很简单,如:

diff_vector = wv['sport'] - wv['football']

然后,您可以尝试通过以下方式找到最接近新向量的其他向量。

wv.most_similar(positive=[diff_vector])

由于类比解决的共同案例需要正向向量和负向量的混合物,因此most_similar()方法甚至可以让您提供负面例证,因此您也可以在单个步骤中进行差异和较大的类似物:

wv.most_similar(positive=['sport'], negative=['football')

(由于most_similar()内发生的单位差正规化排序,结果可能与第一个方法略有不同。(

最新更新