【实战案例】LDA模型实现—Python文本挖掘

【实战案例】LDA模型实现—Python文本挖掘

1、简介

在机器学习领域,LDA是两个常用模型的简称:Linear Discriminant Analysis和Latent Dirichlet Allocation。本文的LDA是指Latent Dirichlet Allocation,它在主题模型中占有非常重要的地位,常用来文本分类。

LDA由Blei, David M.、Ng, Andrew Y.、Jordan于2003年提出,用来推测文档的主题分布。它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题分布后,便可以根据主题分布进行主题聚类或文本分类。

2、原理

LDA模型它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。此外,一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。

人类生成文档是基于概率选取主题及其对应的词汇的方式,即一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。

那么LDA要做的就是通过文档反推主题。文档到主题服从多项式分布,主题到词服从多项式分布。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。

用LDA来进行主题建模就是要以无指导学习的方法从文本中发现隐含的语义维度-即“Topic”或者“Concept”。隐性语义分析的实质是要利用文本中词项(term)的共现特征来发现文本的Topic结构,这种方法不需要任何关于文本的背景知识。

3、实现过程

这一过程可以通过Python轻松实现。需要的Python 包有:

•pandas,pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。在 Windows 下使用 pip 安装:pip install pandas.•gensim,包含我们要用到的 LDA 模型的一个主题模型包。在 Windows 下使用 pip 安装:pip install gensim.•jieba,是一款优秀的 Python 第三方中文分词库。在 Windows 下使用 pip 安装:pip install jieba.

3.1 导入包

【实战案例】LDA模型实现—Python文本挖掘

3.2 分词

【实战案例】LDA模型实现—Python文本挖掘

3.3 词典化

【实战案例】LDA模型实现—Python文本挖掘

3.4 将文档表示成词袋向量

【实战案例】LDA模型实现—Python文本挖掘

3.5 LDA建模

【实战案例】LDA模型实现—Python文本挖掘

打印主题

【实战案例】LDA模型实现—Python文本挖掘

完整代码

【实战案例】LDA模型实现—Python文本挖掘

输出结果

【实战案例】LDA模型实现—Python文本挖掘

为解决初学者学习上的困难,专门建立的Python学习扣QUN:⑧⑤⑤-④零⑧-⑧⑨③从零基础开始到Python各领域的项目实战教程、开发工具与电子书籍。与你分享企业当下对于python人才需求及学好python的高效技巧,不停更新最新教程!点击加入我们的 python学习圈