一、概述
使用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")
网友评论