python绘制词云图
词云图是文本分析中比较常见的一种可视化手段,将出现频率相对高的词字体相对变大,让重点词,关键词一目了然
主要用到了python的两个库:wordcloud和jieba,直接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
悟空没有尾: 老哥 能指导一下 数据分析的 学习路线吗
CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm
泫溯: [code=plain] eval(str2); %读方案层的判断矩阵 [/code] 请问这个在层次分析法里是什么作用呀
lincong07: 加载权重就会出现问题,怎么解决
m0_48555946: R 语言可以实现嘛?