WordCloud 词云生成 II,wordcloud生成词云三个步骤函数
wordCloud git地址:https://github.com/a穆勒/word _ cloud
wordColud示例地址:https://github。com/a mueller/word _ cloud/tree/master/examples
文章中的例子主要参考wordColud的例子,在文章中对例子中的例子进行了一些变更。
另一方面,wordColud设计中文云乱码使用wordColud设计语言云时可能会出现乱码问题100 .单词颜色的默认字体不支持中文,因此只需替换wordColud的默认字体就可以正常显示中文。
1、下载字体(支持中文)
下载字体链接:http://www。字体5。com。cn/ziti Xia zai/1/151。html,并将wordColud中的默认字体替换为辛黑(黑体)。
2、替换默认字体
答:在字体文件*.切向流过滤字体文件(simhei.tff)已复制到wordColud的安装文件夹中,单击蟒蛇(python)李b站
其中出现矩形框的是wordColud的默认字体,椭圆形边框是下载的字体。
乙、更改wordcolud.py文件中的字体设置,然后打开修改后的路径下的wordcolud.py文件,找到以下框中的这一行(29行)
将系统的DroidSansMono.tff修正为simhei.tff即可。
二100 . word colud范例1、设计一个简单的圆形词云
importnumpyasnpimportmatplotlib。pyplotaspltfromwodcloudimportwordcloud,stopwodsfrompilimportimagefromosimportpathamptlotlib。pyplotasplt #中文PLT。RC params[ font。无衬线]=[负=falseimportOSimportrandom,())))))000000000000000000000000000第二第三第四000000000000000065:300(mask=(x))mask=mask(WC。生成(文本))x轴和y轴坐标隐藏在PLT.axis (off ) plt.show ) WC,插值=双线性)PLT .中
2、以图片形状作为背景设计词云
以蜡笔小新的这张图像为背景,设计语言之云。我们通过读取一个文本文件(文本文件)文件,文件中包含了很多段落。然后,用街霸对句子进行分词,去掉停用词后,生成语言云的照片。
a、读取文件内容
使用街霸分词后,必须用空格分隔单词之间。否则,单词云发生时会回到一个单词。
""中文分词" " " def segment _ words(text):article _ contents= # jieba "使用分词words=jieba.cut)文本,剪切
停止词含有标点符号和实际上没有意义的词,所以有必要去掉这些词。
从该文件中读取" " def get _ stop words(:dir _ path=path。dirname(_ _ file _)if)_ file _(在lo名称中)获取txt/stopwords.txt ),创建用于保存禁止使用的字停用字词=set ) #的设置集合)文件f=o
pen(stopwords_path, r ,encoding= utf-8 )line _ contents=f . readline()while line _ contents:#去掉回车行内容=行内容。替换( \ n , ).替换( \t , ).替换( \u3000 ,)停用字词add(line _ contents)line _ contents=f . readline()返回停用字词c、生成词云图片
def drow_mask_wordColud(): #获取当前文件的父目录d=路径。dirname(_ _ file _ _)if _ _ file _ _ in locals()else OS。getcwd()mask=NP。数组(图像。打开(路径。加入(d, img/test。jpg ))text=open(路径。join(d, txt/test.txt ), r ,encoding=utf-8 ).阅读()。替换( \n , ).替换( \t , ).替换( \u3000 , )#对文本进行分词text=segment_words(text) #获取停用词停用字词=get _停用字词()#创建词云 max_words:显示词的数量面具:背景停用词:停用词,是一个设置集合边距:词之间的间隔背景颜色:词云图片背景颜色 wc=WordCloud(max_words=100,mask=mask,background_color=white ,stopwords=stopwords,margin=10,random_state=1).生成(文本)default _ colors=WC。to _ array()# #保存词云图片# WC。to _ file( a _ new _ hope。png )PLT。im show(default _ colors,interpolation=双线性)plt.axis(off) plt.show()
3、自定义词云的颜色
从关键字云导入WordCloud,get _ single _ color _ func导入matplotlib。 py绘图为PLT 定义一个字体颜色设置类 class GroupedColorFunc(object):def _ _ init _ _(self,color_to_words,default _ color):self。color _ func _ to _ words=[(get _ single _ color _ func(color),set(words)) for (color,words)in color _ to _ words。items()]self。def _ single _ color _ func=get _ color _ func(default _ color)def get _ color _ func(self,word): try: #设置每个词的颜色color _ func=next(color _ func for(color _ func,words)in self。color _ func _ to _ words if word in word)除了停止迭代:#词的默认颜色color _ func=selfdefault _ color _ func return color _ func def _ _ call _ _(self,word,* * kwargs):返回self。get _ color _ func(word)(word,* * kwargs)if _ _ name _ _= _ _ main _ _ :text=第一第二第三第四第五第六 #创建词云WC=单词云(collocations=False,background_color=white ).生成(文本)#设置词的颜色color_to_words={ #使用RGB来设置词的颜色#00ff00:[第一,第五],红色:[第三,第六],黄色:[第二] } #设置词默认的颜色default _ color= blue grouped _ color _ func=grouped color func(color _ to _ words,default_color) #设置词云的颜色WC。re color(color _ func=grouped _ color _ func)#显示词云图plt.figure() plt.imshow(wc,interpolation=双线性)plt.axis(off) plt.show()通过词的颜色设置类,来设置不同词的颜色。
4、自定义突出词的重要程度
在生成词云的时候,默认使用的是使得词频高的词更加突出,突出的词会比较大,有时候我们已经计算出了词的权重,想通过词云图来突出权重大小的差别。
来自wordcloud导入word云导入matplotlib。py plot as pltimport numpy as NP def get _ mask():x,y=np.ogrid[:300,300]mask=(x-150)* * 2(y-150)* * 2 130 * * 2 mask=255 * mask。astype(int)return mask if _ _ name _ _= _ _ main _ _ :#每个词的权重text={ 第一:0.1,第二:0.2,第三:0.3,第四:0.4,第五:0.5 } WC=词云(background _ color= white ,mask=get _ mask())WC。生成频率(文本)计划。轴(“关闭”)PLT。im show(WC,插值=双线性)plt.show()
5、保存词云图片
WC。to _ file("test。png")git项目地址:https://github。com/steel self/NLP _ learn/tree/master/word colud _ curse
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。