原文链接: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. mysql练习题及答案_MySQL经典练习题及答案,常用SQL语句练习50题
  2. 「图解」ThreadLocal 在并发问题中的应用
  3. 【雷达对抗】频率测量与频谱分析-频率搜索与测频技术
  4. Linux忘记root密码怎么办?
  5. ORACLE之字符集修改(10g)
  6. 编译使用CEF2623遇到的错误解决办法
  7. Java线程基础(二)
  8. 二分查找 python实现
  9. office 打开wps乱_word打开wps是乱码怎么办
  10. TM(qq) 默认表情丢失
  11. 图片处理view - 成图,
  12. Chrome插件 - 突破百度网盘下载限制(大文件直接下载、使用迅雷下载)
  13. rk3288 android7.1.2 4g模块调试(四)
  14. Python获取外网ip
  15. 赛迪顾问《中国云计算市场研究年度报告》发布:“技术+服务”两手抓 华云数据成为云计算领域的重要核心厂商
  16. python vbs_vbs和python
  17. 动力节点 SpringMVC P44-53
  18. 有意思的程序员老黄历
  19. VMware Workstation 不可恢复错误: (vcpu-0) 解决方法
  20. 导电滑环的用途有哪些呢

热门文章

  1. Linux下模拟多线程的并发并发shell脚本
  2. MongoDBTool-最新进展报告
  3. Spring Boot引起的“堆外内存泄漏”排查及经验总结 1
  4. 300G的python资料等着你
  5. Linux设备驱动程序学习 高级字符驱动程序操作[阻塞型I/O和非阻塞I/O]【转】
  6. nginx的location优先级
  7. 用AB对Webservice做压力测试
  8. centreon与nagios整合
  9. 第五章 字符串字面量---一个特殊的数组
  10. Java-static概述