Word2Vec报错:KeyError: "word 'XXX' not in vocabulary"

原文地址

分类目录——情感识别

发生在想通过model['XXX']观察一下XXX的词向量的时候

  • 原因一

    最简单的原因就是这个词不在你做来做训练的语料库中

  • 原因二

    在定义模型时

    model = word2vec.Word2Vec(sentences, min_count=5)
    

    有一个min_count的属性,它的默认值是5,Word2Vec在训练时会忽略词频小于该属性值的词,可能你进行观察的这个词的词频太低,训练时没有被采用

    解决方法是降低该值的设定

  • 原因三

    model = word2vec.Word2Vec(sentences, min_count=5)
    

    中的sentences默认是按这种格式

    [['str1', 'str2'],
     ['str2', 'str4'],
     ...
     ]
    

    进行处理的,你传入的可能是一个整体的1维的此列表,它把你的一个词当成了一个句子列表,再进行拆分,把每个字当成一个词进行训练,多个字的词就都不在vocabulary中了

    解决方法是在嵌套一层,传入[sentences]这样一个二维的此列表。

  • 参考文献

    https://stackoverflow.com/questions/45420466/gensim-keyerror-word-not-in-vocabulary?answertab=votes#tab-top

发布了119 篇原创文章 · 获赞 86 · 访问量 5853

猜你喜欢

转载自blog.csdn.net/BBJG_001/article/details/104405643