python3 词频统计计数分析+可视化词云 jieba+wordcloud 数据分析
hi, 大家好,我是宋哈哈,今天分享一个利用 python 的 jieba 库 和 wordcloud 词云库 做一个字符串的词频分析和词云可视化
编程环境:
python 版本:3.6.8
编辑器:pycharm 2020.1.3 专业版
系统环境:win10 专业版
一、在写代码前,需要准备的是 一个做词云的图片,可以百度找,可以自己用PS设计。也可以保存我下方的图片:保存名为 bj.jpg ---> 切记重命名。
二、在编辑器中 新建一个目录叫 “datafile”,用来保存生成好的 EXCEL 和 词云图片。
三、新建一个 文本文档 后缀为 txt,名为 ci.txt, 用来存储被 统计的字符串。【不用在乎是否换行】
首先是导入库:如果运行报错的,请 自己安装。
#encoding:utf-8
import re # 正则表达式库
import collections # 词频统计库
import numpy as np # numpy数据处理库
import jieba # 结巴分词
import wordcloud # 词云展示库
from PIL import Image # 图像处理库
import matplotlib.pyplot as plt # 图像展示库
from matplotlib import colors
import csv
import pandas as pd
内容代码:
datalist = []excelFilename = 'H列' # 保存文件名称def wordFrequency():# 读取文件fn = open('ci.txt', 'rt', encoding='utf-8') # 打开文件string_data = fn.read() # 读出整个文件fn.close() # 关闭文件# 文本预处理pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除# 文本分词seg_list_exact = jieba.cut(string_data, cut_all=False) # 精确模式分词object_list = []remove_words = [u'的', u',', u'和', u'是', u'随着', u'对于', u'对', u'等', u'能', u'都', u'。', u' ', u'、', u'中', u'在', u'了',u'通常', u'如果', u'我们', u'需要'] # 自定义去除词库for word in seg_list_exact: # 循环读出每个分词if word not in remove_words: # 如果不在去除词库中if len(word) > 2: # 筛选关键词长度print(word, len(word))object_list.append(word) # 分词追加到列表# 词频统计word_counts = collections.Counter(object_list) # 对分词做词频统计word_counts_top = word_counts.most_common(200) # 获取前200最高频的词for words in word_counts_top:data = [words[0], words[-1]]datalist.append(data)# 建立颜色数组,可更改颜色color_list = ['#0000FF', '#CC0033', '#333333']# 调用colormap = colors.ListedColormap(color_list)# 词频展示mask = np.array(Image.open('bj.jpg')) # 定义词频背景wc = wordcloud.WordCloud(font_path='C:/Windows/Fonts/simhei.ttf', # 设置字体格式mask=mask, # 设置背景图max_words=200, # 最多显示词数max_font_size=100, # 字体最大值background_color='white',colormap=colormap,random_state=18)wc.generate_from_frequencies(word_counts) # 从字典生成词云# image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案# wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案wc.to_file(f'datafile/{excelFilename}.jpg')plt.imshow(wc) # 显示词云plt.axis('off') # 关闭坐标轴plt.show() # 显示图像
把统计出来的词频保存为 EXCEL 文件:
def saveExcels():df = pd.DataFrame(datalist,columns=['词语','词频次数'])df.to_excel(f'datafile/{excelFilename}.xlsx')
运行代码:
if __name__ == '__main__':wordFrequency()saveExcels()
完整代码,复制即可用:
#encoding:utf-8
import re # 正则表达式库
import collections # 词频统计库
import numpy as np # numpy数据处理库
import jieba # 结巴分词
import wordcloud # 词云展示库
from PIL import Image # 图像处理库
import matplotlib.pyplot as plt # 图像展示库
from matplotlib import colors
import csv
import pandas as pddatalist = []excelFilename = 'H列' # 保存文件名称def wordFrequency():# 读取文件fn = open('ci.txt', 'rt', encoding='utf-8') # 打开文件string_data = fn.read() # 读出整个文件fn.close() # 关闭文件# 文本预处理pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除# 文本分词seg_list_exact = jieba.cut(string_data, cut_all=False) # 精确模式分词object_list = []remove_words = [u'的', u',', u'和', u'是', u'随着', u'对于', u'对', u'等', u'能', u'都', u'。', u' ', u'、', u'中', u'在', u'了',u'通常', u'如果', u'我们', u'需要'] # 自定义去除词库for word in seg_list_exact: # 循环读出每个分词if word not in remove_words: # 如果不在去除词库中if len(word) > 2: # 筛选关键词长度print(word, len(word))object_list.append(word) # 分词追加到列表# 词频统计word_counts = collections.Counter(object_list) # 对分词做词频统计word_counts_top = word_counts.most_common(200) # 获取前200最高频的词for words in word_counts_top:data = [words[0], words[-1]]datalist.append(data)# 建立颜色数组,可更改颜色color_list = ['#0000FF', '#CC0033', '#333333']# 调用colormap = colors.ListedColormap(color_list)# 词频展示mask = np.array(Image.open('bj.jpg')) # 定义词频背景wc = wordcloud.WordCloud(font_path='C:/Windows/Fonts/simhei.ttf', # 设置字体格式mask=mask, # 设置背景图max_words=200, # 最多显示词数max_font_size=100, # 字体最大值background_color='white',colormap=colormap,random_state=18)wc.generate_from_frequencies(word_counts) # 从字典生成词云# image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案# wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案wc.to_file(f'datafile/{excelFilename}.jpg')plt.imshow(wc) # 显示词云plt.axis('off') # 关闭坐标轴plt.show() # 显示图像def saveExcels():df = pd.DataFrame(datalist,columns=['词语','词频次数'])df.to_excel(f'datafile/{excelFilename}.xlsx')if __name__ == '__main__':wordFrequency()saveExcels()
如果对你有用,别忘记收藏至浏览器收藏夹。感谢阅读。
python3 词频统计计数分析+可视化词云 jieba+wordcloud 数据分析相关推荐
- 词频统计以及分析(词云制作)
对文章进行词频的统计,分析文章的所属类型,分析文章是否满足要求,进行等等操作的时候,就需要进行词频的统计,还有就是制作一个词云图,直观显示文章的比重. 一.对英语文章的分析. 首先对文章进行特征处理( ...
- python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...
词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...
- Python 三国演义文本可视化(词云,人物关系图,主要人物出场次数,章回字数)
文章目录 效果展示 介绍 软件架构 使用说明 导入需要的库 执行main.py 这里以三国演义为例 三国演义.txt alice_mask.png 效果展示 介绍 Python读取小说文本,绘制词云图 ...
- python词云库wordcloud自定义词云制作步骤详解
读书使人充实,讨论使人机智,笔记使人准确-.凡有所学,皆成性格. ---- (英国)培根 文章目录 wordcloud库常规方法 第三方库 读取文件 自定义绘制指定形状的词云 wordcloud库常规 ...
- python词云乱码_python词云库wordCloud使用方法详解(解决中文乱码)
文章中的例子主要借鉴wordColud的examples,在文章对examples中的例子做了一些改动. 一.wordColud设计中文词云乱码 使用wordColud设计词云的时候可能会产生乱码问题 ...
- python怎样安装词云库_python词云库wordcloud的使用方法与实例详解
wordcloud是优秀的词云展示第三方库 一.基本使用 import jieba import wordcloud txt = open("1.txt", "r&quo ...
- R语言生成词云(wordcloud)实战
R语言生成词云(wordcloud)实战 目录 R语言生成词云(wordcloud)实战 #包的安装及导入 #仿真数据
- python词云库——wordcloud
一.安装wordcloud 安装总结: 1.安装 C++编译器(如Dev c++编辑器),并将 安装目录\MinGW64\bin 配置环境变量 2.安装词云库 pip install wordclou ...
- MongoDB 实战(一)基于PyMongo的电影影评分析 | 对数据结果进行可视化展示以及分析 | 评论词云 | 分时间段分析
文章目录 一.运行环境 二.实战介绍 三.获取数据 四.PyMongo 实战 4.1 连接MongoDB.创建集合 4.2 向 MongoDB 插入文档 4.3 查询MongoDB的数据 4.4 同样 ...
- python 引入同一路径的类_python可视化词云
题记:身边总是不经意间能看到词云的效果图.本章介绍python实现词云的方法.效果如下: ( 词云--出现频率越多的词,字体越大 ) 工具篇 1.安装可视化库 pip3 install matplot ...
最新文章
- 形态数轴的非递进现象
- elk-logstash时区问题
- 连接虚拟机mysql无法访问_连接虚拟机mysql无法访问,报错编号1130的解决方法
- Spring Boot 项目瘦身指南,非常实用!
- java spark wordcount_提交任务到spark(以wordcount为例)
- mirna富集分析_经验之谈丨生信分析文章套路原来这么简单!
- 中国科学院数学与系统科学研究院关于2019年招收硕士研究生复试规程
- dbcc_name 空的_DBCC INPUTBUFFER和sys.dm_exec_input_buffer DMF概述
- java 矩阵题目_java练习本(20190611)
- IT项目管理之系统验收
- mybaits.xml文件约束,头部
- java常用开发工具大合集
- 记一次抓包和破解App接口
- Log4j.properties配置详解
- 阿里 P7 到底是怎样的水平?
- 自动整理html书签,Bookmarks Organizer - Chrome书签整理排序
- 最伟大IT人物10强出炉 乔布斯第一盖茨第三
- 《大规模元搜索引擎技(1)》一第1章 绪言
- 计算机课题参与者的学术背景,课题参与有几种方法
- iOS APP反重签名技术详解
热门文章
- iphone模拟器目录
- lis =[2,3,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv'] 将列表lis中的'tt'变成大写(用两种方式)。...
- 书评 《编码: 隐匿在计算机软硬件背后的语言》
- 怎样看开源代码版权_版权声明在开源代码中泛滥成灾
- Java验证邮箱格式是否正确
- 基于遗传算法的TSP和MTSP问题求解(python)
- PS 打开黑屏怎么办?
- 计算机软件如何永久删除,如何彻底删除电脑软件
- Android OTA在线升级一(架构分析)【转】
- win7 oem key