56

LDA模型实战常用知识点

 4 years ago
source link: https://www.tuicool.com/articles/ZvamQva
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

2019 Stata & Python 实证计量与爬虫分析暑期工作坊 还有几天就要开始了。之前在公众号里分享过好几次LDA话题模型的,但考虑的问题都比较简单。 这次我将分享在这个notebook中,将会对以下问题进行实战:

提取话题的关键词

gridsearch寻找最佳模型参数

可视化话题模型

预测新输入的文本的话题

如何查看话题的特征词组

如何获得每个话题的最重要的n个特征词

1.导入数据

这里我们使用的20newsgroups数据集

Mf6RBjv.png!web

查看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)

B36vq2z.png!web

3. 构建文档词频矩阵 document-word matrix

检查数据的稀疏性,

Run

4.构建LDA模型

使用sklearn库的LatentDirichletAllocation

模型表现

Run

5. 如何找到最佳的话题数

LatentDirichletAllocation中有很多参数,调整参数会使得结果发生变化。为了训练出更好的模型,这里我们使用n components和learning decay这两个参数作为示范,设置这两个参数可能的取值范围。

运行时间 半个小时~

查看模型参数

Run

输出参数搜寻出模型的效果并将其可视化

2AFvmeB.jpg!web

Run

6. 如何查看每个文档的话题信息

LDA会给每个文档分配一个话题分布,其中概率最大的话题最能代表该文档

b2yEZvY.png!web

查看话题分布情况

ueeEFrA.png!web

7.如何可视化LDA

pyLDAvis可视化话题

eMBJNfe.jpg!web

由于网络问题,这里插不了gif动图,我放之前的文章链接,大家可以看看可视化效果。 手把手教你学会LDA话题模型可视化pyLDAvis库

8. 如何查看话题的特征词组

每个话题都是由带有权重的词组进行表征,是一个二维空间

QjiuAjU.jpg!web

9.如何获得每个话题的最重要的n个特征词

Nnm2YfI.jpg!web

10. 如何对新文本进行话题预测

给训练好的模型输入新文本,预测该文本的话题

Run


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK