LDA模型实战常用知识点
摘要:可视化话题模型。手把手教你学会LDA话题模型可视化pyLDAvis库。
2019 Stata & Python 实证计量与爬虫分析暑期工作坊 还有几天就要开始了。之前在公众号里分享过好几次LDA话题模型的,但考虑的问题都比较简单。 这次我将分享在这个notebook中,将会对以下问题进行实战:
提取话题的关键词
gridsearch寻找最佳模型参数
可视化话题模型
预测新输入的文本的话题
如何查看话题的特征词组
如何获得每个话题的最重要的n个特征词
1.导入数据
这里我们使用的20newsgroups数据集
查看target_names有哪些类别
Run
2.英文清洗数据
使用正则表达式去除邮件和换行等多余空白字符
使用gensim库的simple_preprocess分词,得到词语列表
保留某些词性的词语 https://www.guru99.com/pos-tagging-chunking-nltk.html
注意:
nltk和spacy安装配置比较麻烦,可以看这篇文章。
自然语言处理库nltk、spacy安装及配置方法 其中nltk语料库和spacy的英文模型均已放置在教程文件夹内~
Run
将将数据content列进行批处理(数据清洗clean_text)
3. 构建文档词频矩阵 document-word matrix
检查数据的稀疏性,
Run
4.构建LDA模型
使用sklearn库的LatentDirichletAllocation
模型表现
Run
5. 如何找到最佳的话题数
LatentDirichletAllocation中有很多参数,调整参数会使得结果发生变化。为了训练出更好的模型,这里我们使用n components和learning decay这两个参数作为示范,设置这两个参数可能的取值范围。
运行时间 半个小时~
查看模型参数
Run
输出参数搜寻出模型的效果并将其可视化
Run
6. 如何查看每个文档的话题信息
LDA会给每个文档分配一个话题分布,其中概率最大的话题最能代表该文档
查看话题分布情况
7.如何可视化LDA
pyLDAvis可视化话题
由于网络问题,这里插不了gif动图,我放之前的文章链接,大家可以看看可视化效果。 手把手教你学会LDA话题模型可视化pyLDAvis库
8. 如何查看话题的特征词组
每个话题都是由带有权重的词组进行表征,是一个二维空间
9.如何获得每个话题的最重要的n个特征词
10. 如何对新文本进行话题预测
给训练好的模型输入新文本,预测该文本的话题
Run