Python绘制词云

这是一篇关于单身生活的感悟集合,文中提到单身带来的自由、独立和自我提升,同时也表达了对爱情的期待。通过词云形式展现了单身者的心声,既有享受当下单身状态的快乐,也有对未来伴侣的向往。文章适合那些在单身与恋爱之间徘徊,寻找生活意义的人们阅读。
摘要由CSDN通过智能技术生成

绘制词云要使用到的库:

1,wordcloud
2,imageio(这个第三方库可以导入很多格式类型的照片,然后又可以将其导出成各种格式的照片,非常好用)

3,matplotlib(数据展示)
4,jieba(中文文本分词)

这是我们要统计的文本数据(可以保存为txt进行练习):

美观,美观,美观,美观,美观,美观,美观,
个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,个性,
性价比,性价比,性价比,性价比,性价比,性价比,性价比,性价比,性价比,性价比,
酷,酷,酷,酷,酷,酷,酷,酷,酷,酷,酷,酷,酷,
1.对于爱情或友情,我只相信一句话:日久见人心,留到最后的才是好的。 我会冷暖自知,更会好自为之。
2.我只是单身 但我并不孤独
3.当我的朋友都去约会,只剩下我自己的时候,我还是会有一丢丢失落和孤独的。我的他,你快点来,不然这么可爱的我好像也要不可爱了。
4.单身是最好的增值期,在不被爱的日子里,你更要爱惜自己
5.两亿分之一的我,很享受现在的生活,希望两亿分之一的你,好好的照顾好自己,该来的总会来
6.我们单身,并不是因为情商低,也并不是因为忘不了谁。而只是稍微清楚自己想要的是什么, 而不是随便抓着个人就告诉自己处着试试。我们,总会遇见那个对的人,相扶到老
7.总嚷着要找个对象,却从不主动勾搭。没喜欢的人,也懒得接受别人的追求。倒也不是那么“宁缺毋滥”,却还是不肯委屈将就。有时感觉单身挺好的,又常常羡慕别人成双入对。这才是很多人单身的日常吧
8.单身无罪,愿你嫁给爱情,好好享受孤独和一个人的日子。因为这样的日子不多了,珍惜一个人。等你遇到了那个值得托付终身的人,单身的日子你会非常怀念。愿所有单身朋友无所畏惧,不要因为流言有压力,也不要畏惧年龄草草的嫁了自己。也不要羡慕别人的爱情,其实你不知道有多少人羡慕你呢
9.凭本事单身 怕什么甜言蜜语
10.22岁的我惧怕着孤独,却在孤独里安安稳稳的驻扎自己的生活。或许人生来孤独,好在,从来不会输给孤独。
11.一个人最好的状态,就是依然相信爱情,期待爱情的美好,同时也能在孤独的日子里爱自己,善待身边的人。先学会做一个温暖的人,然后才会有人来温暖你。我们都会越来越好的。
12.从前喜欢一个人,现在喜欢 一个人。从不适应到佛系OK,舒服最重要
13.我虽然不是单身,但我有一个单身的朋友,说得很对,既然选择了孤单就要在孤单中找到快乐jxh
14.不如意的婚姻不如单身过得幸福
15.谈恋爱总是不由自主去想另外一伴在干什么,他有没有好好的……,分散了自己的注意力,做事效果也在慢慢的下降,在一个安静的环境中看书,思绪也不由自主跑偏了,当没有恋爱时,心无牵挂可以好好的,让单身的自己好好的拼一拼吧, 致单身的我们
16.单身让你有更多的时间和精力用来提升自己
17.非常的赞同,单身真好!
18.不找对象 是觉得自己还没到适合给他人安稳生活的状态,我要待我事业有成 想做什么随时能去做时,再考虑
19.不论你现在身边有没有那个人,你都要朝气蓬勃的,满怀希望的,热气腾腾的,努力去生活,去过好余生。 耐心等待吧,所有的都在来的路上
20.我可以一个人坐公交一直到终点。
21.偶尔羡慕情侣,偶尔庆幸单身,还是单身最好
22.当我还没有找男朋友的想法时,家人亲戚朋友都已经开始幻想我什么时候结婚,其实我不着急,虽然羡慕别人的甜甜的恋爱,羡慕别人的两人三餐日常,但是还是呢句话不想将就,等呢个足够优秀足够对我好,足够温柔的人叭!没事慢慢来
23.单身并不意味着自己有多糟糕,也不是没有能力在谈下一段感情,而是你真的无法再去接受你所希望的往往让你绝望,在你一个人的生活里你很努力生活很精致,你渐渐的迷恋这种生活,这就是所谓的一个人!!
24.顺其自然 好好爱自己 好好生活 晚安呀
25.做一枚热爱生活的单身狗,自己一个人去健身房健身,自己一个人去学习,自己一个人去旅游。过好自己的每一天~
26.照顾好自己,无论是一日三餐,还是白天黑夜。
27.一时单身一时爽,一直单身一直爽。 花太多时间去和另一个人在一起,有时候还会有烦恼,麻烦,还有生气。还不如一个人,整理整理生活,做点好吃的,听首美妙的歌曲,不香吗?非得找个人给自己添堵
28.有对象的幸福,单身的你也想象不到
29.我有点理解一句话:许多已婚人士劝你结婚不是因为她有多幸福,是看你单身爽她却不能而想把你也拖进火坑
30.我上班已经累一天了,下了班一个人安安静静舒舒服服做些自己想做的事,没人打扰没人支配,真的是太享受独处的时光了啊!!!
31.可是我看见那些情侣也是会羡慕的啊
32.单身挺好,要有另一半可能会更好而已
33.一个人挣钱一个人花, 别人买俩我买仨, 单身快乐
34.单身渴望恋爱的感觉,你想象不到
35.祝单身快乐
36.单身一时爽,一直单身一直爽我这个周末睡到下午才醒的人,曾经为了约会不得不早起,现在休息日睡到自然醒好爽
37.单身时尽情享受那份自由和快乐,爱情可遇不可求,来时坦然接受,没有,继续美好生活,毕竟,一个人的世界好过一地鸡毛和心碎的撕扯……
38.剑客,最重要的是没有感情,女人只会影响我拔剑的速度
39.单身不用操心恋爱的烦恼,多好
40.单身虽然快乐,但是人生总要有家,有人陪伴才温暖,没有家就没有单身的我们,还是要找个人结婚,组个家吧
41.所以不明白为什么到了年纪就要结婚生子,你结婚你快乐,但是也不能把你认为的快乐强行让别人也同意吧!三五好友,游山玩水,偶尔小聚哪一个不快乐,都享受着自己的快乐就好。
42.年过三十,单身的快乐享受着,却也在内心无比期待婚姻。更受不了家人的逼婚和日渐年迈的父母。
43.单身时会酸身边有陪伴的甜蜜,周末自己在房间游戏玩腻,无剧可刷时;节日看电影想找个人分享感受时;下班回家看见冷清的房子,吃饭的时候看见一个人的碗筷时。总想找个人来感受一下甜蜜
44.不单身不知道外卖凑单的苦。
45.刚24岁的女博士表示一个人过实在太有趣了曾经一个人玩遍香港迪士尼和海洋公园,现在觉得唯一需要人陪的就是需要麻醉的手术或者检查(比如无痛胃镜),搬家可以叫搬家公司,在家不舒服了可以美团送药,感谢这个时代赐予独居女性如此多的便利,让我们能更好地做自己

统计的词云效果:

在这里插入图片描述

我们把构建词云分为两步:

1,处理文本数据

在生成词云时,wordcloud默认会以空格或标点为分隔符对目标文本进行分词处理。对于中文文本,分词处理需要由用户来完成。一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数

2,产生词云图片

wordcloud库的核心是WordColoud类,所有的功能都封装在WordCloud类中。使用时需要实例 化 一 个 Wo r d C o l o u d 类 的 对 象 , 并 调 用 其generate(text)方法将text文本转化为词云

所以我们采用函数式编程方式编写代码。

一、处理文本数据

jieba支持三种分词模式:

  • 精确模式lcut(),试图将句子最精确地切开,适合文本分析,单词无冗余;
  • 全模式lcut(s, cut_all=True) ,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义,存在冗余;
  • 搜索引擎模式cut_for_search(s),在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
from wordcloud import WordCloud
from imageio import imread
import matplotlib.pyplot as plt
import jieba
 
def read_deal_text():
    with open(r"C:\Users\David\Desktop\all.txt","r",encoding='utf-8') as f: 
        #读取我们的待处理本文
        txt=f.read()
    re_move=[",","。"," ",'\n','\xa0'] #无效数据
       #去除无效数据
    for i in re_move:
        txt=txt.replace(i," ") 
    word=jieba.lcut(txt)  #使用精确分词模式进行分词后保存为word列表   
 
    with open(r"C:\Users\David\Desktop\txt_save.txt",'w') as file:
        for i in word:    
            file.write(str(i)+' ')
    print("文本处理完成")

接着将word列表用空格连接保存到txt_save.txt文件中用于下一步产生词云图片

二、产生词云图片

WordCloud类的常用方法
generate(text) 由text文本生成词云
to_file(filename) 将词云图保存为名为filename的文件

def img_grearte():
    mask=imread(r"C:\Users\David\Desktop\boy.png")
    with open(r"C:\Users\David\Desktop\txt_save.txt","r") as file:
        txt=file.read()
    word=WordCloud(background_color="white",\
                    width=800,\
                   height=800,
                   font_path='simhei.ttf',
                   mask=mask,
                   ).generate(txt)
    word.to_file(r"C:\Users\David\Desktop\test.png")
    print("词云图片已保存")
    
    plt.imshow(word)    #使用plt库显示图片
    plt.axis("off")
    plt.show()

mask=imread(“boy.png”) #用于图片背景,可自行下载png背景透明图片,imread库函数隶属于scipy库,pip在安装wordcloud库时会自动安装依赖库。

font_path=‘simhei.ttf’ #这里我们用到了中文字体simhei.ttf ,wordcloud默认字体是不支持中文

注意:在此boy.png和simhei.ttf都是放在和程序同一目录。

我们创建一个wordcloud的实例对象word,并设置其属性,包括背景颜色、图片尺寸、字体、图片背景,最后生成词云图片并保存,可到程序目录下常看。

后面使用plt库显示图片

三、完整如下:

from wordcloud import WordCloud
from imageio import imread
import matplotlib.pyplot as plt
import jieba
 
def read_deal_text():
    with open(r"C:\Users\David\Desktop\all.txt","r",encoding='utf-8') as f:
        txt=f.read()
    re_move=[",","。"," ",'\n','\xa0']
       #去除无效数据
    for i in re_move:
        txt=txt.replace(i," ") 
    word=jieba.lcut(txt)  #使用精确分词模式
 
    
    with open(r"C:\Users\David\Desktop\txt_save.txt",'w') as file:
        for i in word:    
            file.write(str(i)+' ')
    print("文本处理完成")
 
def img_grearte():
    mask=imread(r"C:\Users\David\Desktop\boy.png")
    with open(r"C:\Users\David\Desktop\txt_save.txt","r") as file:
        txt=file.read()
    word=WordCloud(background_color="white",\
                    width=800,\
                   height=800,
                   font_path='simhei.ttf',
                   mask=mask,
                   ).generate(txt)
    word.to_file(r"C:\Users\David\Desktop\test.png")
    print("词云图片已保存")
    
    plt.imshow(word)    #使用plt库显示图片
    plt.axis("off")
    plt.show()
 
 
read_deal_text()
img_grearte()
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 好的,下面是使用Python绘制词云图的步骤: 1. 安装相应的库:需要安装 wordcloud 和 matplotlib 这两个库。可以使用 pip install 命令进行安装。 2. 准备文本数据:需要准备一段文本数据,可以是从文件中读取或者是从数据库中获取。 3. 清洗文本数据:使用正则表达式或者其他方式对文本进行清洗,去除无用的字符或者词语。 4. 分词:使用 jieba 等分词库对文本进行分词。 5. 统计词频:统计每个词语在文本中出现的次数。 6. 生成词云图:使用 wordcloud 库生成词云图,并使用 matplotlib 库进行可视化。 下面是一个简单的示例代码: ```python import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 读取文本数据 with open('data.txt', 'r', encoding='utf-8') as f: text = f.read() # 分词 words = jieba.cut(text) # 统计词频 word_freq = {} for word in words: if word not in word_freq: word_freq[word] = 0 word_freq[word] += 1 # 生成词云图 wordcloud = WordCloud(background_color='white').generate_from_frequencies(word_freq) # 可视化 plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() ``` 这个示例代码使用 jieba 库对文本进行分词,并使用 WordCloud 库生成词云图。最后使用 matplotlib 库进行可视化。 ### 回答2: Python可以使用多种库来绘制词云图,其中比较常用的是wordcloud库。 首先,需要安装wordcloud库。可以使用pip命令来进行安装,打开命令提示符窗口并输入以下命令: ``` pip install wordcloud ``` 安装完成后,可以导入相应的库并使用其中的函数来绘制词云图。一般情况下,绘制词云图的步骤如下: 1. 导入所需的库: ```python import wordcloud import matplotlib.pyplot as plt ``` 2. 配置词云图的参数: ```python # 配置词云图参数 wordcloud_obj = wordcloud.WordCloud(width=800, height=400, background_color='white') ``` 这里设置了词云图的宽度、高度和背景颜色等参数。 3. 生成词云图: ```python # 生成词云图 wordcloud_obj.generate(text) ``` 其中`text`是用于生成词云图的文本数据。 4. 绘制词云图: ```python # 绘制词云图 plt.imshow(wordcloud_obj, interpolation='bilinear') plt.axis('off') # 隐藏坐标轴 plt.show() ``` 这里使用`imshow`函数来显示词云图,`axis('off')`可以隐藏坐标轴。 以上就是使用Python绘制词云图的基本步骤。根据具体需求,还可以对词云图进行更多的样式调整和处理,比如设置字体、颜色、形状以及词频的处理等。 ### 回答3: Python绘制词云图需要使用第三方库`wordcloud`,下面是绘制词云图的步骤。 首先,我们需要安装`wordcloud`库。在命令行中使用以下命令安装: ``` pip install wordcloud ``` 安装完成后,我们可以开始绘制词云图。首先,导入`wordcloud`模块和`matplotlib`模块: ```python import matplotlib.pyplot as plt from wordcloud import WordCloud ``` 然后,我们需要准备文本数据,可以是一段文字、一篇文章、一本书等。假设我们的文本数据保存在一个字符串变量`text`中。 接下来,我们可以创建一个`WordCloud`对象,并设置相应的参数。例如,可以设置词云图的宽度和高度、背景颜色、字体、最大词频等。以下是设置一些常用参数的示例代码: ```python wc = WordCloud(width=800, height=400, background_color='white', max_words=50, font_path='msyh.ttc') ``` 然后,将文本数据传递给`WordCloud`对象的`generate`方法,生成词云图的数据。例如: ```python wc.generate(text) ``` 接着,可以使用`matplotlib`库绘制词云图。创建一个新的图形并显示词云图: ```python plt.figure(figsize=(10, 5)) plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 最后,运行代码,即可绘制词云图。 需要注意的是,绘制词云图还可以通过设置`mask`参数来指定词云图的形状。`mask`可以是一个图片文件,也可以是一个二维数组。例如,可以使用如下代码设置一个心形的词云图: ```python from PIL import Image # 读取心形图片 heart_mask = np.array(Image.open("heart.png")) # 创建词云对象,并设置形状为心形 wc = WordCloud(mask=heart_mask, background_color='white', font_path='msyh.ttc') # 绘制词云图 plt.figure(figsize=(10, 10)) plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 以上是使用Python绘制词云图的简要步骤。不同的应用场景可能会有不同的参数设置和数据预处理方式,可以根据实际需要进行相应的调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44322234

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值