跟着几个教程,一直调不出来,搞半天发现数据类型错误
调用pyLDAvis其实非常简单,就这么几行代码,最核心的就是这两行
d=pyLDAvis.gensim.prepare(ldam,corpus, dictionary)
pyLDAvis.show(d)
再详细点,我出错的点就是corpora.Dictionary(dic)
,网上的教程括号里写的都是text,而我一开始数据的类型是list,难怪一直出错。这边要先把你的数据转变为字典类型。
from gensim import corpora
from gensim.models import LdaModel
import pyLDAvis.gensim
import pyLDAvis.sklearn
dictionary = corpora.Dictionary(dic)
corpus = [dictionary.doc2bow(text) for text in dic]
ldam = LdaModel(corpus=corpus, id2word=dictionary, num_topics=20, passes=60)
d=pyLDAvis.gensim.prepare(ldam,corpus, dictionary)
pyLDAvis.show(d)
从文本集到最后的可视化,整个过程大概有如下几个步骤:
- 分词,中文用jieba分词
- 去停用词
- lda寻找主题
- pyLDAvis可视化分析