【问题标题】:How I can get the vectors for words that were not present in word2vec vocabulary?如何获取 word2vec 词汇表中不存在的单词的向量?
【发布时间】:2018-12-12 14:04:32
【问题描述】:

我查看了之前的帖子link,但它似乎不适用于我的情况:-

我已经预训练了 word2vec 模型:

import gensim    
model = Word2Vec.load('w2v_model')

现在我有一个带有关键字的 pandas 数据框:

keyword
corruption
people
budget
cambodia
.......
......

我想在其对应的列中为每个关键字添加向量,但是 当我使用model['cambodia'] 时,它会抛出KeyError: "word 'cambodia' not in vocabulary" 错误

所以我将关键字更新为:

model.train(['cambodia'])

但这对我来说行不通,当我使用 model['cambodia']

它仍然给出KeyError: "word 'cambodia' not in vocabulary" 的错误。如何将新单词更新为 word2vec 词汇表,以便我可以获得它的向量?预期输出将是:-

keyword    V1         V2          V3         V4            V5         V6   
corruption 0.07397  0.290874    -0.170812   0.085428    -0.148551   0.38846 
people      ..............................................................
budget      ...........................................................

【问题讨论】:

  • Update gensim word2vec model - "The word2vec algorithm doesn’t support adding new words dynamically." 的可能重复项因此,不,除非您使用新词汇重新训练整个模型,否则这是不可能的。
  • @ukemi 你提到的帖子似乎对我不起作用。我已经检查过了。
  • @ukemi 不是链接到帖子,而是对帖子的评论。那条评论说你想要的东西是不可能的。您必须使用要矢量化的所有单词来训练模型。我认为如果你配置得当,FastText 可以处理超出词汇量的单词
  • 您还可以查看Hash Embeddings,它可以像 word2vec 一样进行训练,然后用新单词进行更新。
  • @IonicSolutions 是否可以在谷歌 word2vec 预训练模型词汇中添加新词?所以我以后可以使用它的向量?

标签: python-3.x pandas word2vec gensim text-classification


【解决方案1】:

您可以将第一个向量初始化为 [0,0,...0]。而词汇表中没有的词可以设置为0。

keyword    V1         V2          V3         V4            V5         V6  
0          0          0           0           0           0           0
1       0.07397  0.290874    -0.170812   0.085428    -0.148551   0.38846 
2      ..............................................................
3      ...........................................................

你可以使用两个字典来解决这个问题。

word2id['corruption']=1 
vec['corruption']=[0.07397 0.290874 -0.170812 0.085428 -0.148551 0.38846]
 ...
word2id['cambodia']=0 
vec['cambodia']=[0 0 0 0 0 0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2023-01-27
    • 2015-10-05
    • 2019-07-07
    • 2021-06-26
    相关资源
    最近更新 更多