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 数据分析相关推荐

  1. 词频统计以及分析(词云制作)

    对文章进行词频的统计,分析文章的所属类型,分析文章是否满足要求,进行等等操作的时候,就需要进行词频的统计,还有就是制作一个词云图,直观显示文章的比重. 一.对英语文章的分析. 首先对文章进行特征处理( ...

  2. python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...

    词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...

  3. Python 三国演义文本可视化(词云,人物关系图,主要人物出场次数,章回字数)

    文章目录 效果展示 介绍 软件架构 使用说明 导入需要的库 执行main.py 这里以三国演义为例 三国演义.txt alice_mask.png 效果展示 介绍 Python读取小说文本,绘制词云图 ...

  4. python词云库wordcloud自定义词云制作步骤详解

    读书使人充实,讨论使人机智,笔记使人准确-.凡有所学,皆成性格. ---- (英国)培根 文章目录 wordcloud库常规方法 第三方库 读取文件 自定义绘制指定形状的词云 wordcloud库常规 ...

  5. python词云乱码_python词云库wordCloud使用方法详解(解决中文乱码)

    文章中的例子主要借鉴wordColud的examples,在文章对examples中的例子做了一些改动. 一.wordColud设计中文词云乱码 使用wordColud设计词云的时候可能会产生乱码问题 ...

  6. python怎样安装词云库_python词云库wordcloud的使用方法与实例详解

    wordcloud是优秀的词云展示第三方库 一.基本使用 import jieba import wordcloud txt = open("1.txt", "r&quo ...

  7. R语言生成词云(wordcloud)实战

    R语言生成词云(wordcloud)实战 目录 R语言生成词云(wordcloud)实战 #包的安装及导入 #仿真数据

  8. python词云库——wordcloud

    一.安装wordcloud 安装总结: 1.安装 C++编译器(如Dev c++编辑器),并将 安装目录\MinGW64\bin 配置环境变量 2.安装词云库 pip install wordclou ...

  9. MongoDB 实战(一)基于PyMongo的电影影评分析 | 对数据结果进行可视化展示以及分析 | 评论词云 | 分时间段分析

    文章目录 一.运行环境 二.实战介绍 三.获取数据 四.PyMongo 实战 4.1 连接MongoDB.创建集合 4.2 向 MongoDB 插入文档 4.3 查询MongoDB的数据 4.4 同样 ...

  10. python 引入同一路径的类_python可视化词云

    题记:身边总是不经意间能看到词云的效果图.本章介绍python实现词云的方法.效果如下: ( 词云--出现频率越多的词,字体越大 ) 工具篇 1.安装可视化库 pip3 install matplot ...

最新文章

  1. 形态数轴的非递进现象
  2. elk-logstash时区问题
  3. 连接虚拟机mysql无法访问_连接虚拟机mysql无法访问,报错编号1130的解决方法
  4. Spring Boot 项目瘦身指南,非常实用!
  5. java spark wordcount_提交任务到spark(以wordcount为例)
  6. mirna富集分析_经验之谈丨生信分析文章套路原来这么简单!
  7. 中国科学院数学与系统科学研究院关于2019年招收硕士研究生复试规程
  8. dbcc_name 空的_DBCC INPUTBUFFER和sys.dm_exec_input_buffer DMF概述
  9. java 矩阵题目_java练习本(20190611)
  10. IT项目管理之系统验收
  11. mybaits.xml文件约束,头部
  12. java常用开发工具大合集
  13. 记一次抓包和破解App接口
  14. Log4j.properties配置详解
  15. 阿里 P7 到底是怎样的水平?
  16. 自动整理html书签,Bookmarks Organizer - Chrome书签整理排序
  17. 最伟大IT人物10强出炉 乔布斯第一盖茨第三
  18. 《大规模元搜索引擎技(1)》一第1章 绪言
  19. 计算机课题参与者的学术背景,课题参与有几种方法
  20. iOS APP反重签名技术详解

热门文章

  1. iphone模拟器目录
  2. lis =[2,3,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv'] 将列表lis中的'tt'变成大写(用两种方式)。...
  3. 书评 《编码: 隐匿在计算机软硬件背后的语言》
  4. 怎样看开源代码版权_版权声明在开源代码中泛滥成灾
  5. Java验证邮箱格式是否正确
  6. 基于遗传算法的TSP和MTSP问题求解(python)
  7. PS 打开黑屏怎么办?
  8. 计算机软件如何永久删除,如何彻底删除电脑软件
  9. Android OTA在线升级一(架构分析)【转】
  10. win7 oem key