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

词云生成 python wordcloud库

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

词云生成 python wordcloud库

目录

前言

一、程序展示

二、代码讲解

1.准备数据:

2.初始化并生成词云


前言

 词云是一个很炫酷的工具,它能够把枯燥无味的句子中的单词放到一张空白页面上,单词出现频率越高,空白页上显示的单词就越大。我们想用这个代码段来生成一张词云,最好还有特定形状,这样更酷一点。该程序一共分两个部分:1.数据准备 2.数据写入并生成词云


一、程序展示
import wordcloud, jieba, imageio
with open(r"text.txt","a") as file_:
    content = "蛋白质(protein)是组成人体一切细胞、组织的重要成分。机体所有重要的组成部分都需要有蛋白质的参与。一般说,蛋白质约占人体全部质量的百分之十八,最重要的还是其与生命现象有关。蛋白质是生命的物质基础,是有机大分子,是构成细胞的基本有机物"
    file_.write(content)
with open("text.txt","r") as file:
    output=file.read()
shape=imageio.imread("summer1.jpg")
cut1=jieba.lcut(output)
perfect=" ".join(cut1)
font="楚辰体_.ttf"
w=wordcloud.WordCloud(width=600,height=400,max_words=120,max_font_size=70,background_color="white",font_path=font,mask=shape)
w.generate(perfect)
w.to_file("summer.png")


二、代码讲解

1.准备数据:

第二行到第六行其实就是数据的写入读出,没有什么实际意义。我们从第七行说起。。。第七行加载图片并将他转换成wordcloud可识别的图片载体。这一步为的是给词云框定一个形状。注意:图片背景什么都不能有,不然imageio可能无法识别出正确的形状。

接下来对于英语输入,就不用jieba这两行,可以直接跳到w=wordcloud.WordCloud()这一步——初始化词云。对于中文输入,我们就需要用jieba.lcut(output) 先将这段中文输入砍成一个个词(像“了”,“的”,这样没有实际意义的词他不会放到词云中),再把他们用jieba." ".join(cut1),即用空格再把词按顺序拼接回句子。

为什么英文就可以直接初始化而中文还要多三步呢?这是因为英文的标点符号包括空格wordcloud库是能够看懂的,可是对于中文的标点符号他就犯了难,不知道要如何把中文句子分割成一个个词。这个时候就需要jieba库的帮助,把中文单词进行分隔并重新组合。然后就是加载中文字体,我这里下载了“楚辰体”。(大家别忘了把字体,图片和程序保存在一个文件夹里面)

2.初始化并生成词云

创建词云对象w,我们看到WordCloud()里面有好多的参数设置,有长宽,有最大字体设置,还有单词展示数量上限,背景颜色,字体样式和词云形状设置。我们都可以试一下,看看怎么搭配最好看。然后就是在generate()方法中输入句子并生成词云,再用w.to_file()保存词云并起名为:”summer.png"。

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

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

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