我已经使用gensim针对不同的语言训练了多个word2vec模型,但是每种模型的size
不同。
向量是这样获得的:
vec_sp = word_vectors_sp.get_vector("uno")
如何使用vec_sp
作为具有不同矢量大小的不同模型的输入:
word_vectors_en.most_similar(positive=[vec_sp], topn=1)
在第二个模型中获得相应的单词
能够在n个具有不同维度d_1,... d_n]的不同嵌入向量空间之间进行比较的系统方法是将每个空间中向量的维数减小为一个值m其中m [有很多方法可以做到。通过Johnson Lindenstrauss lemma,您可以通过在每个空间分别应用随机投影
在对每个空间应用此变换之后,最终将得到i个这样的空间...每个空间的尺寸将为
m
,这意味着您将能够计算点积之间 。 降低维度的另一种方法是使用PCA
。 Python的sklearn提供random projections和PCA的实现。就一个具体的例子而言,如果您有两个100和200维的向量空间,每个向量空间有100,000个向量,则可以通过PCA或随机投影将每个向量空间减少到20个维(任意选择)。然后,您可以通过计算距离或内积来比较这20维向量。