Python的wordcloud库笔记

安装:pip install wordcloud

对于英文,wordcloud默认以空格和标点为分隔符对目标文本进行分词处理。
对于中文,分词处理需要用户自己来完成。
一般先将文本分词处理然后用空格拼接,再调用wordcloud库函数。
处理中文时还需要指定中文字体,例如使用微软雅黑字体(msyh.ttc)
作为显示效果,需要将字体文件与代码存放到相同目录下或者
在字体文件名前添加完整路径。
wordcloud可以生成任何形状的词云,为了获得所需要的形状,
需要提供模板mask,模板mask的背景是白色。
需要调用两行代码:
from scipy.misc import imread 
mask = imread('bryant.jpg')
它将图片转为ndarray类型
其中scipy库作为wordcloud的依赖库会被自动安装。

代码举例:红楼梦词云

import jieba
from wordcloud import WordCloud
from scipy.misc import imread 
mask = imread('bryant.jpg')

excludes = {"什么","一个"}
excludes = {"qut"}
f = open("红楼梦.txt", "r", encoding='utf-8')
txt = f.read()
f.close()
words  = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:  #排除单个字符的分词结果
        continue
    else:
        counts[word] = counts.get(word,0) + 1
for word in excludes:
    del(counts[word])
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True) 
for i in range(30):
    word, count = items[i]
    print ("{0:{2}<10}出场次数:{1:{2}<5}".format(word, count,(chr(12288))))

##############
newtxt = "".join(words)
wordcloud = WordCloud(background_color="white",\
                width=800,
                height=600,
                font_path="msyh.ttf",
                max_words=200,
                max_font_size=80,
                mask = mask,
                stopwords=excludes,
            ).generate(newtxt)
wordcloud.to_file("红楼梦词云.png")


from PIL import Image
img = Image.open('红楼梦词云.png')
img.show()

控制台输出:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS C:\Users\chenxuqi\Desktop\新建文件夹\英文文本词频统计\中文分词>  & 'D:\Python\Python37\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.10.332292344\pythonFiles\lib\python\debugpy\launcher' '63604' '--' 'c:\Users\chenxuqi\Desktop\新建文件夹\英文文本词 
频统计\中文分词\红楼梦词云.py'
c:\Users\chenxuqi\Desktop\新建文件夹\英文文本词频统计\中文分词\红楼梦词云.py:4: DeprecationWarning: `imread` is deprecated!
`imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.
Use ``imageio.imread`` instead.
  mask = imread('bryant.jpg')
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\chenxuqi\AppData\Local\Temp\jieba.cache
Loading model cost 0.780 seconds.
Prefix dict has been built successfully.
宝玉        出场次数:3556 
什么        出场次数:1536 
一个        出场次数:1413 
贾母        出场次数:1200 
我们        出场次数:1187 
那里        出场次数:1139 
凤姐        出场次数:1088 
如今        出场次数:977  
你们        出场次数:976  
王夫人       出场次数:958  
老太太       出场次数:948  
说道        出场次数:928  
知道        出场次数:923  
这里        出场次数:921  
起来        出场次数:919  
姑娘        出场次数:911  
出来        出场次数:898  
他们        出场次数:874  
众人        出场次数:850  
奶奶        出场次数:844  
自己        出场次数:799  
太太        出场次数:790  
一面        出场次数:779  
两个        出场次数:769  
只见        出场次数:761  
没有        出场次数:756  
怎么        出场次数:725  
不是        出场次数:709  
不知        出场次数:671  
贾琏        出场次数:664  
PS C:\Users\chenxuqi\Desktop\新建文件夹\英文文本词频统计\中文分词> 

展示效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值