QZQ的小世界!

  • 首页
你好!
这里是QZQ的博客站!
  1. 首页
  2. 未分类
  3. 正文

DEBUG:新版 pyLDAvis 兼容性问题解决 AttributeError: module 'pyLDAvis' has no attribute 'lda_model’

2024年12月24日 243点热度 0人点赞 0条评论

前言

最近文艺复兴了在搞LDA主题模型,然而做可视化的时候发现一堆问题,说的就是pyLDAvis这个包。要做lda肯定绕不过的,这玩意可视化是真好看,六七年前的设计现在依然能打。

然而由于lda热度不在,pyLDAvis的新版接口几乎没人说明怎么用…我参照之前的教程搞一堆报错出来,找遍网上也没最新的资料…好在最后终于摸索出来了,因此就在这总结一下,希望大家少走弯路。

我使用的环境是

  • Python 3.9.17
  • pyLDAvis=3.4.0
  • Pycharm 2024.1.2 (这个应该没啥关系)

报错1:AttributeError: module 'pyLDAvis' has no attribute 'lda_model’

这个是调用方式有问题,我看了一眼源码中的示例文件搞明白了:

GitHub - bmabey/pyLDAvis: Python library for interactive topic model visualization. Port of the R LDAvis package.

看如下代码:

import pyLDAvis
# from pyLDAvis import lda_model

# 中间省略调模型的步骤
data = pyLDAvis.lda_model.prepare(lda, tf_idf, tf_idf_vectorizer)

 

出现报错:

AttributeError: module 'pyLDAvis' has no attribute 'lda_model'

 

但是如果这样

import pyLDAvis
from pyLDAvis import lda_model

# 中间省略调模型的步骤
data = pyLDAvis.lda_model.prepare(lda, tf_idf, tf_idf_vectorizer)

 

就会完全没问题。

真要追根溯源的话,可以发现新版的pyLDAvis的__init__文件并没有导入lda_model:

# 来自pyLDAvis的__init__

__all__ = ["__version__",
           "prepare", "js_PCoA",
           "PreparedData", "prepared_data_to_html",
           "display", "show", "save_html", "save_json",
           "enable_notebook", "disable_notebook"]

__version__ = "3.4.0"

from pyLDAvis._display import *
from pyLDAvis._prepare import prepare, js_PCoA, PreparedData

 

这个lda_model是在它的主目录下,成了个单独的模块。害…我也不知道为啥这么干,反正给我带来了很多麻烦…

报错2:ModuleNotFoundError: No module named 'pyLDAvis.sklearn’

pyLDAvis在后续的更新中将sklearn改名成为lda_model,因此直接将sklearn换用成lda_model即可,其他均不变。

原贴来自:

方案1:直接降级

讲真,如果真闲麻烦,想要用老教程中的方法函数,直接降级就完事,这里贴一下别人的方法:

https://blog.csdn.net/zhangb98/article/details/135655929

这里顺便说一下,conda和pip都支持不卸载原包的情况下直接变更包的版本,使用下面的命令行即可回到旧版。

conda install pyLDAvis==3.2.2
pip install pyLDAvis==3.2.2

 

当然我看到还有人回滚到2.0版本的,这个就看环境问题了。

其他零碎的问题

AttributeError: 'CountVectorizer' object has no attribute 'get_feature_names’

新版本之后该函数换了个名字

修改为:return vectorizer.get_feature_names_out()

 

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2025年3月12日

QZQ

一只涉猎广泛的技术爱好者,绝赞养猫中~

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月

分类

  • 技术
  • 未分类

COPYRIGHT © 2024 QZQ的小世界!. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang