Python绘制词云

绘制词云要使用到的库:

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()

猜你喜欢

转载自blog.csdn.net/weixin_44322234/article/details/111651541