python绘制词云图

词云图是文本分析中比较常见的一种可视化手段,将出现频率相对高的词字体相对变大,让重点词,关键词一目了然

主要用到了python的两个库:wordcloudjieba,直接pip安装即可

jieba主要用于中文分词,wordcloud主要用于统计词频和绘图

这里主要记下jieba的分词功能:

# -*- coding: utf-8 -*-
import jieba
str = "我爱我的祖国,他的名字叫中国"
list1 = jieba.cut(str)
list2 = jieba.cut(str, cut_all=True)
list3 = jieba.cut_for_search(str)
print("精准模式:" + '/'.join(list1))
print("全模式:" + '/'.join(list2))
print("搜索引擎模式:" + '/'.join(list3))

这里还可以设置自定义词典,比如因为我和我的祖国一刻也不想分割,我们可以将“我的祖国”,‘他的名字’放入自定义词典

自定义词典的格式:一个词占一行,比如我们设置的dict_self.txt是

看下加上自定义字典的效果:

# -*- coding: utf-8 -*-
import jieba
str = "我爱我的祖国,他的名字叫中国"
#使用自定义字典
jieba.load_userdict('dict_self.txt')
list1 = jieba.cut(str)
list2 = jieba.cut(str, cut_all=True)
list3 = jieba.cut_for_search(str)
print("精准模式:" + '/'.join(list1))
print("全模式:" + '/'.join(list2))
print("搜索引擎模式:" + '/'.join(list3))

可以看到我的祖国他的名字都出现了

代码:

from wordcloud import WordCloud
import jieba
import numpy as np
import PIL.Image as Image
def chinese_jieba(text):
    wordlist_jieba=jieba.cut(text)
    space_wordlist=" ".join(wordlist_jieba)
    return space_wordlist
text=open('skill.txt',encoding="utf8").read()
text=chinese_jieba(text)
# 调用包PIL中的open方法,读取图片文件,通过numpy中的array方法生成数组
mask_pic=np.array(Image.open("China.jpg"))
wordcloud = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",#设置字体
                      mask=mask_pic,#设置背景图片
                      background_color="white",#设置背景颜色
                      max_font_size=150,# 设置字体最大值
                      max_words=2000, # 设置最大显示的字数
                       stopwords={'Python'}, #设置停用词,停用词则不再词云图中表示
                      ).generate(text)
image=wordcloud.to_image()
wordcloud.to_file('industryField.png')
image.show()

 学习链接:

1.https://blog.csdn.net/qq_26450765/article/details/81362634

2.https://blog.csdn.net/Tang_Chuanlin/article/details/79862505

发布了62 篇原创文章 · 获赞 118 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_38412868/article/details/101911707