jieba库的使用与词云

一、准备

在制作词云之前我们需要自行安装三个库,它们分别是:jieba, wordcloud, matplotlib

安装方法基本一致,下面我以安装wordcloud的过程为例。

第一步,按下Win+R打开命令输入框,并输入cmd,点击确定

 

第二步,找到IDLE文件(即平时打代码的程序),右击,点击属性,得到如下界面,再点击打开文件所在的位置

 

 

打开Scripts文件,可以看到pip文件

 

 

将pip文件直接拖至刚才输入cmd打开的界面

在pip.exe后方输入install wordcloud(注意以空格为间隔),然后点击回车,这样我们就安装好了wordcloud库函数

剩余两个jieba和matplotlib都是同样的操作,只需把上文中的wordcloud替换即可,这里就不再操作了

二、对文本中出现的文字频率进行统计

首先我们需要找到一篇文章,将其弄成txt格式的文件,这里我在网上下载了小说《盗墓笔记》

下载完成后需将txt文件与编写程序的文件放置在同一文件夹中

然后就是编写代码了,代码如下

 1 import jieba
 2 txt = open("盗墓笔记.txt", "r", encoding='utf-8').read()
 3 words  = jieba.lcut(txt)
 4 counts = {}
 5 for word in words:
 6     if len(word) == 1:
 7         continue
 8     else:
 9         counts[word] = counts.get(word,0) + 1
10 items = list(counts.items())
11 items.sort(key=lambda x:x[1], reverse=True) 
12 for i in range(10):
13     word, count = items[i]
14     print ("{0:<10}{1:>5}".format(word, count))

运行程序,为节省时间,我只让程序输出频次最高的前十个词,效果如下

这样,统计词语频次的程序就搞定了

三、使小说中出现的词语以词云输出

这一步跟上一步统计频次一样的,我们都得将python程序与小说放置在同一文件夹中

然后就输入以下代码

 1 from wordcloud import WordCloud
 2 import matplotlib.pyplot as plt #绘制图像的模块
 3 import jieba     #jieba分词
 4 
 5 path_txt='盗墓笔记.txt'
 6 f = open(path_txt,'r',encoding='UTF-8').read()
 7 
 8 # 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
 9 cut_text = " ".join(jieba.cut(f))
10 
11 wordcloud = WordCloud(
12  #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
13  font_path="C:/Windows/Fonts/simfang.ttf",
14  #设置了背景,宽高
15  background_color="white",width=1920,height=1080).generate(cut_text)
16 
17 plt.imshow(wordcloud, interpolation="bilinear")
18 plt.axis("off")
19 plt.show()

运行后,会出现如下的一个窗口

点击左下方最右边的形如磁盘的键,将该图片下载下来

词云也完成了

posted @ 2019-04-02 23:55  Regan_White_Lin  阅读(632)  评论(1编辑  收藏  举报