python 可视化 词云图
我的代码:
# -*- coding: utf-8 -*- from pandas import read_csv import numpy as np from sklearn.datasets.base import Bunch import pickle # 导入cPickle包并且取一个别名pickle #持久化类 from sklearn.feature_extraction.text import TfidfVectorizer import jieba import operator # 排序用 from sklearn import metrics from sklearn.externals import joblib import xlwt #导入wordcloud模块和matplotlib模块 import wordcloud import matplotlib.pyplot as plt from scipy.misc import imread'''读取停用词''' def _readfile(path):with open(path, "rb") as fp:content = fp.read()return content''' 读取bunch对象'''def _readbunchobj(path):with open(path, "rb") as file_obj:bunch = pickle.load(file_obj)return bunch'''写入bunch对象'''def _writebunchobj(path, bunchobj):with open(path, "wb") as file_obj:pickle.dump(bunchobj, file_obj)def buildtestbunch(bunch_path, art_test):bunch = Bunch(contents=[])#label=[], # ============================================================================= # for item1 in testlabel: # bunch.label.append(item1) # =============================================================================# testContentdatasave=[] #存储所有训练和测试数据的分词for item2 in art_test:item2 = str(item2)item2 = item2.replace("\r\n", "")item2 = item2.replace(" ", "")content_seg = jieba.cut(item2)save2 = ''for item3 in content_seg:if len(item3) > 1 and item3 != '\r\n':# testContentdatasave.append(item3)save2 = save2 + "," + item3bunch.contents.append(save2)with open(bunch_path, "wb") as file_obj:pickle.dump(bunch, file_obj)print("构建测试数据文本对象结束!!!")def vector_space(stopword_path, bunch_path, space_path):stpwrdlst = _readfile(stopword_path).splitlines() # 读取停用词bunch = _readbunchobj(bunch_path) # 导入分词后的词向量bunch对象# 构建tf-idf词向量空间对象tfidfspace = Bunch(label=bunch.label, tdm=[], vocabulary={})# 权重矩阵tdm,其中,权重矩阵是一个二维矩阵,tdm[i][j]表示,第j个词(即词典中的序号)在第i个类别中的IF-IDF值# 使用TfidVectorizer初始化向量空间模型vectorizer = TfidfVectorizer(stop_words=stpwrdlst, sublinear_tf=True, max_df=0.5, min_df=0.0001, use_idf=True,max_features=15000)# print(vectorizer)# 文本转为词频矩阵,单独保存字典文件tfidfspace.tdm = vectorizer.fit_transform(bunch.contents)tfidfspace.vocabulary = vectorizer.vocabulary_# 创建词袋的持久化 _writebunchobj(space_path, tfidfspace)print("if-idf词向量空间实例创建成功!!!")def testvector_space(stopword_path, bunch_path, space_path, train_tfidf_path):stpwrdlst = _readfile(stopword_path).splitlines() # 把停用词变成列表bunch = _readbunchobj(bunch_path)tfidfspace = Bunch(tdm=[], vocabulary={})#label=bunch.label, # 导入训练集的TF-IDF词向量空间 ★★trainbunch = _readbunchobj(train_tfidf_path)tfidfspace.vocabulary = trainbunch.vocabularyvectorizer= TfidfVectorizer(stop_words=stpwrdlst, sublinear_tf=True, max_df=0.7, vocabulary=trainbunch.vocabulary,min_df=0.001)tfidfspace.tdm = vectorizer.fit_transform(bunch.contents)_writebunchobj(space_path, tfidfspace)print("if-idf词向量空间实例创建成功!!!")if __name__=="__main__": Sdata = []art = []'''============================先导入数据=================================='''file_test = 'F:/goverment/text analyse/type_in.csv'dataset = read_csv(file_test)Sdata = dataset.values[:, :]Sdata=Sdata.tolist()for line in Sdata:art.append(line[1])#line[1]为文本print(len(Sdata))'''==========================================================tf-idf对Bar进行文本特征提取============================================================================'''# 导入分词后的词向量bunch对象test_bunch_path = "F:/goverment/text analyse/trainbunch.bat"test_space_path = "F:/goverment/text analyse/traintfdifspace.dat"stopword_path = "F:/goverment/text analyse/hlt_stop_words.txt"'''============================================================tf-idf对Sart进行文本特征提取=============================================================================='''buildtestbunch(test_bunch_path, art)testvector_space(stopword_path, test_bunch_path, test_space_path, test_space_path)test_set = _readbunchobj(test_space_path)'''测试数据'''#获取已知 id 找 文本txtcut=[] #存放所有词dic={}for i in test_set.vocabulary.keys():txtcut.append(i)dic[test_set.vocabulary[i]]=i#print(dic)#print(test_set.tdm)#print(test_set.tdm[0])#print(dir(test_set))#print(test_set.vocabulary)#print(dir(test_set.tdm))#print(Sdata)#print(nonzero[1])'''final里放的是不超过15的词'''#print(Sdata)final=[]for k in range(len(Sdata)):#遍历每一条文本nonzero=test_set.tdm[k].nonzero()ls=[]ls.append(Sdata[k][0])num=0for i in range(len(nonzero[1])):num=num+1b=test_set.tdm[k, nonzero[1][i]]*100 #test_set.tdm[k, nonzero[1][i]]是第k条文本中,第i个权重非零的词权重a= dic[nonzero[1][i]] +" "+str(round(b,2))+"%"ls.append(a)if num==15:breakfinal.append(ls)'''画词云图'''fig = plt.figure(figsize = (15,15))cloud = wordcloud.WordCloud(font_path='STXINGKA.TTF',mask=imread('water3.png'),mode='RGBA',background_color=None).generate(' '.join(txtcut))img = imread('water3.png')cloud_colors = wordcloud.ImageColorGenerator(np.array(img))cloud.recolor(color_func=cloud_colors)plt.imshow(cloud)plt.axis('off')plt.savefig('watercloud3.png',dpi=400)plt.show()myexcel = xlwt.Workbook()sheet = myexcel.add_sheet("sheet1")si=-1sj=-1for line in final:si=si+1sj=-1for i in line:sj=sj+1sheet.write(si,sj,str(i))myexcel.save("各条分词.xls")#把id存好myexcel = xlwt.Workbook()sheet = myexcel.add_sheet("sheet2")p=0for i in test_set.vocabulary.keys():sheet.write(p,0,i)print(i)sheet.write(p,1,str(test_set.vocabulary[i]))p=p+1myexcel.save("词汇id.xls")
各条分词:
词汇id:
转载于:https://www.cnblogs.com/caiyishuai/p/9590861.html
python 可视化 词云图相关推荐
- Python可视化--词云图(中文和英文版)
中文词云图 #-*-coding:utf-8-*- import jieba import numpy as np import PIL.Image as Image from wordcloud i ...
- python可视化词云图WordCloud
一.WordCloud安装 首先打开命令提示符,输入"pip install wordcloud"安装词云包 问题① 安装包的位置 安装时非常顺利,但是在jupyter noteb ...
- 使用Python获取春节档电影影评,制作可视化词云图
Python获取春节档电影影评,制作可视化词云图 前言 准备工作 采集数据部分 基本思路流程 代码实战 可视化词云图 代码展示 效果展示 前言 春节电影听巳月说都还可以,我不信,我觉得还是要看看看过的 ...
- python实现词云图
python实现词云图 import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud,ImageColorG ...
- 运用java爬虫和python做词云图
前言: 最近有点时间,就写个东西玩玩,就是分析电影评论做成词云图.这次没有采用python去爬取电影评论,而是采用了java中的多线程和线程池去爬取电影评论,但是用评论做词云图使用python写的.如 ...
- python中文词云图代码_python词云图与中文分词
2019-12-12中文文本分词和词云图具体功能介绍与学习代码: import jieba a="由于中文文本的单词不是通过空格或者标点符号来进行分割" #jieba.lcut() ...
- Python数据可视化——词云图
一.配置环境 要生成词云图,必备的插件是wordcloud.课堂上给出了两种安装插件的方法.一是通过调用命令行,输入pip3 install wordcloud进行安装.二是下载whl文件,通过pip ...
- python 可以用excel做词云图嘛_今天从零教你开始利用Python打造词云图!
1. 量身打造属于你的词云图 今天的Python案例是跟着笔者来打造属于自己的词云图.那么什么是词云图呢?我们在百度中来搜索一下,如图所示: 概念:词云图就是由词汇组成类似云的彩色图形.接下来我们就可 ...
- 文本数据“关键词渲染”的高频词可视化——词云图。
目录 前言: 官方示例: 实践示例: 背景说明:基于电影用户评论的数据,通过其中关键词出现的频率做出词云图,从而让阅览者一目了然的看出该电影的正反面评价,甚至电影的分类标签. 数据预处理 1.首先将我 ...
- 数据可视化——词云图
本文目的:将爬取的评论数据进行分词,然后使用词云图进行可视化操作. 使用到的工具:结巴中文分词.Wordcloud库 首先介绍一下两个工具,其中结巴中文分词是一个专门将中文句子进行分词的第三方库,当然 ...
最新文章
- Centos7 安装maven3.5.0和git
- 51CTO学院三周年,一起成长与奋斗的日子
- Matlab中画图以及plot函数及legend函数详解
- 蓝桥杯2016初赛-生日蜡烛-枚举
- libevent学习笔记 一、基础知识
- plc控制可调节阀流程图_PLC控制的水箱液位控制系统毕业论文
- 用 Java 写一个植物大战僵尸简易版
- 心爱SEO博客开通了请光临百度
- Spring Cloud教程 (二)应用程序上下文服务层次结构
- paip.基于HTML gui界面的javascript JS实现SLEEP。。
- 计步 android 源码,android版简易计步器源码
- 二级c语言考试怎么调试程序,计算机二级C语言上机考试操作步骤及流程和注意事项...
- 详细剖析PS软件中的通道原理,让你完全理解颜色通道与Alpha通道
- android+设置运行内存大小,怎样增大安卓手机的虚拟运行内存RAM ,手机的ram太小....
- 动态规划-背包问题求解过程【代码 from eason】
- 域用户指定计算机,什么是AD域,如何设置AD域用户仅登录到指定的计算机
- Winscp链接linux开发版超时,WinSCP联接linux超时.
- 解密凡客的自建配送“如风达”公司
- 微信服务商如何申请?
- 【Docker系列】docker manifest
热门文章
- Servlet3.0之八:基于Servlet3.0的文件上传@MultipartConfig
- Madwifi Mad coding:自底向上分析associated_sta的更新过程 —— RSSI和MACADDR等信息获取的底层原理...
- xxx.lib(xxx.obj)fatal error LNK1103: debugging information corrupt; recompile module 的解决方案
- 李开复:垂直搜索违背了搜索引擎的发展初衷
- 对样式overflow的学习
- 记录一枚验证URL的js正则表达式
- LRU原理和Redis实现
- python 部署模型,关于python:机器学习模型python在线服务部署的两种实例
- JAVA读锁不使用效果一样_为什么Java的同步集合不使用读/写锁?
- 解决ubuntu不能远程连接