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

本文探讨了在使用Word2Vec模型时遇到词向量缺失的三种常见原因及解决方案,包括词汇不在训练语料库中、词频过低被忽略以及输入格式错误导致多字词无法识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址

分类目录——情感识别

发生在想通过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

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBJG_001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值