LDA模型数据的可视化
"""
执行lda2vec.ipnb中的代码
模型LDA
功能:训练好后模型数据的可视化
""" from lda2vec import preprocess, Corpus
import matplotlib.pyplot as plt
import numpy as np
# %matplotlib inline
import pyLDAvis
try:
import seaborn
except:
pass
# 加载训练好的主题-文档模型,这里是查看数据使用。这里需要搞清楚数据的形式,还要去回看这个文件是怎么构成的
npz = np.load(open('D:/my_AI/lda2vec-master/examples/twenty_newsgroups/lda2vec/topics.pyldavis.npz', 'rb'))
# 数据
dat = {k: v for (k, v) in npz.iteritems()}
# 词汇表变成list
dat['vocab'] = dat['vocab'].tolist() #####################################
## 主题-词汇
#####################################
# 主题个数为10
top_n = 10
# 主题对应10个最相关的词
topic_to_topwords = {}
for j, topic_to_word in enumerate(dat['topic_term_dists']):
top = np.argsort(topic_to_word)[::-1][:top_n] # 概率从大到小的下标索引值
msg = 'Topic %i ' % j
# 通过list的下标获取关键词
top_words = [dat['vocab'][i].strip()[:35] for i in top]
# 数据拼接
msg += ' '.join(top_words)
print(msg)
# 将数据保存到字典里面
topic_to_topwords[j] = top_words import warnings
warnings.filterwarnings('ignore')
prepared_data = pyLDAvis.prepare(dat['topic_term_dists'], dat['doc_topic_dists'],
dat['doc_lengths'] * 1.0, dat['vocab'], dat['term_frequency'] * 1.0, mds='tsne') from sklearn.datasets import fetch_20newsgroups
remove=('headers', 'footers', 'quotes')
texts = fetch_20newsgroups(subset='train', remove=remove).data ##############################################
## 选取一篇文章,确定该文章有哪些主题
############################################## print(texts[1])
tt = dat['doc_topic_dists'][1]
msg = "{weight:02d}% in topic {topic_id:02d} which has top words {text:s}"
# 遍历这20个主题,观察一下它的权重,权重符合的跳出来
for topic_id, weight in enumerate(dat['doc_topic_dists'][1]):
if weight > 0.01:
# 权重符合要求,那么输出该主题下的关联词汇
text = ', '.join(topic_to_topwords[topic_id])
print (msg.format(topic_id=topic_id, weight=int(weight * 100.0), text=text)) # plt.bar(np.arange(20), dat['doc_topic_dists'][1]) print(texts[51])
tt = texts[51]
msg = "{weight:02d}% in topic {topic_id:02d} which has top words {text:s}"
for topic_id, weight in enumerate(dat['doc_topic_dists'][51]):
if weight > 0.01:
text = ', '.join(topic_to_topwords[topic_id])
print(msg.format(topic_id=topic_id, weight=int(weight * 100.0), text=text)) # plt.bar(np.arange(20), dat['doc_topic_dists'][51])
LDA模型数据的可视化的更多相关文章
- 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化
		
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
 - LDA模型了解及相关知识
		
什么是LDA? LDA是基于贝叶斯模型的,涉及到贝叶斯模型离不开“先验分布”,“数据(似然)”和"后验分布"三块.贝叶斯相关知识:先验分布 + 数据(似然)= 后验分布. 贝叶斯模 ...
 - 文本主题抽取:用gensim训练LDA模型
		
得知李航老师的<统计学习方法>出了第二版,我第一时间就买了.看了这本书的目录,非常高兴,好家伙,居然把主题模型都写了,还有pagerank.一路看到了马尔科夫蒙特卡罗方法和LDA主题模型这 ...
 - B/S 端基于 HTML5 + WebGL 的 VR 3D 机房数据中心可视化
		
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
 - BFM模型介绍及可视化实现(C++)
		
BFM模型介绍及可视化实现(C++) BFM模型基本介绍 Basel Face Model是一个开源的人脸数据库,其基本原理是3DMM,因此其便是在PCA的基础上进行存储的. 目前有两个版本的数据库( ...
 - 基于 HTML5 WebGL 和 VR 技术的 3D 机房数据中心可视化
		
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
 - 基于 HTML5 WebGL + VR 的 3D 机房数据中心可视化
		
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
 - 【转载 | 翻译】Visualizing A Neural Machine Translation Model(神经机器翻译模型NMT的可视化)
		
转载并翻译Jay Alammar的一篇博文:Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models Wi ...
 - 【Model Log】模型评估指标可视化,自动画Loss、Accuracy曲线图工具,无需人工参与!
		
1. Model Log 介绍 Model Log 是一款基于 Python3 的轻量级机器学习(Machine Learning).深度学习(Deep Learning)模型训练评估指标可视化工具, ...
 
随机推荐
- VMWare------启动虚拟机时出现“start booting fron CD... Error loading image:DFEAULT.EZB”提示
			
提示详情: start booting fron CD... Error loading image:DFEAULT.EZB 解决方法: iso镜像文件有问题,需要下载正确的镜像文件 MSDN下载地址 ...
 - Java位运算加密
			
创建一个类,通过位运算中的”^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,再与那个指定的 ...
 - Hibernate_day02讲义_使用Hibernate完成CRM客户管理中查询所有客户的操作
 - ECharts 3 -- gauge表盘的配置项
			
绘制一个简单的表盘图表 在绘图前我们需要为 ECharts 准备一个具备高宽的 DOM 容器. <body> <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --& ...
 - cocos2d-x 弹出对话框
			
登陆界面有一点注册按钮,点击之后弹出一个框,让用户输入一些信息; 在网上找的一些方法都是派生一个类,然后自己实现; 我觉得太麻烦了. 我使用分层的方式来显示, 启动界面就一个,背景图片加几个按钮:登陆 ...
 - Python "HTTP Error 403: Forbidden"
			
问题: 执行下面的语句时 def set_IPlsit(): url = 'https://www.whatismyip.com/' response = urllib.request.urlopen ...
 - firefox 好用的插件
			
firefox一直是各位渗透测试必备的利器,这里整理了34款Firefox插件和几款Chrome的插件,其中包含渗透测试.信息收集.代理.加密解密等功能. Firefox插件 1:Firebug Fi ...
 - SVN设置没有写log不能commit
			
操作方法:在SVN的Repositories下,找到要配置的项目,在项目目录下找到hooks文件夹,在其下创建pre-commit.bat文件,把下面复制进去就可以了(无需重启,如果改动,保存bat文 ...
 - Unity3D Shader官方教程翻译(十九)----Shader语法,编写表面着色器
			
Writing Surface Shaders Writing shaders that interact with lighting is complex. There are different ...
 - 《JavaScript 秘密花园》
			
恰巧今天是传统民间重要的节日之一--七夕节: 被大家挂在嘴上最多的一句话便是:有对象了吗?这不-- 这样的话,那咱就先给new出一个对象吧: var boyfriend = new Object(); ...