我查看了之前的帖子 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 ...........................................................
最佳答案
您可以将第一个向量初始化为 [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]
关于python-3.x - 如何获得 word2vec 词汇表中不存在的单词的向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51168444/