基于Lee_background语料训练的Word2Vec模型出现KeyError: 'design'求助
问题原因及解决办法
核心原因
你遇到的问题本质是词频过滤和未做词形归一化导致的:
- Word2Vec默认过滤低频次:Gensim的Word2Vec默认参数
min_count=5,只有语料中出现次数≥5的词才会被纳入模型词汇表。你的语料里design只出现1次,远低于阈值,所以被直接过滤了;而will出现次数≥5,因此能正常查到索引。 - 变形词被当作独立词汇:
designed是design的过去分词形式,你的预处理流程没做词形还原(把变形词统一为原型),所以两者被模型判定为完全不同的词,各自计数——designed的2次不会被合并到design的统计里,自然design的次数还是达不到保留标准。
解决办法
- 调整词频阈值:训练模型时手动设置
min_count=1,强制保留所有出现过的词:model = gensim.models.Word2Vec(sentences=sentences, min_count=1) - 添加词形还原预处理:在生成语料前,用工具(比如NLTK的WordNetLemmatizer)把所有动词变形还原为原型,这样
designed会被转换成design,总次数变为3次。如果仍不满足默认阈值,再结合调整min_count参数。
内容的提问来源于stack exchange,提问作者Sonali Mhatre
相关产品推荐
相关产品推荐

