使用预先存在的模型对 word2vec 嵌入进行 PCA

PCA on word2vec embeddings using pre existing model

我有一个在推文上训练过的 word2vec 模型。我还有一个单词列表,我需要从单词中获取嵌入,计算前两个主成分,然后在二维 space.

上绘制每个单词

我正在尝试学习以下教程:https://machinelearningmastery.com/develop-word-embeddings-python-gensim/

然而,在所有此类教程中,他们都会根据使用的随机句子创建模型,然后根据模型中的所有单词计算 PCA。我不想那样做,我只想计算和绘制特定的单词。我如何使用我已有的模型(其中包含数千个单词)并计算我拥有的一组单词列表(大约 20 个)的前两个主要成分?

所以就像上面的 link 一样,他们的“模型”只有他们写的句子中的单词。然后他们执行“X = model[model.wv.vocab]”,然后是“pca.fit_transform(X)”。如果我要复制这段代码,我会在巨大的模型上做 PCA,但我不想这样做。我只想从该模型中提取一些词的嵌入,然后在这几个词上计算 PCA。希望这是有道理的,在此先感谢。如果我需要澄清任何事情,请告诉我。

创建与

具有相同结构(字典)的集合
model.wv.vocab,

用你的目标词填充它,然后计算 PCA。

您可以使用以下代码执行此操作:

my_vocab = {}
for w in my_words:
    my_vocab[w] = model.vw.vocab[w]

X = model[my_vocab]
pca.fit_transform(X)