WordCloud词云(超详细)
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WordCloud词云(超详细)相关的知识,希望对你有一定的参考价值。
WordCloud词云-学习
1. 安装 wordcloud 模块
- 网络正常情况下命令行输入
pip install wordcloud
,如果提示报错按以下步骤进行安装
pip install wordcloud
- pip安装wordcloud过程中提示pip工具版本低,需pip-10.0.1版本,需先更新pip包管理工具:
python -m pip install --upgrade pip
- pip更新到最新版本后还是安装wordcloud报错
先下载wordcloud‑1.4.1‑cp36‑cp36m‑win_amd64.whl
安装包到本地目录, python为3.6.x版本的下载cp36的包,注意不要下cp37,安装不了的。
-
打开命令行窗口,进入到安装包所在目录位置如
D:\\download
-
输入
pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
回车安装即可。
2. wordcloud 简介
wordcloud 库把词云当作一个WordCloud对象
wordcloud.WordCloud()
代表一个文本对应的词云- 可以根据文本中词语出现的频率等参数绘制词云
- 绘制词云的形状、尺寸和颜色均可设定
- 以WordCloud对象为基础,配置参数、加载文本、输出文件
c = wordcloud.WordCloud() # 配置对象参数
c.generate("wordcloud by python") # 加载词云文本
c.to_file("pywordcloud.png") # 输出词云文件
3. wordcloud 如何将文本转化为词云
- 分隔:以空格分隔单词
- 统计:单词出现次数并过滤
- 字体:根据统计配置字号
- 布局:颜色环境尺寸
4. WordCloud(<参数>)介绍
- width:指定词云对象生成图片的宽度,默认400像素
w=wordcloud.WordCloud(width=600)
- height:指定词云对象生成图片的高度,默认200像素
w=wordcloud.WordCloud(height=400)
- min_font_size:指定词云中字体的最小字号,默认4号
w=wordcloud.WordCloud(min_font_size=10)
- max_font_size:指定词云中字体的最大字号,根据高度自动调节
w=wordcloud.WordCloud(max_font_size=20)
- font_step:指定词云中字体字号的步进间隔,默认为1
w=wordcloud.WordCloud(font_step=2)
- font_path:指定文体文件的路径,默认None
w=wordcloud.WordCloud(font_path="msyh.ttc")
- max_words:指定词云显示的最大单词数量,默认200
w=wordcloud.WordCloud(max_words=20)
- stop_words:指定词云的排除词列表,即不显示的单词列表
w=wordcloud.WordCloud(stop_words="Python")
- mask:指定词云形状,默认为长方形,需要引用
imread()
函数
from scipy.msc import imread
mk=imread("pic.png")
w=wordcloud.WordCloud(mask=mk)
- background_color:指定词云图片的背景颜色,默认为黑色
w=wordcloud.WordCloud(background_color="white")
示例:
text = "life is short, you need python"
w = wordcloud.WordCloud(background_color="white") # 把词云当做一个对象
w.generate(text)
w.to_file("pywordcloud2.png")
5. 词云绘制1
关于实施乡村振兴战略的意见.txt
import jieba
import imageio
from wordcloud import WordCloud
'''
jieba支持三种分词模式:
精确模式lcut(),试图将句子最精确地切开,适合文本分析,单词无冗余;
全模式lcut(s, cut_all=True) ,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义,存在冗余;
搜索引擎模式cut_for_search(s),在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
'''
with open("关于实施乡村振兴战略的意见.txt", "r") as f:
allSentence = f.read()
print(allSentence)
re_move = [',', '。', '\\n', '\\xa0', '-', '(', ')'] # 无效数据
# 去除无关数据
for i in re_move:
allSentence = allSentence.replace(i, "")
pureWord = jieba.lcut(allSentence)
with open("pureRuralRevitalieztion.txt", "w") as f:
for i in pureWord:
f.write(str(i)+" ") # == ' '.join(pureWord),以空格拼接list中元素
with open("pureRuralRevitalieztion.txt", "r") as f:
pureWord = f.read()
# 获取一张背景图片
mask = imageio.imread("chinamap.jpg")
word = WordCloud(background_color="white",\\
width=800,\\
height=800,
font_path='simhei.ttf',
mask=mask,
).generate(pureWord)
word.to_file('乡村振兴词云.png')
# with open("pureRuralRevitalieztion.txt", "w") as f:
# for i in pureWord:
# f.write(i+" ")
#
#
# c = wordcloud.WordCloud() # 配置对象参数
# c.generate(allSentence)
# c.to_file("ruralRevitalieztion.png")
6. 词云绘制2
新时代中国特色社会主义.txt
import jieba
import imageio
from wordcloud import WordCloud
with open("新时代中国特色社会主义.txt", "r") as f:
allSentence = f.read()
print(allSentence)
re_move = [',', '。', '\\n', '\\xa0', '-', '(', ')'] # 无效数据
# 去除无关数据
for i in re_move:
allSentence = allSentence.replace(i, "")
pureWord = jieba.lcut(allSentence)
with open("pureChinaDevelop.txt", "w") as f:
for i in pureWord:
f.write(str(i)+" ")
with open("pureChinaDevelop.txt", "r") as f:
pureWord = f.read()
mask = imageio.imread("chinamap.jpg")
word = WordCloud(background_color="black",
width=800,
height=800,
font_path='simhei.ttf',
mask=mask,
).generate(pureWord)
word.to_file('新时代中国词云.png')
这是当初刚学Python时嵩天老师书上的代码,那时候我学习时,把他书中的内容敲下来,注释到.py文件中,今天复习时,看到了,特地整理出来,感觉那时候记笔记真的好low,当时只会用csdn的文章,但没想过自己写文章。可能事物的发展,人的成长总是曲折缓慢吧!
加油!
感谢!
努力!
以上是关于WordCloud词云(超详细)的主要内容,如果未能解决你的问题,请参考以下文章
[python] 词云:wordcloud包的安装使用原理(源码分析)中文词云生成代码重写