拓端数据tecdat|Python代写LDA主题模型算法应用
原文链接:http://tecdat.cn/?p=5318
在这篇文章中,我将介绍用于Latent Dirichlet Allocation(LDA)的lda Python包的安装和基本用法。我不会在这篇文章中介绍该方法的理论基础。然而,这个模型的主要参考,Blei etal 2003可以在线免费获得,我认为将语料库(文档集)中的文档分配给基于单词矢量的潜在(隐藏)主题的主要思想是相当容易理解的而这个例子(来自lda)将有助于巩固我们对LDA模型的理解。那么,让我们开始......
安装lda
在之前的帖子中,我介绍了使用pip和 virtualenwrapper安装Python包,请参阅帖子了解更多详细信息:
- 在Ubuntu 14.04上安装Python包
- 在Ubuntu 14.04上的virtualenv和virtualenvwrapper
简而言之,我将提到两种方法:
- 方法1:
我将以用户身份安装lda
这也将安装所需的pbr包。现在我将 在一个设置中提供lda,其中包含我之前安装的所有其他软件包(再次参见上文)。使用此方法,您应该在安装后得到类似的内容:
名称:lda
版本:0.3.2
位置:/home/cstrelioff/.local/lib/python2.7/site-packages
需要: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
使用新故事的标题,我们可以对最可能的主题进行抽样:
可视化
让我们看看一些主题词分布是什么样的。这里的想法是每个主题应该有一个独特的单词分布。在下面的词干图中,每个词干的高度反映了焦点主题中单词的概率:
相关推荐:
标题 |
---|
使用R语言随机波动模型SV处理时间序列中的随机波动率 (2020-04-15 14:49) |
R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型 (2020-04-14 16:27) |
R语言使用随机技术差分进化算法优化的Nelson-Siegel-Svensson模型 (2020-04-12 18:52) |
已迁离北京外来人口的数据画像 (2020-04-11 20:55) |
R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析 (2020-04-10 15:51) |
用R语言用Nelson Siegel和线性插值模型对债券价格和收益率建模 (2020-04-06 11:16) |
R语言LME4混合效应模型研究教师的受欢迎程度 (2020-03-27 15:18) |
R语言Black Scholes和Cox-Ross-Rubinstein期权定价模型案例 (2020-03-25 14:36) |
R语言中的Nelson-Siegel模型在汇率预测的应用 (2020-03-25 14:07) |
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归 (2020-03-06 16:20) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)