如何检查word2vec训练模型中是否存在密钥

Lon*_*guy 29 python gensim word2vec

我使用Gensim的文档语料库训练了一个word2vec模型.一旦模型正在训练,我正在编写以下代码以获得单词的原始特征向量说"视图".

myModel["view"]
Run Code Online (Sandbox Code Playgroud)

但是,我得到了一个单词的KeyError,这可能是因为它不存在作为word2vec索引的键列表中的键.在尝试获取原始特征向量之前,如何检查索引中的键是否退出?

Mat*_*ier 32

Word2Vec还提供了一个"词汇"成员,您可以直接访问该成员.

使用pythonistic方法:

if word in w2v_model.vocab:
    # Do something
Run Code Online (Sandbox Code Playgroud)

编辑自gensim发布2.0以来,Word2Vec的API发生了变化.要访问词汇表,您现在应该使用:

if word in w2v_model.wv.vocab:
    # Do something
Run Code Online (Sandbox Code Playgroud)

编辑2属性'wv'已被弃用,将在gensim 4.0.0中完成删除.现在回到OP的原始答案:

if word in w2v_model.vocab:
    # Do something
Run Code Online (Sandbox Code Playgroud)


小智 20

将模型转换为向量

word_vectors = model.wv
Run Code Online (Sandbox Code Playgroud)

然后我们可以使用

if 'word' in word_vectors.vocab
Run Code Online (Sandbox Code Playgroud)