Python3中使用Gensim报错:gensim.models.doc2vec无LabeledSentence属性
解决Gensim中'LabeledSentence'不存在的错误
嘿,这个问题我碰到过好几次了!原因很简单——你用的是Gensim 4.x及以上的新版本,LabeledSentence这个类已经被官方移除啦,取而代之的是TaggedDocument。下面给你两种解决思路,推荐用第一种适配新版本的方式:
方法一:适配新版Gensim(推荐)
直接把代码里的LabeledSentence替换成TaggedDocument就行,步骤如下:
- 更改导入语句:
把原来的
改成from gensim.models.doc2vec import LabeledSentencefrom gensim.models.doc2vec import TaggedDocument - 修改创建标注句子的代码:
比如你第11行如果是类似这样的代码:
直接替换成:labeled_sent = LabeledSentence(words=my_words, tags=my_tags)labeled_sent = TaggedDocument(words=my_words, tags=my_tags)TaggedDocument的参数和原来的LabeledSentence完全一致,只是类名变了,几乎不需要额外调整。
方法二:降级Gensim到旧版本(不推荐)
如果你的项目代码大量依赖LabeledSentence且不想修改,可以暂时降级Gensim到3.x版本,执行以下命令:
pip install gensim==3.8.3
不过还是建议你适配新版本,因为Gensim 4.x做了很多性能优化和bug修复,后续维护也会更省心。
内容的提问来源于stack exchange,提问作者Learner




