前述

本文需要的两个Python类库 
jieba:中文分词分词工具 
wordcloud:Python下的词云生成工具

写作本篇文章用时一个小时半,阅读需要十分钟,读完该文章后你将学会如何将任意中文文本生成词云 
Python词云 wordcloud 十五分钟入门与进阶 
Python中文分词 jieba 十五分钟入门与进阶

代码组成简介

  1. 代码部分来源于其他人的博客,但是因为bug或者运行效率的原因,我对代码进行了较大的改变
  2. 代码第一部分,设置代码运行需要的大部分参数,你可以方便的直接使用该代码而不需要进行过多的修改
  3. 第二部分为jieba的一些设置,当然你也可以利用isCN参数取消中文分词
  4. 第三部分,wordcloud的设置,包括图片展示与保存

如果你想用该代码生成英文词云,那么你需要将isCN参数设置为0,并且提供英文的停用词表,但是我更推荐你使用Python词云 worldcloud 十五分钟入门与进阶这篇文章中的代码,因为它更简洁,更有利于使用’

Use the code by comment

关于该程序的使用,你可以直接读注释在数分钟内学会如何使用它

# - * - coding: utf - 8 -*-
#
# 作者:田丰(FontTian)
# 创建时间:'2017/5/23'
# 邮箱:fonttian@163.com
# CSDN:http://blog.csdn.net/fontthrone
from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
import jieba
# jieba.load_userdict("txt\userdict.txt")
# 添加用户词库为主词典,原词典变为非主词典
from wordcloud import WordCloud, ImageColorGenerator# 获取当前文件路径
# __file__ 为当前文件, 在ide中运行此行会报错,可改为
# d = path.dirname('.')
d = path.dirname(__file__)stopwords = {}
isCN = 1 #默认启用中文分词
back_coloring_path = "img/lz1.jpg" # 设置背景图片路径
text_path = 'txt/lz.txt' #设置要分析的文本路径
font_path = 'D:\Fonts\simkai.ttf' # 为matplotlib设置中文字体路径没
stopwords_path = 'stopwords\stopwords1893.txt' # 停用词词表
imgname1 = "WordCloudDefautColors.png" # 保存的图片名字1(只按照背景图片形状)
imgname2 = "WordCloudColorsByImg.png"# 保存的图片名字2(颜色按照背景图片颜色布局生成)my_words_list = ['路明非'] # 在结巴的词库中添加新词back_coloring = imread(path.join(d, back_coloring_path))# 设置背景图片# 设置词云属性
wc = WordCloud(font_path=font_path,  # 设置字体background_color="white",  # 背景颜色max_words=2000,  # 词云显示的最大词数mask=back_coloring,  # 设置背景图片max_font_size=100,  # 字体最大值random_state=42,width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离)# 添加自己的词库分词
def add_word(list):for items in list:jieba.add_word(items)add_word(my_words_list)text = open(path.join(d, text_path)).read()def jiebaclearText(text):mywordlist = []seg_list = jieba.cut(text, cut_all=False)liststr="/ ".join(seg_list)f_stop = open(stopwords_path)try:f_stop_text = f_stop.read( )f_stop_text=unicode(f_stop_text,'utf-8')finally:f_stop.close( )f_stop_seg_list=f_stop_text.split('\n')for myword in liststr.split('/'):if not(myword.strip() in f_stop_seg_list) and len(myword.strip())>1:mywordlist.append(myword)return ''.join(mywordlist)if isCN:text = jiebaclearText(text)# 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数
wc.generate(text)
# wc.generate_from_frequencies(txt_freq)
# txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)]
# 从背景图片生成颜色值
image_colors = ImageColorGenerator(back_coloring)plt.figure()
# 以下代码显示图片
plt.imshow(wc)
plt.axis("off")
plt.show()
# 绘制词云# 保存图片
wc.to_file(path.join(d, imgname1))image_colors = ImageColorGenerator(back_coloring)plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
# 绘制背景图片为颜色的图片
plt.figure()
plt.imshow(back_coloring, cmap=plt.cm.gray)
plt.axis("off")
plt.show()
# 保存图片
wc.to_file(path.join(d, imgname2))

Python + wordcloud + jieba 十分钟学会用任意中文文本生成词云相关推荐

  1. Python + wordcloud + jieba 十分钟学会生成中文词云

    前述 本文需要的两个Python类库 jieba:中文分词分词工具 wordcloud:Python下的词云生成工具 写作本篇文章用时一个小时半,阅读需要十分钟,读完该文章后你将学会如何将任意中文文本 ...

  2. Python 任意中文文本生成词云 最终版本

    前叙 利用下面的代码你将可以将任意中文文本生成词云,其分词部分由jieba,NLPIR2016两个部分组成,生成词语由worldcloud负责,默认会自动发现文本中的20个新词并添加到词库中,当然你也 ...

  3. Python爬取唐人街探案3豆瓣短评并生成词云

    爬取唐人街探案3短评过程 要爬取的URL: https://movie.douban.com/subject/27619748/comments?start=20&limit=20&s ...

  4. 爬虫数据云词图片怎么做?小姐姐教你用python做B站弹幕爬虫,并进行数据分析生成词云

    hello大家好,我是你们的可爱丸,大家平时在B站看视频时有没有开弹幕的习惯呢?如果不把视频从头看到尾,那么多弹幕,我们怎么快速的知道大家都说了些什么并且持有什么观点呢? 今天小姐姐就教你做一个简单的 ...

  5. Python单线程爬取QQ空间说说存入MySQL并生成词云(超详细讲解,踩坑经历)

    利用python爬取好友说说并分析 看了网上的许多博客,基本上都是一个样,基本的知识也没详细解释,我这次也想跟大家仔细分析一下,自己还是要有一定爬虫基础,本人技术有限,如果本文哪有错误或不够准确的地方 ...

  6. Python 通过文本生成词云

    首先安装以下库 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba pip install -i https://pypi.tu ...

  7. python爬取网易云音乐薛之谦歌词数据,生成词云

    老薛最近频频上热搜,因为老薛的歌大部分是自己作词,所以感觉他的歌词和他应该有某种情感表达和联系吧. 于是用python爬了网易云音乐中老薛的歌词数据,并简单用wordcloud写了个词云统计. 难过, ...

  8. python 股票_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

  9. python 炒股_十分钟学会用Python交易股票

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门.创建自己的量化策略代码 .难易度:入门级.从一下几点说起: ...

最新文章

  1. https://www.exploit-db.com/下载POC比较完善的代码
  2. Jetson nano刷好机之后需要做的准备工作
  3. 从“大数据”到“智能数据”
  4. 【区块链】GO语言区块链项目——超级账本
  5. MySQL8.0.x 版本安装步骤傻瓜式教程【官方版】
  6. arch mysql日志位置_MySQL 日志文件与相关参数
  7. 微软职位内部推荐-SW Engineer II for Skype
  8. java vk减号_Vue入门经常使用指令
  9. 云痕大数据 家长登录_云痕大数据查成绩app
  10. 基于Pytorch实现GAT(图注意力网络)
  11. 8.21. Pseudo-Types
  12. Kubuntu samba安装
  13. 论文结尾参考文献形式
  14. 词云可视化——四行代码轻松上手
  15. 给大家分享一个很好用的屏幕共享小软件
  16. onclick事件传参时传中文传不过去
  17. StarRocks官网摘要笔记
  18. 历年国二c语言真题百度网盘 下载,历年国家计算机二级C语言上机国二真题整理100套...
  19. 全国计算机二级flash,国家计算机二级考试WEB程序复习重点:制作Flash相册
  20. 分享|自己平时常用的几款效率工具

热门文章

  1. 集体备课模板_幼儿教师资格证面试试讲万能模板和历年真题,看完轻松过面试!...
  2. Ubuntu安装中文语言包
  3. MySQL不使用逗号_Mysql 不能使用逗号的情况
  4. datatables 展开 折叠_更成熟的三星Z Fold2 折叠屏发展迈出关键一步
  5. c语言指针写鞍点,c语言——鞍点
  6. 会议室时间预约前端_号外!会议室预约流程为您贴心上线
  7. java自定义表单系统_表单识别:自定义表单模板无需额外定制
  8. android 动态控制截屏,应用助手for Android新版本:可动态截屏存图
  9. oracle更改文件,Oracle修改数据文件名以及移动数据文件
  10. oracle数据库函数手册,oracle函数大全连载(四)T