You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Python3中使用Gensim报错:gensim.models.doc2vec无LabeledSentence属性

解决Gensim中'LabeledSentence'不存在的错误

嘿,这个问题我碰到过好几次了!原因很简单——你用的是Gensim 4.x及以上的新版本,LabeledSentence这个类已经被官方移除啦,取而代之的是TaggedDocument。下面给你两种解决思路,推荐用第一种适配新版本的方式:

方法一:适配新版Gensim(推荐)

直接把代码里的LabeledSentence替换成TaggedDocument就行,步骤如下:

  1. 更改导入语句:
    把原来的
    from gensim.models.doc2vec import LabeledSentence
    
    改成
    from gensim.models.doc2vec import TaggedDocument
    
  2. 修改创建标注句子的代码:
    比如你第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

火山引擎 最新活动