文本挖掘及可视化知识链接

我的代码:

# -*- 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 可视化 词云图相关推荐

  1. Python可视化--词云图(中文和英文版)

    中文词云图 #-*-coding:utf-8-*- import jieba import numpy as np import PIL.Image as Image from wordcloud i ...

  2. python可视化词云图WordCloud

    一.WordCloud安装 首先打开命令提示符,输入"pip install wordcloud"安装词云包 问题① 安装包的位置 安装时非常顺利,但是在jupyter noteb ...

  3. 使用Python获取春节档电影影评,制作可视化词云图

    Python获取春节档电影影评,制作可视化词云图 前言 准备工作 采集数据部分 基本思路流程 代码实战 可视化词云图 代码展示 效果展示 前言 春节电影听巳月说都还可以,我不信,我觉得还是要看看看过的 ...

  4. python实现词云图

    python实现词云图 import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud,ImageColorG ...

  5. 运用java爬虫和python做词云图

    前言: 最近有点时间,就写个东西玩玩,就是分析电影评论做成词云图.这次没有采用python去爬取电影评论,而是采用了java中的多线程和线程池去爬取电影评论,但是用评论做词云图使用python写的.如 ...

  6. python中文词云图代码_python词云图与中文分词

    2019-12-12中文文本分词和词云图具体功能介绍与学习代码: import jieba a="由于中文文本的单词不是通过空格或者标点符号来进行分割" #jieba.lcut() ...

  7. Python数据可视化——词云图

    一.配置环境 要生成词云图,必备的插件是wordcloud.课堂上给出了两种安装插件的方法.一是通过调用命令行,输入pip3 install wordcloud进行安装.二是下载whl文件,通过pip ...

  8. python 可以用excel做词云图嘛_今天从零教你开始利用Python打造词云图!

    1. 量身打造属于你的词云图 今天的Python案例是跟着笔者来打造属于自己的词云图.那么什么是词云图呢?我们在百度中来搜索一下,如图所示: 概念:词云图就是由词汇组成类似云的彩色图形.接下来我们就可 ...

  9. 文本数据“关键词渲染”的高频词可视化——词云图。

    目录 前言: 官方示例: 实践示例: 背景说明:基于电影用户评论的数据,通过其中关键词出现的频率做出词云图,从而让阅览者一目了然的看出该电影的正反面评价,甚至电影的分类标签. 数据预处理 1.首先将我 ...

  10. 数据可视化——词云图

    本文目的:将爬取的评论数据进行分词,然后使用词云图进行可视化操作. 使用到的工具:结巴中文分词.Wordcloud库 首先介绍一下两个工具,其中结巴中文分词是一个专门将中文句子进行分词的第三方库,当然 ...

最新文章

  1. Centos7 安装maven3.5.0和git
  2. 51CTO学院三周年,一起成长与奋斗的日子
  3. Matlab中画图以及plot函数及legend函数详解
  4. 蓝桥杯2016初赛-生日蜡烛-枚举
  5. libevent学习笔记 一、基础知识
  6. plc控制可调节阀流程图_PLC控制的水箱液位控制系统毕业论文
  7. 用 Java 写一个植物大战僵尸简易版
  8. 心爱SEO博客开通了请光临百度
  9. Spring Cloud教程 (二)应用程序上下文服务层次结构
  10. paip.基于HTML gui界面的javascript JS实现SLEEP。。
  11. 计步 android 源码,android版简易计步器源码
  12. 二级c语言考试怎么调试程序,计算机二级C语言上机考试操作步骤及流程和注意事项...
  13. 详细剖析PS软件中的通道原理,让你完全理解颜色通道与Alpha通道
  14. android+设置运行内存大小,怎样增大安卓手机的虚拟运行内存RAM ,手机的ram太小....
  15. 动态规划-背包问题求解过程【代码 from eason】
  16. 域用户指定计算机,什么是AD域,如何设置AD域用户仅登录到指定的计算机
  17. Winscp链接linux开发版超时,WinSCP联接linux超时.
  18. 解密凡客的自建配送“如风达”公司
  19. 微信服务商如何申请?
  20. 【Docker系列】docker manifest

热门文章

  1. Servlet3.0之八:基于Servlet3.0的文件上传@MultipartConfig
  2. Madwifi Mad coding:自底向上分析associated_sta的更新过程 —— RSSI和MACADDR等信息获取的底层原理...
  3. xxx.lib(xxx.obj)fatal error LNK1103: debugging information corrupt; recompile module 的解决方案
  4. 李开复:垂直搜索违背了搜索引擎的发展初衷
  5. 对样式overflow的学习
  6. 记录一枚验证URL的js正则表达式
  7. LRU原理和Redis实现
  8. python 部署模型,关于python:机器学习模型python在线服务部署的两种实例
  9. JAVA读锁不使用效果一样_为什么Java的同步集合不使用读/写锁?
  10. 解决ubuntu不能远程连接