Python爬虫入门-python之jieba库制作词云图

在简书上看了很多人分享高大上的词云图的制作,在研究了一番之后,决定自己也动手试一试,奈何小白一个,中间碰到问题老是卡壳老半天,写一写制作过程,啥什么忘了我再来看看。

在看了 向右奔跑大哥的文章后,知道了词云制作过程大致可以分为这么几个过程:

1、利用Python进行数据的抓取

2、进行分词(例如利用jieba)

3、进行分类汇总(例如利用excel)

4、使用词云工具生成词云图(例如利用TAGUL(现在的WordArt.com))

第一步没有写爬虫,我呢,利用电脑上面一份oridinary_world.txt拿来练手:

1.钱当然很重要,这我不是不知道;我一天何尝不为钱而受熬苦!可是,我又觉得,人活这一辈子,还应该有些另外的什么才对……

2.我认为,每个人都有一个觉醒期,但觉醒的早晚决定个人的命运。

3.在这个世界上,不是所有合理的和美好的都能按照自己的愿望存在或实现。

4.生命里有着多少的无奈和惋惜,又有着怎样的愁苦和感伤?雨浸风蚀的落寞与苍楚一定是水,静静地流过青春奋斗的日子和触摸理想的岁月。

5.人和社会,一切斗争的总结局也许都是中庸而已。与其认真,不如随便,采菊东篱下,悠然见南山。有钱就寻一醉,无钱就寻一睡,与过无争,随遇而安。

6.既不懈的追求生活,又不敢奢望生活过多的报酬和宠爱,而是理智而清醒的面对着现实。

7.其实我们每个人的生活都是一个世界,即使最平凡的人也要为他生活的那个世界而奋斗。

8.命运总是不如人愿。但往往是在无数的痛苦中,在重重的矛盾和艰辛中,才使人成熟起来。

9.生活包含着更广阔的意义,而不在于我们实际得到了什么;关键是我们的心灵是否充实

10.人们宁愿去关心一个蹩脚电影演员的吃喝拉撒和鸡毛蒜皮,而不愿了解一个普通人波涛汹涌的内心世界……

11.无论精神多么独立的人,感情却总是在寻找一种依附,寻找一种归宿。

12.真正的爱情不是利己的,而应该是利他的。

13.一个平凡而普通的人,时时都会感到被生活的波涛巨浪所淹没。你会被淹没吗?除非你甘心就此而沉沦!

14.人生啊,是这样不可预测,没有永恒的痛苦,也没有永恒的幸福,生活象流水一般,有时是那么平展,有时又是那么曲折。

15.人之所以痛苦,在于追求错误的东西。如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下。好好的管教你自己,不要管别人。

16.人的生命力,是在痛苦的煎熬中强大起来的。

17.生活不能等待别人来安排,要自己去争取与奋斗!

18.你永远要宽恕众生,不论他有多坏,甚至他伤害过你,你一定要放下,才能得到真正的快乐

19.要知道,春天的道路依然充满泥泞!

20.既要脚踏实地于现实生活,又要不时跳出现实到理想的高台上张望一眼。在精神世界里建立起一套丰满的体系,引领我们不迷失不懈怠。待我们一觉醒来,跌落在现实中的时候,可以毫无怨言地勇敢地承担起生活重担。这是孙少平教给我的道理。只能永远把艰辛的劳动看做生命的必要,即使没有收获的指望,也心平气静地继续耕种。要做到这一点,路还好长。

21.是的,小时候,我们常常把“亲戚”看得多么美好和重要。一旦长大成人,开始独立生活,我们便很快知道,亲戚关系常常是庸俗的;互相设法沾光,沾不上光就翻白眼;甚至你生活中最大的困难也常常是亲戚们造成的;生活同样会告诉你,亲戚往往不如朋友对你真诚。

22.喜欢海,不管湛蓝或是光灿,不管平静或是波涛汹涌,那起伏荡漾的,那丝丝的波动;喜欢听海的声音,不管是浪击礁石,或是浪涛翻滚,那轻柔的,那澎湃的;喜欢看海,不管心情是舒畅的或是沉闷的,不管天气是晴朗的或是阴沉的,那舒心的,那松弛的……

23.连伟人的一生都充满了那么大的艰辛,一个平凡的人吃点苦又算得了什么呢?

                                                                  ......

第二步:利用jieba进行分词

在网上找了一份停用表,保存为txt格式,然后利用jiba库(当然首先你要先安装这个库)编写相关分词代码:

import jieba.analyse

f=open('待分析文件路径','r',encoding='utf-8')

content=f.read()

try:

    jieba.analyse.set_stop_words('停用表路径')

    tags=jieba.analyse.extract_tags(content,topK=100,withWeight=True)    #topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20;withWeight 为是否一并返回关键词权重值,默认值为 False

    for i,j in tags:

        print(i+'\t'+str(int(j*10000)))

finally:

    f.close()

运行以后老是抛出一个编码的异常:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 66: invalid start byte

对于编码、解码问题一直很懵,我花了一个上午也没搞清楚是怎么回事,最后发现前面两份.txt文件有问题,于是将两份.txt重新都另存为,然后在弹出的对话框中在编码的选项卡里面选为“UTF-8”问题终于解决了,我的老天!(此处深深的谈了一口气)

跑起来的结果,大概是这样子的:

生活 854

生命 673

一个 482

世界 479

自己 402

我们 387

痛苦 369

什么 344

平凡 310

奋斗 289

多么 279

没有 273

普通人 271

这样 269

幸福 268

这个 266

亲戚 262

永远 245

人生 240

常常 239

自然法则 234

  ...

第三步:暂时还没用到

第四步:使用在线词云工具生成词云图

1、进入https://wordart.com/create

2、Words:Import words 导入前面生成的关键词和词频

3、Shapes:选择词云图形状,也可以自己添加

4、Fonts:选择字体,由于默认的是英文字体,要生成中文字体需要自行在C:\windows\Fonts添加字体,我选了雅黑。

5、Layout:选择文字的方向

6、点击右侧‘Visualize’ 生成词云图

7、点击底部‘Download and Share’下载图片

生成的词云图就像这样子的:


阅读更多
文章标签: python 数据
个人分类: python爬虫
上一篇Python爬虫入门-python之爬取pexels高清图片
下一篇Python爬虫入门-scrapy爬取拉勾网
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭