原文链接:http://tecdat.cn/?p=5318

原文出处:拓端数据部落公众号

在这篇文章中,我将介绍用于Latent Dirichlet Allocation(LDA)的lda Python包的安装和基本用法。我不会在这篇文章中介绍该方法的理论基础。将语料库(文档集)中的文档分配给基于单词矢量的潜在(隐藏)主题的主要思想是相当容易理解的,而这个例子(来自lda)将有助于巩固我们对LDA模型的理解。

相关视频:文本挖掘:主题模型(LDA)及R语言实现分析游记数据

文本挖掘:主题模型(LDA)及R语言实现分析游记数据

时长12:59


安装lda

简而言之,两种方法:

  • 方法1

我将以用户身份安装lda

$ pip install --user lda

这也将安装所需的pbr包。现在我将 在一个设置中提供lda,其中包含我之前安装的所有其他软件包。使用此方法,您应该在安装后得到类似的内容:

$ pip show lda
---
Name: lda
Requires: pbr, numpy

lda已经安装好了。让我们一起完成示例。

一个例子

查看路透社新闻发布的语料库。首先,我们做一些导入:

import numpy as npimport ldaimport lda.datasets

接下来,我们导入用于示例的数据。这包含在 lda包中,因此这一步很简单(我还输出出每个项目的数据类型和大小):

从上面我们可以看到有395个新闻项目(文档)和一个大小为4258的词汇表。文档术语矩阵X具有395个词汇,表中是每个4258个词汇单词的出现次数。文档。例如,X [0,3117]是单词3117在文档0中出现的次数。我们可以找出计数和与之对应的单词和文档标题:

doc_id = 0
word_id = 3117
print("doc id: {} word id: {}".format(doc_id, word_id))
print("-- count: {}".format(X[doc_id, word_id]))
print("-- word : {}".format(vocab[word_id]))
print("-- doc  : {}".format(titles[doc_id]))

选择模型

接下来,我们初始化并拟合LDA模型。我们必须选择主题的数量(其他方法也可以尝试查找主题的数量,但对于LDA,我们必须假设一个数字)。继续我们选择的示例:

model = lda.LDA(n_topics=20, n_iter=500, random_state=1)

先前有几个参数是我们保留默认值。据我所知,这里只使用对称先验 。

主题字

从拟合模型中我们可以看到主题词概率:

从输出的大小我们可以看出,对于20个主题中的每一个,我们在词汇表中分配了4258个单词。对于每个主题,应该对单词的概率进行标准化。我们来看看前5:

for n in range(5):sum_pr = sum(topic_word[n,:])print("topic: {} sum: {}".format(n, sum_pr))

我们还可以获得每个主题的前5个单词(按概率):

 * 主题 6- 德国 战争 政治 政府* 主题 7- 哈里曼   克林顿 丘吉尔 大使* 主题 8- 俄罗斯 总统 克里姆林宫* 主题 9- 王子 女王 鲍尔斯 教会 王* 主题 10- 辛普森 亿 年前 南- 红衣主教 癌症 教会 生活* 主题 17- 丧葬 教会 城市 死亡* 主题 18- 博物馆  文化 城市 文化* 主题 19- 艺术 展 世纪 城市 之旅

这让我们了解了20个主题可能是什么含义。

文档主题

我们从模型中获得文档主题概率:

doc_topic = model.doc_topic_

查看输出的大小,我们可以看到395个文档中的每个文档都有20个主题的分布。这些应该针对每个文档进行标准化,让我们测试前5个:

for n in rangedocument: 0 sum: 1.0document: 1 sum: 

文件 总和 1.0

文件 总和 1.0

文件 总和 1.0

文件 总和 1.0

文件 总和 1.0

我们可以对最可能的主题进行抽样:

for n in range(10):topic_most_pr = doc_topic[n].argmax

可视化

让我们看看主题词分布是什么样的。每个主题应该有一个独特的单词分布。在下面的词干图中,每个词干的高度反映了主题中单词的概率:

plt.tight_layout()
plt.show()

最后,让我们看一下几个文档的主题分布。这些分布给出了每个文档的20个主题中每个主题的概率。

plt.tight_layout()
plt.show()

  


最受欢迎的见解

1.探析大数据期刊文章研究热点

2.618网购数据盘点-剁手族在关注什么

3.r语言文本挖掘tf-idf主题建模,情感分析n-gram建模研究

4.python主题建模可视化lda和t-sne交互式可视化

5.疫情下的新闻数据观察

6.python主题lda建模和t-sne可视化

7.r语言中对文本数据进行主题模型topic-modeling分析

8.主题模型:数据聆听人民网留言板的那些“网事”

9.python爬虫进行web抓取lda主题语义数据分析

拓端tecdat|Python之LDA主题模型算法应用相关推荐

  1. 机器学习之LDA主题模型算法

    文章目录 1.知道LDA的特点和应用方向 1.1.特点 1.2.应用方向 2.知道Beta分布和Dirichlet分布数学含义 3.了解共轭先验分布 4.知道先验概率和后验概率 5.知道参数α值的大小 ...

  2. Spark机器学习(8):LDA主题模型算法

    1. LDA基础知识 LDA(Latent Dirichlet Allocation)是一种主题模型.LDA一个三层贝叶斯概率模型,包含词.主题和文档三层结构. LDA是一个生成模型,可以用来生成一篇 ...

  3. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  4. LDA主题模型简介及Python实现

    一.LDA主题模型简介 LDA主题模型主要用于推测文档的主题分布,可以将文档集中每篇文档的主题以概率分布的形式给出根据主题进行主题聚类或文本分类. LDA主题模型不关心文档中单词的顺序,通常使用词袋特 ...

  5. 独家 | 使用Python的LDA主题建模(附链接)

    作者:Kamil Polak翻译:刘思婧 校对:孙韬淳本文约2700字,建议阅读5分钟本文为大家介绍了主题建模的概念.LDA算法的原理,示例了如何使用Python建立一个基础的LDA主题模型,并使用p ...

  6. 文本聚类(一)—— LDA 主题模型

    目录 文本聚类 一.LDA 主题模型 1.1 加载数据集 1.2 数据清洗.分词 1.3 构建词典.语料向量化表示 1.4 构建 LDA 模型 1.5 模型的保存.加载以及预测 1.6 小结 Upda ...

  7. 《学术小白的学习之路 07》自然语言处理之 LDA主题模型 01

    本文主要是学习参考杨秀璋老师的博客,笔记总结与记忆. 原文链接 文章目录 书山有路勤为径,学海无涯苦作舟(行行代码要手敲) 零.吃水不忘挖井人 一.LDA主题模型 1.1简介 1.2安装 二.LDA主 ...

  8. python主题建模_在PYTHON中进行主题模型LDA分析

    原文链接:在PYTHON中进行主题模型LDA分析​tecdat.cn 主题建模是一种在大量文档中查找抽象主题的艺术方法.一种作为监督无的机器学习方法,主题模型不容易评估,因为没有标记的"基础 ...

  9. python数据分析论文报告_Calaméo - 【原创】在PYTHON中进行主题模型LDA分析数据分析报告论文(代码+数据) ....

    [ 原 创 ] 定 制 代 写 开 发 辅 导 答 疑 r/python/spss/matlab/WEKA/sas/sql/C++/stata/eviews/Computer science assi ...

  10. LDA主题模型原理解析与python实现

    本文转自:LDA主题模型原理解析与python实现_wind_blast的博客-CSDN博客   python实现: #-*- coding:utf-8 -*- import logging impo ...

最新文章

  1. java怎么把数据封进对象里_(Java)想把数组中一条一条的数据全部放入对象中去..要怎么做呢...
  2. iOS UI基础-7.0 UIScrollView
  3. Nginx应用场景之反向代理
  4. webConfig详细跳转配置.[转]
  5. windows找不到文件gpedit.msc_极简技术|电脑文件全搜索,没有找不到的东西
  6. 关于智能手机的基本知识
  7. Jquery+WeUI开发移动APP应用
  8. VS2010SP1中文版安装问题
  9. linux oracle ora-12162,oracle ORA-12162: TNS:net service name is incorrectly specified
  10. android问卷调查论文设计,基于 android问卷调查app开发与设计.pdf
  11. Problem E. L04-05 计算银行存款余额和利息(单利计算简单问题)
  12. R语言下载GEOquery包
  13. 修改CheckBox选择框、设置选择框颜色
  14. 语音唤醒 mycroft-precise使用记录
  15. TCP选项之SACK选项概述
  16. overleaf / latex 批量添加参考文献
  17. Ubuntu18.04安装微信以及打开闪退问题
  18. python视频教程大全集下载啦!超级全的教程!
  19. 加推超级IP名片——“另类”的新电商
  20. 近百个Android优秀开源项目,覆盖Android开发的每个领域

热门文章

  1. 理解 Delphi 的类(三) - 初识类的属性
  2. YUM更换源(1)--yum找不到安装包
  3. 使用Entity Framework时遇到的问题
  4. Windows XP pro with sp2(x64)VOL版(英文原版)光盘镜像 + 简繁中文语言包 + 有效安装密钥 一些网友都有这样的困惑,Windows XP sp3在安装
  5. 算法学习--链表/Hash--LRU cache
  6. Windows NAS迁移工具
  7. [redis] redis连接远程客户端查询数据
  8. 转:lnmp 搭建手册-黑一路人
  9. cocos2d-x—schedule介绍
  10. 四步帮你分析用户流失原因 - 产品设计GAP模型