gensim的WikiCorpus是否移除停用词?同语料下Word2vec表现优于Box Embedding原因?
关于WikiCorpus是否主动删除停用词的判断
你的推测完全正确。gensim中的WikiCorpus类默认仅执行维基百科标记解析、基础分词、短token过滤(默认丢弃长度小于3的token)三类预处理操作,没有内置停用词移除逻辑,因此你生成的txt语料中会保留大量高频停用词,需要你额外引入停用词表自行过滤get_texts()返回的token列表。
同语料下Word2vec效果优于Box-embedding的核心原因
两类模型的训练逻辑、向量性质、降噪机制存在本质差异,常见的影响因素有三点:
- Word2vec内置了高频词下采样机制:gensim的Word2vec默认开启
sample=1e-3参数,训练过程中会随机丢弃出现频率过高的token,绝大多数停用词都会被大幅降低参与训练的频率,对最终向量质量的干扰被极大削弱。而大部分Box-embedding的实现没有默认加入高频词下采样逻辑,停用词在语料中占比极高,模型会学到「所有词都和停用词共现频繁」的模式,自然会在相似结果中大量返回停用词。 - 相似度计算逻辑的差异:Word2vec用余弦相似度衡量向量方向的匹配度,停用词的上下文过于分散,学到的向量方向特征非常模糊,很难被判定为和普通实词高度相似;而Box-embedding通常用交并比(IoU)、包含度作为相似度指标,停用词和所有词共现多,学到的Box范围极广,和任意实词的Box重叠度都会很高,自然会排在相似结果前列。
- 负采样逻辑的差异:Word2vec的负采样默认按词频的3/4次方加权采样,会平衡高低频词的采样概率,进一步降低停用词的干扰;如果你的Box-embedding用的是均匀随机负采样,高频停用词被选为正负样本的概率都远高于普通实词,会进一步放大停用词的影响。
快速修复建议
- 预处理阶段先过滤语料中的停用词,再训练Box-embedding模型
- 给Box-embedding的训练流程增加和Word2vec对齐的高频词下采样逻辑
- 可以在
most_similar返回结果中新增停用词过滤规则,直接过滤无效结果
内容的提问来源于stack exchange,提问作者user10679548
相关产品推荐
相关产品推荐

