若是您有任何疑问,请在下面发表评论。
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询
欢迎选修咱们的R语言数据分析挖掘必知必会课程!
在这篇文章中,我将介绍用于Latent Dirichlet Allocation(LDA)的lda Python包的安装和基本用法。我不会在这篇文章中介绍该方法的理论基础。然而,这个模型的主要参考,Blei etal 2003能够在线免费得到,我认为将语料库(文档集)中的文档分配给基于单词矢量的潜在(隐藏)主题的主要思想是至关容易理解的而这个例子(来自lda)将有助于巩固咱们对LDA模型的理解。那么,让咱们开始......python
在以前的帖子中,我介绍了使用pip和 virtualenwrapper安装Python包,请参阅帖子了解更多详细信息:git
简而言之,我将提到两种方法:github
我将以用户身份安装lda微信
这也将安装所需的pbr包。如今我将 在一个设置中提供lda,其中包含我以前安装的全部其余软件包(再次参见上文)。使用此方法,您应该在安装后获得相似的内容:app
名称:ldadom
版本:0.3.2python2.7
位置:/home/cstrelioff/.local/lib/python2.7/site-packagespost
须要:pbr,numpy测试
我已经安装了numpy,所以没有修改。大数据
因此,就是这样,lda已经安装好了。让咱们一块儿完成随包提供的示例。
lda github存储库中的示例查看路透社新闻发布的语料库 - 让咱们复制一下并添加一些细节以更好地了解正在发生的事情。此要点提供了一个包含全部要遵循的代码的脚本,名为 ex002_lda.py。首先,咱们作一些导入:
接下来,咱们导入用于示例的数据。这包含在 lda包中,所以这一步很简单(我还打印出每一个项目的数据类型和大小):
从上面咱们能够看到有395个新闻项目(文档)和一个大小为4258的词汇表。文档术语矩阵X具备395个词汇表中每一个4258个词汇单词的出现次数。文档。例如,X [0,3117]是单词3117在文档0中出现的次数。咱们能够找出计数和与之对应的单词(让咱们也获得文档标题):
固然咱们应该指望X 矩阵中有不少零 - 我选择这个例子来得到非零结果。
接下来,咱们初始化并拟合LDA模型。要作到这一点,咱们必须选择主题的数量(其余方法也能够尝试查找主题的数量,但对于LDA,咱们必须假设一个数字)。继续咱们选择的示例:
先前有几个参数咱们保留默认值。据我所知,这只使用对称先验 - 我将不得不更多地研究它(参见Wallach etal 2009讨论这个问题)。
从拟合模型中咱们能够看到主题词几率:
从输出的大小咱们能够看出,对于20个主题中的每个,咱们在词汇表中分配了4258个单词。对于每一个主题,应该对单词的几率进行标准化。咱们来看看前5:
咱们还能够得到每一个主题的前5个单词(按几率):
这让咱们了解了20个主题可能意味着什么 - 你能看到模式吗?
咱们从模型中得到的其余信息是文档主题几率:
查看输出的大小,咱们能够看到395个文档中的每一个文档都有20个主题的分布。这些应该针对每一个文档进行标准化,让咱们测试前5个:
文件: 0 总和: 1.0
文件: 1 总和: 1.0
文件: 2 总和: 1.0
文件: 3 总和: 1.0
文件: 4 总和: 1.0
使用新故事的标题,咱们能够对最可能的主题进行抽样:
让咱们看看一些主题词分布是什么样的。这里的想法是每一个主题应该有一个独特的单词分布。在下面的词干图中,每一个词干的高度反映了焦点主题中单词的几率:
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询
欢迎选修咱们的R语言数据分析挖掘必知必会课程!