栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python词云

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python词云

今天闲着没事,突然想研究一下python的词云怎么玩,在此记录一下

首先是安装worldcloud,这里有一个坑点就是,wordcloud可能会和python的版本冲突而无法下载

解决方法是到https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud,这里是下载wordcloud的地方,记住要下载和自己python版本相同的wordcloud,如果不知道版本号就直接win+R,cmd,python -V查看

 把下载好的whl文件放到你想安装的路径下,我这里是在项目下的venv的scripts安装的

 

安装是命令是pip install wordcloud-1.8.1-cp39-cp39-win_amd64.whl

安装完成后,就是实现词云了

首先是

 需要一张照片和一个文本文件

文本文件放的是要生成的词云内容

照片是作为蒙版背景

第二步是创建py文件

这里我又要骂自己粗心了,要注意文件命名不能是wordcloud不然要报错,这个报错真的很蠢!!

写以下代码

import matplotlib.pyplot as plt #数据可视化
import jieba #词语切割
import wordcloud  #分词
from wordcloud  import WordCloud,ImageColorGenerator,STOPWORDS #词云,颜色生成器,停止词
import numpy as np #科学计算
from PIL import Image #处理图片

def ciyun():
    with open('wordcloud.txt','r',encoding='utf-8') as f: #打开文本进行转码
        textfile=f.read() #读取文件内容
    wordlist=jieba.lcut(textfile)#切割词语
    space_list=' '.join(wordlist)#空格键接词语
    background=np.array(Image.open('beauty.jpg'))
    wc=WordCloud(width=1400,height=2200,
                 background_color="white",mode='RGB',mask=background,#添加蒙版,生成指定形状的词云,并且词云图的颜色可以从蒙版中提取
                 max_words=500,stopwords=STOPWORDS.add('老年人'),#这里设置的是屏蔽词,并添加自己设置的词语
                 font_path='C:WindowsFontsSTZHONGS.ttf', #这里设置是为了能生成汉字,没加这句就不能显示中文
                max_font_size=150,relative_scaling=0.6,random_state=50,#设置字体大小和词频的关联程度为0.4
                 scale=2).generate(space_list)
    image_color=ImageColorGenerator(background)#设置生成词云的颜色,如去掉这两行则字体为默认颜色
    wc.recolor(color_func=image_color)
    plt.imshow(wc) #显示词云
    plt.axis('off')#关闭x,y轴
    plt.show()#显示
    wc.to_file('test.jpg')#保存词云图
def main():
    ciyun()

if __name__ =='__main__':
    main()

写完后运行:

 stylecolud是基于wordcloud的python包并且添加了一些有趣的功能

import jieba
import stylecloud
def ciyun():
    with open('wordcloud.txt','r',encoding='utf-8')as f:
        word_list=jieba.cut(f.read())
        result=" ".join(word_list) #分词用空格隔开
    stylecloud.gen_stylecloud(
        text=result, #上面分词的结果作为文本传给text参数
        size=512,
        font_path='msyh.ttc',#设置字体
        palette='cartocolors.qualitative.Pastel_7', # 调色方案选取,从palettable里选择
        gradient='horizontal',#渐变色方向选了垂直方向
        icon_name='fab fa-weixin',#蒙版选取,从Font Awesome里选
        output_name='test_ciyun.png'#输出词云图
    )
def main():
    ciyun()
if __name__ == '__main__':
        main()

运行结果;

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/276067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号