摘要:可视化话题模型。手把手教你学会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

相关文章