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\新建文件夹\英文文本词频统计\中文分词> 

展示效果:
Python的wordcloud库笔记_第1张图片

你可能感兴趣的:(python基础实验,python,jieba,wordcloud,计算机二级考试)