You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pyLDAvis可视化LDA模型时出现AttributeError错误求助

解决pyLDAvis调用时CountVectorizer的AttributeError问题

问题根源

你碰到的AttributeError: 'CountVectorizer' object has no attribute 'get_feature_names'是scikit-learn版本兼容问题:新版本scikit-learn(0.24及以上)已经把get_feature_names()替换成了get_feature_names_out(),但pyLDAvis.sklearn内部还在调用旧方法,导致报错。你用TruncatedSVD时调用get_feature_names_out()正常,正好说明你的scikit-learn是新版本。

两种修复方案

方案1:给Vectorizer添加兼容方法

在创建vectorizer对象后,手动添加一个get_feature_names方法,指向新的get_feature_names_out,让pyLDAvis能正常调用:

# 创建vectorizer后追加这一行
vectorizer.get_feature_names = lambda: vectorizer.get_feature_names_out()

之后再运行pyLDAvis的代码就不会报错了:

pyLDAvis.enable_notebook()
dash = pyLDAvis.sklearn.prepare(lda, data_vectorized, vectorizer, mds='tsne')
dash

方案2:降级scikit-learn版本

如果不想改代码,可以把scikit-learn降到还保留get_feature_names()的版本:

pip install scikit-learn==0.23.2

内容的提问来源于stack exchange,提问作者Blue_point225

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:25:51