python - 使用现有模型对 word2vec 嵌入进行 PCA
问题描述
我有一个在推文上训练的 word2vec 模型。我还有一个单词列表,我需要从单词中获取嵌入,计算前两个主成分,并将每个单词绘制在二维空间上。
我正在尝试遵循以下教程:https ://machinelearningmastery.com/develop-word-embeddings-python-gensim/
然而,在所有此类教程中,他们根据使用的随机句子创建模型,然后对模型中的所有单词计算 PCA。我不想那样做,我只想计算和绘制特定的单词。如何使用我已经拥有的包含数千个单词的模型,并为我拥有的一组单词(大约 20 个)计算前两个主成分?
所以就像上面的链接一样,他们有“模型”,只有他们写的句子中的单词。然后他们执行“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)
推荐阅读
- mongodb - 在 Spring Boot 和 Mongo 中查看单个记录
- javascript - 数组旋转导致我的数组为空值为什么
- java - 如何从android的fireStore数据库中读取嵌套地图
- javascript - 如何在 ReactJs 中显示存在于 src 文件夹之外的卡片组件的图像?
- python-3.x - 尝试定义为应用创建价格桶的函数时出错
- regex - 如何提取字符串中数字和逗号之间的单词
- python - 如何获得主题模型的覆盖率?
- python - 如果条件在 Django html 模板上
- jhipster - JHipster v7.1.0:Docker compose 子生成器失败,无法安装 docker compose
- homebrew - 如何解决 brew link wget /usr/local/share/locale/bg/LC_MESSAGES not writable 问题?chown chmod 没有用