利用PyPlot对Gensim中LsiModel训练出的模型 进行可视化

本文介绍如何使用Matplotlib库中的Pyplot模块绘制由Gensim LSI模型生成的主题分布直方图,通过可视化手段展示热点语料的决策率,帮助理解主题模型的输出。

MatPlotLib.PyPlot画直方图:

主要是针对Gensim中LsiModel训练出的模型 进行可视化

#import cv2
#import numpy as np
#img =  cv2.imread('WIN_20180622_10_31_13_Pro.jpg') 
#
#a = np.array(img[:,666][:,0]).astype(np.int32)
#
#
#
#from matplotlib import pyplot as plt
##
#plt.plot(range(len(a)),list(a))
##plt.show()
from pylab import mpl
import time

mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

from matplotlib import pyplot as plt

#with open('lsi_topics_record.txt','r'.encode='utf8') as file:
import pandas as pd
csv = pd.read_csv('lsi_topics_record.csv',header=None)
#fig = plt.figure()
#print(csv)
#print(csv.sample(5))
#csv
#print()
for i in range(len(csv)):
    plt.figure(figsize=(5,80))
    diclist = csv[1].tolist() 
    plt.grid(True)
    s = diclist[i]
    
    ss = s.split('+')
    
    dic = {b[1]:float(b[0]) for b in [ a.strip().split('*') for a in ss if len(a)>8]}
    dic = sorted(dic.items(),key = lambda d:d[1],reverse=True)
    #print(dic)
    plt.xlabel(u'决策率')
    plt.ylabel(u'热点语料')
    
    x_axis = tuple(d[0] for d in dic)
    y_axis = tuple(d[1] for d in dic)
    plt.barh(x_axis, y_axis,align='edge', color='rgb',height=0.7,orientation='horizontal')  # 如果不指定color,所有的柱体都会是一个颜色
    plt.savefig('LSI模型图\\第{}类建模图.png'.format(str(i)), dpi=300, bbox_inches = 'tight')  # 保存为图片
    
#    del diclist
#    del s
#    del ss
#    del dic
#    del x_axis
#    del y_axis
    
#plt.show()
#plt.
    

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南七小僧

打赏后,可以添加微信一对一咨询

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值