赞
踩
在NLP学习中,常常用到LDA主题模型对文本进行分类,可视化经常用到的代码有
- import pyLDAvis
- import pyLDAvis.sklearn
-
- panel = pyLDAvis.sklearn.prepare(lda, tf_idf, tf_idf_vectorizer)
- pyLDAvis.save_html(panel, 'lda_visualization.html')
- pyLDAvis.display(panel)
import pyLDAvis
pyLDAvis
库,这是一个Python库,用于交互式可视化主题模型的结果,如LDA(Latent Dirichlet Allocation)模型。import pyLDAvis.sklearn
pyLDAvis
库中导入了 sklearn
模块。这个模块提供了与scikit-learn库(一个广泛使用的Python机器学习库)集成的工具,使得 pyLDAvis
可以与scikit-learn的模型和数据格式兼容。panel = pyLDAvis.sklearn.prepare(lda, tf_idf, tf_idf_vectorizer)
pyLDAvis.sklearn.prepare
函数来准备数据,以便于可视化。它需要三个参数:
lda
: 一个已经训练好的LDA模型实例。tf_idf
: 一个稀疏矩阵,表示文档-词项矩阵(Term Frequency-Inverse Document Frequency),通常是通过 sklearn.feature_extraction.text.TfidfVectorizer
转换得到的。tf_idf_vectorizer
: 用于创建 tf_idf
矩阵的向量化器,它包含了词汇表等信息。pyLDAvis
面板对象,这个对象包含了所有需要进行可视化的数据。pyLDAvis.save_html(panel, 'lda_visualization.html')
pyLDAvis
面板对象保存为一个HTML文件。这个HTML文件可以被任何现代浏览器打开,用于展示LDA模型的交互式可视化。文件名是 'lda_visualization.html'
。pyLDAvis.display(panel)
pyLDAvis.display
函数在Jupyter笔记本中直接显示LDA模型的交互式可视化。如果你在Jupyter环境中工作,这将非常有用,因为它允许你直接在笔记本中查看结果,而不需要打开一个单独的HTML文件。总的来说,这些代码是用来准备和展示一个LDA模型的交互式主题模型可视化的。这有助于理解模型如何将文档分配到不同的主题上,以及每个主题中包含哪些词项。
但是经常遇到no module named pyLDAvis.sklearn
解决办法如下:
错误1:使用了import pyLDAvis.sklearn,提示没有模块no module named 'pyldavis.sklearn'默认安装 pyLDAvis==3.4.1,最后降级处理,解决方式:
pip install pyLDAvis==3.2.2
错误2: return vectorizer.get_feature_names()
AttributeError: 'CountVectorizer' object has no attribute 'get_feature_names'
解决方式:进入相关的代码文件中,找到对应位置,修改为:return vectorizer.get_feature_names_out()
错误3:
pyLDAvis\_prepare.py", line 247, in _topic_info
default_term_info = default_term_info.sort_values(
TypeError: drop() takes from 1 to 2 positional arguments but 3 were given
解决方式:
修改_prepare.py文件 ,
将248行代码改为drop(‘saliency’, 1) ==> drop(‘saliency’, axis=1)
我到这一步就可以展示了,但是如果还有问题的话,可以参照错误4
错误4:OSError: [Errno 22] Invalid argument: 'https://cdn.jsdelivr.net/gh/bmabey/py
修改报错处,即_display.py的227.py,local=True改为local=False
最后结果展示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。