python jieba和wordcloud生产词云

2019-12-18  本文已影响0人  MR_jw

一、概述

使用jieba分词和wordcloud生产 小说的词云库

二、效果图

20191218095443.png

三、流程


#coding=utf-8

import jieba

from wordcloud import WordCloud

import os

import numpy

import PIL.Image as Image

cur_path=os.path.dirname(__file__)  #当前路径

mask_pic = numpy.array(Image.open(os.path.join(cur_path, 'aa.jpg'))) #图片原型

1、分词方法

#分词

def myjieba(txt) :

    jieba.add_word('范若若')  #词库添加自定义内容

    jieba.add_word('林婉儿')

    jieba.add_word('长公主')

    wordlist=jieba.cut(txt)

    return " ".join(wordlist)

2、获取中文停用词库(排除无用词)

def get_stopwords():

    #获取停用词的路径

    dir_name_path=os.path.join(cur_path, '停用词库.txt') #可以向词库添加不需要的词,完善图片效果

    #创建set集合来保存停用词

    stopwords = set()

    with open(dir_name_path, 'r', encoding='utf-8') as f:

        text=f.read()

        textlist = text.split('\n')

        #print(textlist)

        return textlist

3、词云设置并生成图片

with open(os.path.join(cur_path, '庆余年.txt'), encoding='utf-8') as fp:

    txt=fp.read()

    txt=myjieba(txt)

    wordcloud = WordCloud(font_path = 'C:\Windows\Fonts\simkai.TTF',

                            background_color = 'white', # 背景色

                            max_words = 120, # 最大显示单词数

                            max_font_size = 66, # 频率最大单词字体大小

                            scale=6,#图片清晰度,不要调太高,否则云图加载不出来

                            stopwords = get_stopwords(), # 过滤停用词

                                mask=mask_pic

                          ).generate(txt)

    image = wordcloud.to_image()

    image.show()

    #两种输出图片方式

    # 1、指定精度进行输出

    # plt.savefig("E:/temp.jpg",dpi=600)

    # 2、完整图片输出

    wordcloud.to_file(cur_path+"temp.png")

上一篇下一篇

猜你喜欢

热点阅读